Production Readiness Checklist
الهدف من الدرس
Section titled “الهدف من الدرس”هذه الصفحة تجمع ما يجب مراجعته قبل اعتبار أي workload جاهزا لـ Production.
الفكرة ببساطة
Section titled “الفكرة ببساطة”لا يوجد checklist سحري يناسب كل الشركات، لكن هناك أساسيات لا يجب تجاهلها: availability، security، data، observability، وoperability.
Checklist
Section titled “Checklist”| المحور | الحد الأدنى المقبول |
|---|---|
| Deployment | replicas مناسبة، rollout strategy، readinessProbe |
| Resources | requests/limits لكل container |
| Availability | PDB للتطبيقات المهمة، أكثر من replica |
| Networking | Service صحيح، Ingress/Gateway، TLS |
| Security | RBAC least privilege، non-root، secrets خارج Git |
| Supply chain | image tag ثابت، scanning، registry موثوق |
| Data | PVC، backup، restore test |
| Observability | metrics، logs، alerts، dashboards |
| GitOps | manifests في Git، rollback موثق |
| Runbook | أوامر تشخيص وتشغيل وrollback |
مثال تقييم سريع
Section titled “مثال تقييم سريع”apiVersion: apps/v1kind: Deploymentmetadata: name: apispec: replicas: 3 selector: matchLabels: app: api template: metadata: labels: app: api spec: securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault containers: - name: api image: registry.example.com/api:1.4.2 ports: - name: http containerPort: 8080 readinessProbe: httpGet: path: /ready port: http livenessProbe: httpGet: path: /healthz port: http resources: requests: cpu: "250m" memory: "256Mi" limits: cpu: "1" memory: "512Mi" securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"]أسئلة مراجعة قبل الإطلاق
Section titled “أسئلة مراجعة قبل الإطلاق”- كيف أعمل rollback خلال 5 دقائق؟
- ما alert الذي يخبرني أن المستخدمين متأثرون؟
- هل يمكن لشخص جديد في الفريق تشغيل runbook؟
- هل جربنا restore في بيئة منفصلة؟
- هل كل secret له owner وطريقة rotation؟
Lab: تقييم workload جاهز للإنتاج
الهدف: استخدام checklist لفحص Deployment موجود وتوثيق النقاط الناقصة.
Prerequisites
Section titled “Prerequisites”- Deployment تجريبي أو مشروع من الدروس السابقة.
kubectl get deployment web -o yamlkubectl describe deployment webkubectl get pdbkubectl get ingresskubectl auth can-i list pods --as=system:serviceaccount:default:defaultاكتب نتيجة لكل محور: جاهز, يحتاج تعديل, أو غير مطبق.
Expected output
Section titled “Expected output”لا يوجد output واحد صحيح. المطلوب تقرير صغير يوضح الفجوات وأولوية إصلاحها.
Cleanup
Section titled “Cleanup”لا توجد موارد جديدة للتنظيف.
Rubric مختصر
Section titled “Rubric مختصر”| المستوى | الوصف |
|---|---|
| مبتدئ | التطبيق يعمل لكن ينقصه probes/resources/runbook |
| متوسط | التطبيق قابل للتحديث والتشخيص ولديه TLS وsecrets جيدة |
| Production-ready | لديه monitoring وbackup/restore وGitOps وrollback وsecurity واضحة |