Zero Downtime هو توافق خلال نافذة تداخل
يعني Zero-Downtime Deployment أن نسخ التطبيق القديمة والجديدة تستطيع خدمة الحركة أثناء Rollout بلا تعارض في العقود أو البيانات. التقنية المركزية هي التوافق: تغييرات Additive أولًا، وكود يتحمل الشكلين، وترحيل البيانات أثناء تعايش النسختين، ثم Cleanup هدّام بعد خروج المستهلكين القدامى.
يجب أن تتعايش نسخ التطبيق والSchema
- وسع Schema بحقول/جداول جديدة قبل جعلها مطلوبة.
- انشر كودًا يقرأ الشكل القديم والجديد ويكتب شكلًا آمنًا للانتقال.
- نفذ Backfill منفصلًا مع مراقبة وتقييد.
- حوّل الحركة فقط بعد نجاح Readiness للنسخ الجديدة.
- احذف Columns/Routes/Event Fields القديمة في إصدار لاحق.
Expand ثم Deploy ثم Migrate ثم Contract
يسبق Schema Expansion نشر الكود؛ تُرحل البيانات أثناء التعايش؛ ينتظر Contract الهدّام حتى لا يبقى قارئ قديم.
تدفق Expand–Migrate–Contract
يسبق Schema Expansion نشر الكود؛ تُرحل البيانات أثناء التعايش؛ ينتظر Contract الهدّام حتى لا يبقى قارئ قديم.
إعادة تسمية حقل بلا توقف
تغييرات لا تنفذ دفعة واحدة
قائمة Zero Downtime
- حدد نافذة توافق القديم والجديد.
- ابدأ بتغييرات Additive في DB/API.
- اجعل Rollout وRollback متوافقين مع Schema.
- راقب Backfill وReadiness قبل تحويل الحركة.
- احذف العقد القديم فقط بعد حصر المستهلكين.
