قائمة مراجعة جاهزية الإنتاج

تم إعداد ترجمة المقال خصيصًا لطلاب الدورة "ممارسات وأدوات DevOps"، والذي يبدأ اليوم!

قائمة مراجعة جاهزية الإنتاج

هل سبق لك أن أطلقت خدمة جديدة في الإنتاج؟ أو ربما شاركت في دعم مثل هذه الخدمات؟ إذا كانت الإجابة بنعم، ما الذي دفعك؟ ما هو الجيد للإنتاج وما هو السيئ؟ كيف يمكنك تدريب أعضاء الفريق الجدد على الإصدارات أو صيانة الخدمات الحالية.

ينتهي الأمر بمعظم الشركات إلى تبني مناهج "الغرب المتوحش" عندما يتعلق الأمر بممارسات العمليات الصناعية. يقرر كل فريق الأدوات الخاصة به وأفضل الممارسات من خلال التجربة والخطأ. ولكن هذا غالبا ما يؤثر ليس فقط على نجاح المشاريع، ولكن أيضا على المهندسين.

تخلق التجربة والخطأ بيئة يشيع فيها توجيه أصابع الاتهام وتحويل اللوم. ومع هذا السلوك، يصبح من الصعب التعلم من الأخطاء وعدم تكرارها مرة أخرى.

المنظمات الناجحة:

  • إدراك الحاجة إلى مبادئ توجيهية للإنتاج،
  • دراسة أفضل الممارسات،
  • بدء المناقشات حول قضايا الاستعداد للإنتاج عند تطوير أنظمة أو مكونات جديدة،
  • ضمان الامتثال لقواعد التحضير للإنتاج.

يتضمن التحضير للإنتاج عملية "مراجعة". يمكن أن تكون المراجعة على شكل قائمة مرجعية أو مجموعة من الأسئلة. يمكن إجراء المراجعات يدويًا أو تلقائيًا أو كليهما. بدلاً من قوائم المتطلبات الثابتة، يمكنك إنشاء قوالب قوائم مرجعية يمكن تكييفها مع الاحتياجات المحددة. بهذه الطريقة، يمكن إعطاء المهندسين طريقة لوراثة المعرفة والمرونة الكافية عند الحاجة.

متى يتم التحقق من جاهزية الخدمة للإنتاج؟

من المفيد إجراء فحص جاهزية الإنتاج ليس فقط قبل الإصدار مباشرة، ولكن أيضًا عند نقله إلى فريق عمليات آخر أو موظف جديد.

تحقق عندما:

  • أنت تطلق خدمة جديدة في الإنتاج.
  • تقوم بنقل تشغيل خدمة الإنتاج إلى فريق آخر، مثل SRE.
  • يمكنك نقل تشغيل خدمة الإنتاج إلى الموظفين الجدد.
  • تنظيم الدعم الفني.

قائمة التحقق من جاهزية الإنتاج

منذ بعض الوقت، على سبيل المثال، أنا опубликовала قائمة مرجعية لاختبار الاستعداد للإنتاج. على الرغم من أن هذه القائمة نشأت مع عملاء Google Cloud، إلا أنها ستكون مفيدة وقابلة للتطبيق خارج Google Cloud.

التصميم والتطوير

  • تطوير عملية بناء قابلة للتكرار لا تتطلب الوصول إلى الخدمات الخارجية ولا تعتمد على فشل الأنظمة الخارجية.
  • خلال فترة التصميم والتطوير، قم بتحديد وتعيين SLOs لخدماتك.
  • توثيق التوقعات الخاصة بتوفر الخدمات الخارجية التي تعتمد عليها.
  • تجنب نقطة فشل واحدة عن طريق إزالة التبعيات على مورد عالمي واحد. قم بإجراء نسخ متماثل للمورد أو استخدم خيارًا احتياطيًا عندما يكون المورد غير متوفر (على سبيل المثال، قيمة مضمنة).

