لقد كنت أعمل على مشاريع متعددة حيث قمت بنقل التطبيقات من إثبات المفهوم إلى الإنتاج.
هذه هي قوائم المراجعة التي قمت بإعدادها لنفسي ولفريقي للتأكد من أننا مستعدون للإنتاج.
يتم التركيز هنا على قوائم المراجعة نظرًا لأن التطبيق موجود بلغة برمجة Python ويتم نشره على AWS عبر Kubernetes.
ليست كل هذه الأمور إلزامية، لكنها الأكثر فائدة بالنسبة لي.
1. التنبيهات والمقاييس
- [ ] هل تم إعداد تنبيهات لمشكلات البنية التحتية (على سبيل المثال، زيادة استخدام الذاكرة أو وحدة المعالجة المركزية، أو عدم توفر الخدمة)؟
- [ ] هل تم إعداد تنبيهات للفشل المنطقي الحرج الخاص بالتطبيق؟
- [ ] هل يمكننا عرض البيانات التاريخية (الساعات/الأيام القليلة الماضية) للبنية التحتية واستخدام الموارد؟
- [ ] هل توجد لوحة تحكم للمراقبة في الوقت الفعلي؟
2. لوحة القيادة وإجراءات التشغيل القياسية (SOP).
- [ ] هل هناك مستند SOP للتعامل مع التنبيهات والمشكلات المعروفة؟
- [ ] هل هناك أدلة تشغيل متاحة للسيناريوهات الشائعة؟
- [ ] هل هناك خطة للاستجابة للحوادث؟
3. رسم الخرائط والإيقاع عند الطلب
- [ ] هل هناك تعيين شخص تحت الطلب للمشكلات على مستوى التطبيق؟
- [ ] هل هناك شخص تحت الطلب يرسم الخرائط للمشكلات المتعلقة بالبنية التحتية؟
- [ ] هل هناك جدول زمني محدد للتناوب وسياسة تصعيد؟
4. النشر
- [ ] هل تم تحديد نوع المثيل المناسب (وحدة معالجة الرسومات أو وحدة المعالجة المركزية)؟
- [ ] هل تم تحديد نوع الخادم المطلوب؟
- [ ] هل يوجد دعم لمنطقة توافر الخدمات المتعددة لتجاوز الفشل؟
- [ ] هل هناك دعم لمناطق متعددة؟
- [ ] هل تم إعداد القياس التلقائي (على سبيل المثال، HPA، Keda) لارتفاع حركة المرور؟
- [ ] هل تم تكوين عمليات التحقق من السلامة للخادم؟
- [ ] هل تم تحديد وتوثيق حدود الموارد؟
- [ ] هل هناك استراتيجية نشر باللونين الأزرق والأخضر أو الكناري؟
- [ ] هل هناك خطة وإجراءات محددة للتراجع؟
5. إمكانية الملاحظة والتتبع
- [ ] هل هناك لوحة تحكم تعرض المقاييس ذات الصلة (على سبيل المثال، عدد الطلبات، ورموز حالة HTTP، والاستخدام)؟
- [ ] هل يمكننا تتبع طلب واحد من البداية إلى النهاية لأغراض تصحيح الأخطاء؟
- [ ] هل يوجد نظام لتجميع السجلات وتحليلها؟
- [ ] هل تم تنفيذ التتبع الموزع؟
6. اختبارات التحميل
- [ ] هل تم إجراء تخطيط السعة لتحديد قدرات الخادم في التعامل مع الأحمال؟
- [ ] هل هناك معايير أداء محددة؟
- [ ] هل تم إجراء اختبار التحمل؟
7. الجودة
- [ ] هل هناك اختبارات وحدة آلية؟
- [ ] هل هناك اختبارات تكامل آلية؟
- [ ] هل يتم إجراء تحليل التعليمات البرمجية الثابتة (على سبيل المثال، عمليات التحقق من التعقيد)؟
- [ ] هل يتم قياس تغطية الكود وعلى مستوى مقبول؟
- [ ] هل هناك حالات اختبار سلامة الإنتاج؟
- [ ] هل يوجد خط أنابيب CI/CD موجود؟
- [ ] هل يتم إجراء عمليات الفحص الأمني وتقييمات الثغرات الأمنية بانتظام؟
8. الافراج
- [ ] هل وثائق Swagger/OpenAPI متاحة ومحدثة؟
- [ ] هل يوجد نظام إصدار لواجهات برمجة التطبيقات والإصدارات؟
- [ ] هل هناك قناة اتصال قائمة للصيانة المجدولة؟
- [ ] هل هناك عملية لإدارة التغيير؟
- [ ] هل يتم استخدام علامات الميزات للنشر التدريجي للميزات الجديدة؟
9. التعافي من الكوارث واستمرارية الأعمال
- [ ] هل إجراءات النسخ الاحتياطي والاستعادة موجودة ومختبرة؟
- [ ] هل هناك استراتيجية لنسخ البيانات؟
- [ ] هل تم تحديد هدف وقت الاسترداد (RTO) وهدف نقطة الاسترداد (RPO)؟
- [ ] هل يتم إجراء تدريبات منتظمة للتعافي من الكوارث؟
10. الامتثال والأمن
- [ ] هل يتم تشفير البيانات أثناء الراحة وأثناء النقل؟
- [ ] هل آليات التحكم في الوصول والمصادقة موجودة؟
- [ ] هل يتم إجراء عمليات تدقيق أمنية منتظمة؟
- [ ] هل يتوافق التطبيق مع معايير الصناعة ذات الصلة (على سبيل المثال، القانون العام لحماية البيانات (GDPR)، قانون نقل التأمين الصحي والمسؤولية (HIPAA)؟
11. التوثيق
- [ ] هل وثائق بنية النظام متاحة وحديثة؟
- [ ] هل وثائق واجهة برمجة التطبيقات (API) كاملة وحديثة؟
- [ ] هل الإجراءات التشغيلية موثقة؟
- [ ] هل يوجد دليل شامل لاستكشاف الأخطاء وإصلاحها؟