عمليات النشر الصفرية
(القسم: الهندسة المعمارية والبروتوكولات)
1) ما هو وقت التوقف الصفري ولماذا هناك حاجة إليه
Zero-Downtime (ZDT) هي طريقة لإصدار إصدارات جديدة من التطبيق دون أن تكون الخدمة غير متاحة للمستخدمين ودون فقدان الطلبات. الأهداف:- صفر توقف للعملاء والتكامل.
- إصدارات يمكن التنبؤ بها، تراجعات سريعة، ومخاطر يمكن التحكم فيها.
- (هـ) الحفاظ على الكمون والأخطاء والتوافر داخل حدود الاتفاقات.
مفتاح ZDT ليس تقنية «سحرية» واحدة، ولكن مزيج من أنماط التسليم وتوافق البيانات وتوجيه حركة المرور الكفء.
2) مبادئ عدم التوقف عن العمل الأساسية
1. توافق الإصدار: يجب أن تتعامل الإصدارات الجديدة والقديمة مع حركة المرور والبيانات بشكل صحيح في نفس الوقت.
2. خمول العمليات: لا ينبغي لإعادة المعالجة أن تكسر الدولة.
3. إغلاق رشيق وتصريف الاتصال.
4. الفحص الصحي خطوة بخطوة: اختبارات الاستعداد/الحياة، نقاط النهاية الصحية.
5. التراجع كمواطن من الدرجة الأولى: التراجع أسهل وأسرع من hotfix.
6. إمكانية الملاحظة حسب التصميم: علامات الإطلاق، لوحات القيادة الفردية، تنبيهات SLO.
7. الأتمتة: سيناريوهات الإصدار والتراجع هي رمز وليست تعليمات يدوية.
3) أنماط التسليم الخالية من التوقف
3. 1 تحديث متداول
قم بإزالة جزء من حالات الإصدار القديم تدريجيًا من حركة المرور، وقم بتحديثها إلى الإصدار الجديد وإعادتها إلى المسبح.
الإيجابيات: اقتصادية في البنية التحتية، فقط في k8s/ASG.
السلبيات: تعمل المجموعة لبعض الوقت بنسختين في نفس الوقت (انحراف الإصدار).
3. 2 أزرق أخضر
نموذجان كاملان: نشط (أزرق) ومرشح (أخضر). تبديل حركة المرور - قلب ذري.
الإيجابيات: التراجع الفوري، العزلة النظيفة.
السلبيات: تكاليف البنية التحتية ↑، أكثر صعوبة مع الدولة.
3. 3 طرح كناري/تقدمي
نعطي حصة صغيرة من حركة المرور (1-5-10-25-50-100٪) للإصدار الجديد مع بوابات بالمقاييس.
الإيجابيات: الحد الأدنى من نصف قطر الانفجار، والحلول القائمة على البيانات.
السلبيات: تحتاج إلى ملاحظة ناضجة وتوجيه ذكي.
3. 4 حركة المرور في الظل/الإطلاق المظلم
عكس الطلبات الحقيقية للإصدار الجديد (دون إجابة المستخدم) أو إطلاق مخفي لجمع المقاييس.
الإيجابيات: التعرف المبكر على المشاكل.
السلبيات: الحمل المزدوج على الإدمان، تحتاج إلى التحكم في الآثار الجانبية.
4) إدارة حركة المرور والاتصال
4. 1 الاستعداد/الحيوية
الحيوية تخبر المنسق أن «يعيد تشغيلي».
الاستعداد - «لا توجه حركة المرور، لست مستعدًا بعد».
لا يمكن إطلاقه بدون منطق الاستعداد الصحيح والوقت المستقطع.
4. 2 تصريف الاتصال
قبل إزالة حالة من المسبح:- توقف عن قبول اتصالات جديدة،
- في انتظار اكتمال النشاط،
- قطع المهلة «المعلقة».
4. 3 جلسات لزجة وتوجيه L7
اللزجة مفيدة لسيناريوهات الدولة، لكنها تعقد توازن الحمل.
قواعد L7 (المسار، الرأس، ملف تعريف الارتباط، إصدارات واجهة برمجة التطبيقات) مريحة للكناري/الحلقة.
4. 4 اتصالات طويلة العمر
بث WebSocket/gRPC: قم بتشغيل وضع التصريف + إشارة «GOAWAY» قبل التحديث.
خطط للنوافذ لتفوق التيارات وظهر العميل.
5) توافق البيانات وترحيل قاعدة البيانات
5. 1 التوسع في عقد الهجرة
1. التوسع: أضف أعمدة/فهارس/جداول جديدة دون كسر الإصدار القديم.
2. هاجر: ننقل البيانات في الخلفية وبشكل خفي (دفعات ونقاط تفتيش).
3. العقد: لا يحذف القديم إلا بعد التثبيت.
5. 2 ممارسات
تجنب أقفال DDL الحصرية في نافذة الإصدار.
إصدار عقود واجهة برمجة التطبيقات/الأحداث (سجل المخطط، مركز السيطرة على الأمراض).
للهجرات الثقيلة - أدوات عبر الإنترنت، ونسخ طبق الأصل، والتبديل التدريجي.
الكتابة المزدوجة فقط مع التفريغ والمستهلكين الأغبياء.
Outbox/Inbox للتكامل الموثوق من خلال قوائم الانتظار.
6) المخابئ والجلسات ووظائف الخلفية
الجلسات والذاكرة المخبأة خارجية (Redis/Memcached) بحيث يمكن استبدال الإصدارات.
قم بإحماء فهارس ذاكرة التخزين المؤقت/jits/الإيقاع قبل التجميع.
قسّم قوائم الانتظار الخلفية حسب الإصدار أو استخدم القيادة لتجنب السباق.
7) إمكانية الرصد وبوابات SLO
الإشارات الذهبية: زمن الانتظار p95/p99، معدل الخطأ، RPS، التشبع، تأخر الانتظار.
اتفاق قطاع الأعمال: الأذون، التحويلات، المدفوعات الناجحة، الرفض بخطوات القمع.
البوابات: لا يتم الترويج للبدء إلا إذا ≤ خط الأساس + عتبات التحلل، ولم تحترق ميزانية الخطأ.
8) الإنجاز الآمن والتراجع
التراجع هو نفس خط الأنابيب، فقط في الاتجاه المعاكس: الأوامر الثابتة، وليس «الكرافت اليدوية».
للأزرق والأخضر - اقلب للخلف ؛ للكناري - فقدان الوزن إلى 0٪ أو خطوة ثابتة سابقة.
البيانات: تعويض المعاملات، وإعادة المعالجة، وتفريغ الأحداث.
9) قوائم المراجعة الصفرية
قبل الإصدار
- يتم جمع قطعة أثرية موقعة (غير قابلة للتغيير) و SBOM وفحص التبعية.
- تنفيذ واختبار الاستعداد/الحيوية.
- خطة الهجرة في وضع التوسع، تم تأكيد القابلية للعكس.
- لوحات القيادة والتنبيهات للإصدار الجديد جاهزة، ويتم إلقاء علامات الإصدار.
- تم فحص التراجع للتدريج/ما قبل الحث.
وقت الإصدار
- يتم تمكين تصريف الاتصال، وتكون المهلة كافية.
- حركة المرور هي كناري/حلقة أو قلب (أزرق أخضر).
- تتم مقارنة المقاييس بخط الأساس، ويتم الوفاء بعتبات البوابة.
بعد الإصدار
- ساعات N بعد المراقبة، لا حوادث.
- الانتهاء من عمليات الهجرة التعاقدية، وإزالة الأعلام/الطرق المؤقتة.
- بأثر رجعي، تحديث كتاب اللعبة.
10) الأنماط المضادة
إعادة النشر بدون تصريف واستعداد ⇒ استراحة الطلب.
أقفال ⇒ DDL غير مستعدة في وقت الذروة.
مزج مخططات غير متوافقة بين إصدارات الخدمة.
الافتقار إلى الخصوصية لدى المتعاملين والعمال.
«طرح عن طريق الإحساس» بدون بوابات ومقارنة مع خط الأساس.
Long DNS-TTL مع اللون الأزرق والأخضر، ولهذا السبب يستمر التقليب لساعات.
الجلسات المحلية/ذاكرة مخبأة على سبيل المثال مع رولينج/كناري.
11) سيناريوهات التنفيذ
11. 1 كوبرنيت (رولينج + كناري)
النشر с 'MaxUnavailable = 0'، 'MaxSurge = 25٪'.
الاستعداد ينتظر الإحماء (التخزين المؤقت، الهجرة الطفيفة).
خدمة-شبكة/الدخول مع توجيه مرجح (1-5-10-25-50-100٪).
التنبيهات: p95، 5xx، تأخر الانتظار، قمع الأعمال.
11. 2 أزرق أخضر في السحابة
كومتان خلف التوازن: "أزرق. مثال على ذلك. كوم 'и' الأخضر. مثال على ذلك. com'.
قم بتسخين اللون الأخضر، أو الدخان/التراجع، ثم تبديل المستمع/المسار (أو تبديل DNS باستخدام TTL منخفض).
في حالة وجود مشاكل - قلب فوري للخلف.
11. 3 خدمة الدولة
نسخ طبق الأصل من البيانات + الهجرات عبر الإنترنت ؛ قراءة مزدوجة مع التحقق.
يتم نقل اللكمات الخلفية عن طريق إصدار «القيادة» أو قوائم الانتظار المنقسمة.
جلسات/مخبأ خارج الحالة ؛ يتم تمكين اللزجة مؤقتًا فقط.
12) Ficheflags وتطبيقات العملاء
يتم تنشيط الميزات الجديدة بواسطة الأعلام (القطاعات: الموظفون → الإصدار التجريبي → جميعهم).
بالنسبة لعملاء الهاتف المحمول/سطح المكتب، ضع في اعتبارك حدود توافق البروتوكول وسياسة التدهور القديمة (احتياطي جانب الخادم).
13) الأداء والتكلفة
التدحرج أرخص، لكنه يتطلب توافقًا دقيقًا.
Blue-Green أغلى في وقت الإصدار، لكن التراجع فوري.
يوازن الكناري بين المخاطر والتكلفة، لكنه يتطلب قابلية قوية للمراقبة.
وفر من خلال المعاينات سريعة الزوال وأكشاك التنظيف التلقائي.
14) خط الأنابيب المرجعي الأدنى ZDT
1. بناء: قطعة أثرية واحدة، توقيع، SBOM.
2. الاختبار: الوحدة/التكامل/العقد + الأمن.
3. التدريج: دخان، تحميل، توسيع الهجرات، فحص التراجع.
4. الحث: الظل → الكناري (البوابات) أو الوجه الأخضر الأزرق.
5. ما بعد النشر: المراقبة، تنظيف العقود، الرجعية.
15) موجز
Zero-Downtime هو نظام: إصدارات متوافقة + توجيه صحيح + هجرات مُدارة + قابلية للمراقبة والتراجع السريع. اختر نمطًا للسياق (متدحرج، أزرق-أخضر، كناري)، أتمتة بوابات SLO، حافظ على خفية البيانات - وستتوقف الإصدارات عن كونها حدثًا، وتتحول إلى عملية روتينية موثوقة.