إدارة التكوين

  • يمكن تمرير التكوين الثابت والصغير وغير السري عبر معلمات سطر الأوامر. بالنسبة لكل شيء آخر، استخدم خدمات تخزين التكوين.
  • يجب أن يشتمل التكوين الديناميكي على إعدادات احتياطية في حالة عدم توفر خدمة التكوين.
  • لا ينبغي أن يكون تكوين بيئة التطوير مرتبطًا بتكوين الإنتاج. وبخلاف ذلك، قد يؤدي ذلك إلى الوصول من بيئة التطوير إلى خدمات الإنتاج، مما قد يتسبب في مشكلات الخصوصية وتسرب البيانات.
  • قم بتوثيق ما يمكن تهيئته ديناميكيًا ووصف السلوك الاحتياطي في حالة عدم توفر نظام تسليم التكوين.

إدارة الإفراج

  • قم بتوثيق عملية الإصدار بالتفصيل. وصف كيفية تأثير الإصدارات على كائنات مستوى الخدمة (على سبيل المثال، الزيادات المؤقتة في زمن الوصول بسبب أخطاء ذاكرة التخزين المؤقت).
  • توثيق إصدارات الكناري.
  • قم بتطوير خطة مراجعة إصدار Canary، وآليات التراجع التلقائي إن أمكن.
  • تأكد من أن عمليات التراجع يمكن أن تستخدم نفس العمليات مثل عمليات النشر.

إمكانية الملاحظة

  • تأكد من جمع مجموعة المقاييس المطلوبة لـ SLO.
  • تأكد من أنه يمكنك التمييز بين بيانات العميل والخادم. هذا مهم للعثور على أسباب الأعطال.
  • قم بإعداد التنبيهات لتقليل تكاليف العمالة. على سبيل المثال، قم بإزالة التنبيهات الناتجة عن العمليات الروتينية.
  • إذا كنت تستخدم Stackdriver، فقم بتضمين مقاييس النظام الأساسي لبرنامج Google Cloud Platform في لوحات المعلومات الخاصة بك. قم بإعداد التنبيهات لتبعيات Google Cloud Platform.
  • قم دائمًا بنشر الآثار الواردة. حتى لو لم تكن مشتركًا في التتبع، فإن هذا سيسمح للخدمات ذات المستوى الأدنى بتصحيح المشكلات في الإنتاج.

الحماية والأمان

  • تأكد من تشفير كافة الاتصالات الخارجية.
  • تأكد من أن مشاريع الإنتاج الخاصة بك تحتوي على إعداد IAM الصحيح.
  • استخدم الشبكات لعزل مجموعات من مثيلات الجهاز الظاهري.
  • استخدم VPN للاتصال بشكل آمن بالشبكات البعيدة.
  • توثيق ومراقبة وصول المستخدم إلى البيانات. تأكد من أن جميع عمليات وصول المستخدم إلى البيانات يتم تدقيقها وتسجيلها.
  • تأكد من أن نقاط النهاية الخاصة بتصحيح الأخطاء مقيدة بقوائم ACL.
  • تطهير مدخلات المستخدم. تكوين حدود حجم الحمولة لإدخال المستخدم.
  • تأكد من أن خدمتك يمكنها حظر حركة المرور الواردة بشكل انتقائي للمستخدمين الفرديين. سيؤدي هذا إلى حظر الانتهاكات دون التأثير على المستخدمين الآخرين.
  • تجنب نقاط النهاية الخارجية التي تبدأ الكثير من العمليات الداخلية.

القدرة على التخطيط

  • قم بتوثيق كيفية توسيع نطاق خدمتك. على سبيل المثال: عدد المستخدمين، حجم الحمولة الواردة، عدد الرسائل الواردة.
  • قم بتوثيق متطلبات الموارد لخدمتك. على سبيل المثال: عدد مثيلات الجهاز الظاهري المخصصة، وعدد مثيلات Spanner، والأجهزة المتخصصة مثل GPU أو TPU.
  • توثيق قيود الموارد: نوع المورد، والمنطقة، وما إلى ذلك.
  • توثيق قيود الحصص لإنشاء موارد جديدة. على سبيل المثال، تحديد عدد طلبات واجهة برمجة تطبيقات GCE إذا كنت تستخدم واجهة برمجة التطبيقات لإنشاء مثيلات جديدة.
  • فكر في إجراء اختبارات الحمل لتحليل تدهور الأداء.

هذا كل شئ. اراك في الفصل!

المصدر: www.habr.com

إضافة تعليق