
Andrew Hanna

Andrew Hanna

باختصار: المخاطر الخطيرة في نشر Salesforce مش الأخطاء اللي بيوقّفها التحقق، لكن اللي بتعدّي منه: انحراف بيئات صامت، واعتماديات ما اتتبعتش في مقارنة الميتاداتا، وflows بتغلط بس مع البيانات الحقيقية، وchange set من غير تراجع لما تبوظ. أدوات النشر بتتحقق من الميتاداتا مش السلوك، فالعطل بيظهر بعد الإطلاق. اقفل الفجوة بتحكم إصدارات حقيقي، ونشر واعي بالاعتماديات، وبيانات اختبار مزروعة، وخطة تراجع فعلًا اتدرّبت عليها.
النشر اللي بيقول نجح ممكن يكسر الـ org بتاعتك. أكتر المخاطر إيلامًا هي اللي ما بتظهرش في سجل النشر:
لأن التحقق بيتأكد إن الميتاداتا بتترجم وإن الاختبارات وصلت نسبة التغطية، مش إن الأتمتة بتتصرف صح. زي ما بيقول إجماع الممارسين: أدوات النشر بتتحقق من الميتاداتا مش سلوك النظام الحقيقي. بعد الإطلاق، الـ flows والـ triggers بتشتغل على بيانات الإنتاج، والتكاملات بتعيد الاتصال، والمستخدمين بيوصلوا لحالات حديّة الـ sandbox ما شافتهاش. دي اللحظة اللي بتظهر فيها المشاكل الخفية، حتى لو النشر نفسه كان نضيف تقنيًا. العلامة الخضرا بتتكلم عن الصياغة، مش عن النتائج.
الـ change sets هي الافتراضي، وبتخبّي تلات مخاطر محددة. أولًا، مفيش تاريخ إصدارات، فمش بتشوف مين غيّر إيه ولا تقارن إصدارين. ثانيًا، مفيش تراجع حقيقي للميتاداتا القياسية - لو النشر بوّظ الإعدادات، بتبنيها بإيدك تاني. ثالثًا، تتبع الاعتماديات شغل يدوي: الأدوات الأصلية مش هتخريطلك كل علاقة ميتاداتا، فالمكوّنات بتوصل للـ org الهدف وهي بتشير لحاجة مش موجودة. دي مش حالات نادرة. دي الواقع اليومي لفرق الـ change sets، وده بالظبط سبب انتقال المنظومة لـ DevOps مبني على Git.
انحراف البيئات هو التباعد البطيء بين orgs المفروض تتطابق. حد بيعمل hotfix في الإنتاج، وأدمن بيغيّر إعداد في UAT، وpackage بيتحدّث في sandbox واحدة مش التانية. بيئات Salesforce نادرًا بتكون متطابقة، والفجوة دي هي اللي بتخلي نشر نجح في الـ staging يفشل في الإنتاج. الانحراف خفي لحد ما يكلّفك، وده اللي بيخليه أكتر خطر مبخوس على القائمة. الدفاع هو مصدر حقيقة واحد في تحكم الإصدارات بتتوفّق معاه كل بيئة، مش كومة sandboxes كل واحدة بتنحرف على مزاجها.
عامل النشر كنظام، مش حدث. بالترتيب:
بتحل الآليات، وده جزء كبير من المشكلة. أدوات زي Gearset وCopado وAutoRABIT وFlosum وSalto وBlue Canvas بتقدّم تحكم إصدارات وتحليل اعتماديات آلي وCI/CD اللي الـ change sets الأصلية بتفتقده، وأي واحدة فيهم أحسن من نقل الميتاداتا باليد بين الـ orgs. اللي مفيش أداة بتحله عنك هو الانضباط: نموذج فروع حقيقي، وبيانات مزروعة، واسترداد متدرَّب عليه. Serpent شايفة إن الـ DevOps المفروض يخلي المسار الآمن هو المسار السهل، علشان الانحراف والاعتماديات والتراجع تتعامل معاها الـ pipeline بدل ما تُترك للشخص اللي بينشر الساعة 6 مساء الجمعة. شوف إزاي بنفكّر فيها على Serpent.
ليه نشر Salesforce نجح بس كسر الـ org؟
التحقق بيأكد إن الميتاداتا بتترجم وتوصل التغطية، مش إن الـ flows والـ triggers والتكاملات بتتصرف صح مع بيانات الإنتاج الحقيقية.
تقدر ترجّع change set في Salesforce؟
مش أصليًا. الـ change sets القياسية مفيهاش تراجع، فالاسترداد معناه إعادة بناء الحالة السابقة يدويًا أو إعادة النشر من تحكم الإصدارات.
إيه أكبر خطر خفي في نشر Salesforce؟
انحراف البيئات. الـ sandboxes والإنتاج بيبعدوا بهدوء، فتغيير اتحقق في الـ staging ممكن يفشل في الإنتاج.
إزاي تحكم الإصدارات بيقلل مخاطر النشر؟
بيديك تاريخ ومقارنات قابلة للمراجعة ووضوح للاعتماديات وهدف تراجع معروف السلامة، وكلها مش بتوفرها الـ change sets.
هل لسه محتاج خطة تراجع لو بستخدم أداة DevOps؟
أيوه. الأداة بتتيح التراجع، بس خطة متدرَّب عليها بس هي اللي بتخليه موثوق لما الإصدار يبوظ في ظروف حقيقية.
بدون التزام.