تم إعداد ترجمة المقال خاصة لطلاب دورة DevOps للممارسات والأدوات ، والذي يبدأ اليوم!
هل سبق لك إطلاق خدمة جديدة في الإنتاج؟ أو ربما تشارك في صيانة مثل هذه الخدمات؟ إذا كان الأمر كذلك ، ماذا اتبعت؟ ما هو جيد للإنتاج وما هو سيء؟ كيف يمكنك تدريب أعضاء الفريق الجدد على إطلاق أو الحفاظ على الخدمات الحالية.
معظم الشركات فيما يتعلق بممارسات الاستغلال الصناعي تتوصل في النهاية إلى مقاربة "الغرب المتوحش". يحدد كل فريق ، من خلال التجربة والخطأ ، بشكل مستقل الأدوات وأفضل الممارسات ، لكن هذا لا يؤثر في كثير من الأحيان على نجاح المشروعات فحسب ، بل على المهندسين أيضًا.
تخلق طريقة التجربة والخطأ بيئة يكون فيها البحث عن الجناة ونقل المسؤولية أمرًا شائعًا. مع هذا السلوك ، يصبح من الصعب على نحو متزايد التعلم من الأخطاء وعدم تكرارها مرة أخرى.
المنظمات الناجحة:
- ندرك الحاجة إلى مبادئ توجيهية للإنتاج ،
- تعلم أفضل الممارسات
- بدء مناقشة حول الاستعداد للإنتاج عند تطوير أنظمة أو مكونات جديدة ،
- ضمان الامتثال لقواعد التحضير للإنتاج.
يشمل التحضير للإنتاج عملية مراجعة. يمكن أن تكون المراجعة في شكل قائمة مرجعية أو مجموعة من الأسئلة. يمكن إجراء المراجعة يدويًا أو تلقائيًا أو كلاهما. بدلاً من قوائم المتطلبات الثابتة ، يمكن إنشاء قوالب قائمة مرجعية يمكن تكييفها مع احتياجات محددة. وبهذه الطريقة ، يمكن إعطاء المهندسين وسيلة لوراثة المعرفة والمرونة الكافية عند الاقتضاء.
متى تحقق من الخدمة للاستعداد للإنتاج؟
من المفيد إجراء فحص الجاهزية للإنتاج ليس فقط قبل الإصدار مباشرة ، ولكن أيضًا عند نقله إلى فريق تشغيل آخر أو موظف جديد.
تحقق عند:
- إطلاق خدمة جديدة في الإنتاج.
- نقل تشغيل خدمة الإنتاج إلى فريق آخر ، مثل SRE.
- نقل تشغيل خدمة الإنتاج للموظفين الجدد.
- تنظيم الدعم الفني.
قائمة فحص جاهزية الإنتاج
منذ بعض الوقت ، على سبيل المثال ، قمت
بنشر قائمة مرجعية للتحقق من الاستعداد للإنتاج. على الرغم من ظهور هذه القائمة أثناء العمل مع عملاء Google Cloud ، إلا أنها ستكون مفيدة وقابلة للتطبيق خارج Google Cloud.
التصميم والتطوير
- صمم عملية بناء قابلة للتكرار لا تتطلب الوصول إلى الخدمات الخارجية ولا تعتمد على فشل الأنظمة الخارجية.
- أثناء فترة التصميم والتطوير ، حدد وتثبيت SLO لخدماتك.
- قم بتوثيق توقعات توفر الخدمات الخارجية التي تعتمد عليها.
- تجنب نقطة فشل واحدة عن طريق إزالة التبعيات على مورد عمومي واحد. قم بتكرار المورد أو استخدم خيار الرجوع عند عدم توفر المورد (على سبيل المثال ، قيمة ترميز ثابت).
إدارة التكوين
- يمكن تمرير التكوينات الثابتة والصغيرة وغير السرية عبر خيارات سطر الأوامر. بالنسبة للباقي ، استخدم خدمات تخزين التكوين.
- يجب أن يحتوي التكوين الديناميكي على إعدادات النسخ الاحتياطي في حالة عدم توفر خدمة التكوين.
- لا ينبغي أن تكون تهيئة بيئة التطوير مرتبطة بتكوين الإنتاج. وإلا ، فقد يؤدي ذلك إلى الوصول إلى خدمات الإنتاج من بيئة التطوير ، والتي يمكن أن تسبب مشاكل في الخصوصية وتسرب البيانات.
- قم بتوثيق ما يمكن تهيئته ديناميكيًا ووصف سلوك الاستعاضة في حالة عدم توفر نظام تسليم التهيئة.
إدارة الإصدار
- توثيق عملية الإصدار بالتفصيل. صف كيف تؤثر الإصدارات على تراخيص الدخول (على سبيل المثال ، زيادة مؤقتة في زمن الانتقال بسبب أخطاء التخزين المؤقت).
- إصدارات الكناري الوثيقة.
- وضع خطة لتحليل إصدارات الكناري وآليات الاستعادة التلقائية ، إن أمكن.
- تأكد من أن الاستعادة يمكن أن تستخدم نفس العمليات مثل النشر.
ملاءمة الرصد (الملاحظة)
- تأكد من قيامك بتجميع مجموعة المقاييس المطلوبة لـ SLO.
- تأكد من أنه يمكنك التمييز بين بيانات العميل والخادم. هذا مهم لاستكشاف الأخطاء وإصلاحها.
- ضبط التنبيهات لخفض تكاليف العمالة. على سبيل المثال ، احذف التنبيهات الناتجة عن العمليات الروتينية.
- إذا كنت تستخدم Stackdriver ، فقم بتضمين مقاييس النظام الأساسي لـ GCP في لوحات المعلومات. تكوين تنبيهات تبعيات GCP.
- قم دائمًا بتوزيع التتبع الوارد. حتى إذا لم تشارك في التتبع ، فسوف يتيح ذلك للخدمات ذات المستوى الأدنى لتصحيح مشكلات الإنتاج.
الحماية والسلامة
- تأكد من تشفير جميع الاتصالات الخارجية.
- تأكد من أن مشاريع الإنتاج لديك لديها إعداد IAM الصحيح.
- استخدم الشبكات لعزل مجموعات من مثيلات الجهاز الظاهري.
- استخدم VPN للاتصال الآمن بالشبكات البعيدة.
- وثيقة ومراقبة وصول المستخدم إلى البيانات. تأكد من فحص وصول المستخدم إلى البيانات وتسجيلها.
- تأكد من أن نقاط النهاية لتصحيح الأخطاء محدودة بواسطة قوائم ACL.
- تطهير إدخال المستخدم. تكوين حدود حجم الحمولة الصافية لإدخال المستخدم.
- تأكد من أن الخدمة يمكن أن تمنع حركة المرور الواردة بشكل انتقائي للمستخدمين الفرديين. سيؤدي هذا إلى حظر الانتهاكات دون التأثير على المستخدمين الآخرين.
- تجنب نقاط النهاية الخارجية التي تبدأ عددًا كبيرًا من العمليات الداخلية.
تخطيط القدرات
- وثيقة كيف ميزان الخدمة. على سبيل المثال: عدد المستخدمين ، وحجم الحمولة الواردة ، وعدد الرسائل الواردة.
- وثيقة متطلبات الموارد لخدمتكم. على سبيل المثال: عدد مثيلات الجهاز الظاهري المخصصة ، وعدد مثيلات Spanner ، والمعدات المتخصصة مثل GPU أو TPU.
- قيود موارد المستند: نوع المورد ، المنطقة ، إلخ.
- حدود حصص المستند لإنشاء موارد جديدة. على سبيل المثال ، تحديد عدد طلبات واجهة برمجة تطبيقات GCE إذا كنت تستخدم واجهة برمجة التطبيقات لإنشاء مثيلات جديدة.
- النظر في إجراء اختبارات الإجهاد لتحليل تدهور الأداء.
هذا كل شيء. أراك في الفصل!