ما هو DevOps؟
يساعد DevOps المؤسسات على تطوير منتجاتها وتحسينها بسرعة أكبر مقارنة
بمنهجيات تطوير البرمجيات الأخرى. يعد التكامل المستمر (CI) من أفضل
الممارسات في تطوير البرمجيات بأسلوب DevOps، ويشمل مرحلتي البناء واختبارات
الوحدة ضمن عملية إصدار البرمجيات. كل تعديل يتم إرساله يبدأ عملية بناء
واختبار تلقائية، ما يسمح باكتشاف المشكلات مبكرا وحلها قبل إصدار التحديثات
للعملاء.
ما هو Salesforce DevOps؟
Salesforce DevOps هو DevOps نفسه مع التركيز على Salesforce على نطاق واسع.
يساعد ذلك فرق التطوير على اكتشاف المشكلات، وتحديد الأخطاء، وإصلاحها قبل
إصدار التغييرات للعملاء. DevOps يعني إصدارات مؤتمتة وأكثر انتظاما.
توجد حاليا عدة أدوات في Salesforce لنشر هذه التطبيقات، منها change sets
وWorkbench وSalesforceDX وDevOps Center وأداة Force.com migration وCI/CD Pipeline وأدوات AppExchange خارجية. تعرّف على
عملية تطوير ونشر Salesforce.
فوائد أدوات DevOps
إليك بعض فوائد أدوات DevOps.
- دورات تطوير أقصر وابتكار أسرع
- تقليل فشل النشر وعمليات الرجوع ووقت التعافي
- تحسين التواصل والتعاون
- زيادة الكفاءة
DevOps رحلة تبدأ بخطوات صغيرة. تأكد من أن الفريق كله
متوافق ومطلع. أضف التعقيد عندما يكون الفريق والعملية جاهزين. توجد ركائز
لعملية DevOps ناجحة.
1. التحكم في الإصدارات
أصبح التحكم في الإصدارات هو مصدر الحقيقة الوحيد. تساعدك Version Control Systems (VCS) على
تتبع أي تغييرات وإنشاء بوابات أمان عالية الجودة لكودك وmetadata القيّمة.
2. CI/CD Pipeline
CI/CD ليس مجرد أداة لنشر التغييرات. إنه أكثر من
ذلك، إذ يتيح لك التحقق من البناء، وتشغيل اختبارات الأتمتة، ويساعدك في نسخ
الكود احتياطيا. تضمن CI/CD عمليات نشر أكثر موثوقية وسلاسة ومعدل فشل أقل في
code coverage.
3. اختبار الأتمتة
تنفذ أداة DevOps الجيدة اختبارات أتمتة لك في كل pull request
وقبل كل release لضمان عدم دمج أو إصدار تغييرات غير مغطاة أو تحتوي على
أخطاء.
4. النسخ الاحتياطي
احم نفسك من الهجمات الضارة، وأخطاء Salesforce، والحذف العرضي، وغيرها.
تمنحك النسخ الاحتياطية راحة البال لأنك تستطيع الرجوع دائما.
تساعد أدوات
فحص الكود
على أتمتة أجزاء من عملية مراجعة الكود اليدوية في Salesforce.
يمكنك استخدام أدوات Static Code Analyser لتحقيق النتائج نفسها.
تعرف على المزيد حول ركائز DevOps الخمس.
لنشرح CI/CD
لنوضح الفروق بين مصطلحات CI/CD
1. Continuous Integration
باستخدام continuous integration، يتم دمج كل تعديل في الكود عند كل commit
من أي مطور وبشكل مستمر. ثم يتحقق build تلقائي من كل check-in، ما يسمح
للفرق باكتشاف المشكلات مبكرا.
2. Continuous Delivery
يضمن Continuous Delivery أن يتم نشر الكود بسرعة وأمان إلى الإنتاج عبر دفع
كل تغيير يدويا إلى بيئة شبيهة بالإنتاج. وبما أن كل تعديل يُسلّم تلقائيا
إلى staging environment، يمكنك نشر التطبيق إلى الإنتاج بزر واحد عندما يحين
الوقت المناسب.
3. Continuous Deployment
Continuous deployment هو الخطوة التالية بعد continuous delivery. باستخدام
Continuous deployment، يتم نشر كل تعديل ينجح في الاختبارات المؤتمتة إلى
الإنتاج تلقائيا. ينبغي لمعظم الشركات غير المقيدة بتنظيمات أو قيود أخرى أن
تجعل continuous deployment هدفا لها.
أدوات Salesforce DevOps
توجد أدوات DevOps مختلفة، ويمكن تقسيمها إلى الفئات التالية.
1. بناء مخصص
يمكنك بناء أداتك الخاصة باستخدام منصات CI/CD مختلفة، مثل:
-
Jenkins: Jenkins برنامج مفتوح المصدر للتكامل المستمر،
مكتوب بلغة Java. يسهل الاختبار والتقارير في الوقت الحقيقي حول تغييرات
معزولة داخل قاعدة كود أكبر.
-
CumulusCI: يسهل CumulusCI على المطورين والمسؤولين
والمختبرين أداء عملهم والتعاون داخل نظام التحكم في الإصدارات.
-
Azure DevOps: Azure DevOps مجموعة خدمات متكاملة
توفر كل الأدوات اللازمة لبناء backlog وصيانته، واستضافة مستودعات source
code، وتنفيذ continuous integration، إلى جانب سير عمل التسليم والاختبار
قبل إصدار المنتجات.
-
GitHub Actions: يسهل GitHub Actions أتمتة كل سير
عمل البرمجيات، مع CI/CD قوي. ابنِ واختبر وانشر كودك مباشرة من GitHub.
-
Gitlab pipelines: مشابهة لـ GitHub Actions إذا كنت تفضل
GitLab على GitHub. من الطبيعي أن تكون أكثر راحة مع واجهة المنصة وملما
بميزاتها وسير عملها.
2. منصات مؤتمتة
هذه أدوات DevOps متكاملة جيدا مع Salesforce.
-
Serpent:
هي منصة Salesforce DevOps الوحيدة المبنية حول سير عمل التطوير
الخاص بك، وتمنح فريقك كل ما يحتاجه للبناء والاختبار والشحن في
مكان واحد.
لا change sets. لا CLI. لا حاجة إلى Git. فقط عمليات نشر
سهلة، وأتمتة ذكية، ورؤية كاملة من sandbox إلى production.
جرّب مساحة العمل التجريبية المجانية اليوم واكتشف كم يمكن أن يكون
Salesforce DevOps بسيطا.
-
Gearset: تحسين كبير مقارنة باستخدام Salesforce
change sets. بسبب القيود الكثيرة عند نشر أنواع metadata محددة بين بيئات
sandbox testing والإنتاج، تبدأ الأسعار من 300 دولار لكل مطور.
-
Copado: أداة نشر قوية. خيار query في عمليات النشر
مفيد جدا عند نقل بيانات Salesforce، وتبدأ الأسعار من 250 دولار لكل مطور.
بناء على احتياجات شركتك وميزانيتها، ومع مراعاة كل الأدوات أعلاه، يمكنك أن
تقرر ما إذا كنت بحاجة إلى بناء عملية DevOps أو شراء منصة جاهزة.
حتى الآن فهمنا ما هو DevOps وما الأجزاء المهمة في DevOps ناجح. لنر بعض
أفضل الممارسات.
1.
تخطيط البيئة:
-
Developer Sandboxes وScratch Orgs:
-
يستخدم كل مطور Developer أو Developer Pro sandbox للمشاريع طويلة
الأجل.
-
يستخدم المطورون أيضا scratch orgs للتطوير والاختبار القصير الأجل
الخاص بالميزات.
-
Integration Sandbox:
- Sandbox مشتركة (Partial Copy) لدمج مساهمات المطورين الفردية.
-
UAT (User Acceptance Testing) Sandbox:
-
Full Copy sandbox لمستخدمي الأعمال لاختبار الميزات الجديدة قبل نقلها
إلى الإنتاج.
-
Staging Sandbox:
-
Full Copy sandbox أخرى تحاكي بيئة الإنتاج للاختبارات النهائية قبل
الإنتاج.
-
Production Environment:
-
البيئة الحية التي يتفاعل فيها المستخدمون النهائيون مع التطبيق.
2. إدارة البيئة:
-
إدارة Sandbox وScratch Org:
-
حدّث Developer وIntegration sandboxes بانتظام لتعكس أحدث بيانات
وإعدادات الإنتاج.
-
استخدم Salesforce DX لإنشاء scratch orgs وإدارتها. أعد scripts
لأتمتة إنشاء scratch orgs وإزالتها.
-
جدول تحديثات UAT وStaging sandbox حول الإصدارات الكبرى لتتوافق مع
دورات الاختبار.
-
استراتيجية النسخ الاحتياطي:
-
طبّق نسخا احتياطية مؤتمتة لبيانات sandboxes والإنتاج لتجنب فقدان
البيانات.
3. التحكم في الإصدارات:
-
استراتيجية Commit:
- قم بعمل commit للتغييرات بانتظام برسائل واضحة ووصفية.
-
استخدم pull requests لمراجعة الكود قبل الدمج في الفروع الرئيسية.
-
تتبع التغييرات:
-
تتبع تغييرات metadata وحافظ على تزامن الإعدادات بين البيئات باستخدام
أدوات مثل
Serpent، Gearset أو Copado.
4. إعداد البيئة:
-
إعدادات خاصة بكل Org:
- استخدم Salesforce DX scratch orgs للإعداد والتطوير.
- استخدم Salesforce CLI وأوامر sfdx لإدارة التغييرات ونشرها.
-
متغيرات البيئة:
-
أدر المعلومات الحساسة بأمان باستخدام Salesforce Shield أو encrypted
custom settings.
5. النشر المؤتمت:
-
التحكم في الإصدارات:
- استخدم Git كمصدر حقيقة لكل metadata والكود.
-
طبق استراتيجيات branching مثل feature branches وdevelop branch
وmaster branch لإدارة التغييرات.
-
CI/CD Pipeline:
-
استخدم Salesforce DX وJenkins وGitHub Actions لأتمتة عمليات النشر.
-
تشمل مراحل CI/CD pipeline:
- Build: استرداد الكود من version control.
-
Test: تشغيل الاختبارات المؤتمتة باستخدام Apex
Test Execution.
-
Deploy: نشر التغييرات إلى Integration sandbox،
ثم UAT وStaging وProduction.
-
Scratch Org Validation: إنشاء scratch orgs داخل
CI/CD pipeline للتحقق من التغييرات في بيئة معزولة.
6. إدارة البيانات:
-
بيانات الاختبار:
-
استخدم بيانات مجهولة أو اصطناعية في Developer وIntegration sandboxes
للامتثال للوائح حماية البيانات.
-
ترحيل البيانات:
-
استخدم أدوات مثل Salesforce Data Loader أو Talend لترحيل البيانات
بين البيئات.
-
بيانات Scratch Org:
-
استخدم Salesforce DX لتعبئة scratch orgs ببيانات مناسبة لأغراض
التطوير والاختبار.
7. المراقبة والتسجيل:
-
Logging:
-
طبّق logging باستخدام Salesforce Debug Logs وأعد تنبيهات للأخطاء
الحرجة.
-
Monitoring:
-
استخدم أدوات AppExchange مثل New Relic أو Datadog لمراقبة الأداء
وفحوصات الصحة.
8. الامتثال والأمان:
-
مراجعات الأمان:
-
نفّذ مراجعات أمان واختبارات اختراق بانتظام في بيئات Staging
وProduction.
-
ضوابط الوصول:
-
طبّق role-based access controls (RBAC) للحد من الوصول إلى البيئات
والبيانات الحساسة.
الأسئلة الشائعة
ما هو Salesforce DevOps؟
Salesforce DevOps هو DevOps
نفسه مع التركيز على الاستفادة من Salesforce على نطاق واسع. يساعد ذلك فرق
التطوير على اكتشاف المشكلات وتحديد الأخطاء وإصلاحها قبل إصدار التغييرات
للعملاء.
هل Salesforce DevOps مسار مهني جيد؟
نعم، لدى مهندسي DevOps فرص مهنية جيدة، فاليوم يستخدم كل مشروع تقريبا
Salesforce DevOps.
ماذا يفعل مهندس Salesforce DevOps؟
مهندسو DevOps مسؤولون عن تطبيق continuous delivery، والتحسين، والمراقبة،
وإدارة الإصدارات. كما يدعمون عملية الإصدار من البداية إلى النهاية.
الملخص
Salesforce DevOps ثقافة ومجموعة عمليات تجمع فرق التطوير والعمليات لإكمال
تطوير البرمجيات. بعد استعراض أدوات DevOps، نأمل أن تتمكن من تحديد
استراتيجية النشر والعملية المناسبة لك.