تحديثات النظام البيئي دون توقف
(القسم: النظام الإيكولوجي والشبكة)
1) غرض ومبادئ عدم التوقف عن العمل
تضمن تحديثات وقت التوقف الصفري التشغيل المستمر للشبكة والمنتجات أثناء التغييرات في الكود والتكوينات وخطط البيانات والبروتوكولات. المبادئ الأساسية:- التوافق الخلفي/الأمامي عند حدود العقد.
- التسليم التدريجي بدلاً من «التبديل الكبير».
- قابلية الملاحظة والعكس: المقاييس والآثار والتراجع السريع.
- الخمول والتراجع الآمن لتدفقات الشبكة والدفع.
- عزل الصدع: بنية الخلية، قواطع الدوائر، حدود المروحة.
2) استراتيجيات الإصدار الخالية من التوقف
Blue-Green - كومتان متطابقتان (Blue = prod، Green = new). يتم تبديل حركة المرور ذريًا على مستوى التوازن مع إمكانية التراجع الفوري.
الكناري - حصة حركة المرور على مراحل (1%→5%→20%→50%→100٪) مع بوابات SLO.
Rolling - تحديث تجمع عقدة بعقدة مع فحص الاستعداد وتصريف الاتصال.
Shadow/Traffic Mirroring - مرآة طلبات إصدار جديد دون التأثير على الردود.
ميزة الأعلام - تبديل الأعمال للميزات عبر واجهة برمجة تطبيقات لم تتغير (طرح تدريجي).
الإطلاق المظلم - تمكين فروع المنطق المخفية للقياس عن بعد والتنميط.
التوصية: بالنسبة للخدمات الحيوية - مزيج من أعلام الكناري + الرولينغ + الميزات ؛ للبوابات وواجهات برمجة التطبيقات - الأزرق والأخضر مع التبديل القصير.
3) التوافق التعاقدي (API/الأحداث/البروتوكول)
واجهة برمجة التطبيقات: إصدار بواسطة URI/headers ؛ إضافة حقول - صالحة، حذف/إعادة تسمية - فقط من خلال «نافذة الاستنكار».
الأحداث (حدث - حافلة): حقول «إضافة فقط» ؛ والمفاتيح غير قابلة للتغيير ؛ أنواع جديدة - كموضوعات/إصدارات جديدة.
المخططات (Avro/JSON-Schema/Protobuf): مخطط التسجيل، التوافق «الكامل» المتخلف.
protocol/P2P الشبكة: مصافحة النسخ والتفاوض على القدرات (تعلن العقد عن الإصدارات/الميزات المدعومة).
البوابات: المحولات بين vN و vN + 1 (الترميز العابر/رسم الخرائط الميدانية) لفترة الهجرة.
سياسة الاستخفاف (مثال): الإعلان → ≥90 أيام من الإنذار → صندوق التحقق «المستنكر» → حذف الحقل/نقطة النهاية.
4) توسيع عقد → → الهجرة
1. التوسع - إضافة هياكل/فهارس/أعمدة جديدة (غير قابلة للإلغاء/الافتراضي)، الكتابة المزدوجة (الكتابة المزدوجة) إلى الأشكال القديمة والجديدة.
2. الهجرة - هجرات خلفية، ردم، التحقق من الاتساق ؛ قراءة من خلال محول يدعم كلا المخططين.
3. العقد - تعطيل القراءة/الكتابة إلى المخطط القديم، وإزالة الديون الفنية بعد إكمال «نافذة الاستنكار».
sql
-- Expand
ALTER TABLE payouts ADD COLUMN payout_ref TEXT NULL;
CREATE INDEX CONCURRENTLY ix_payouts_ref ON payouts(payout_ref);
-- Migrate (batch + idempotent)
UPDATE payouts SET payout_ref = concat('ref_', id) WHERE payout_ref IS NULL;
-- Contract (after compatibility window)
ALTER TABLE payouts ALTER COLUMN payout_ref SET NOT NULL;
معاملات الحدث: استخدم Outbox (معاملة مع سجل الأحداث) + CDC للتسليم المضمون.
5) التوصيلات والصرف طويل العمر
الإغلاق الرشيق: توقف SIGTERM → عن قبول الطلبات الجديدة → ضبط «الاستعداد = الفشل» → انتظار تدفقات WebSocket/HTTP2/QUIC لتستنزف →.
استنزاف الاتصال على التوازن: «إلغاء التسجيل _ تأخير» 30-120 ثانية، جلسات لزجة - من خلال الرموز المميزة، وليس IP.
الضغط الخلفي: الحد من p99_latency المنبع الجديدة.
6) SDK و Client Veronising
SemVer for SDK; فرع LTS مع نافذة دعم ممتدة (على سبيل المثال 12 شهرا).
السياسة: «نسختان صغيرتان نشطتان على الأقل» ؛ والقياس عن بعد لكل عميل حسب النسخة ؛ تنبيهات الترقية التلقائية
التغييرات الحاسمة (الأمان): العلم القسري لتعطيل الإصدارات القديمة عبر البوابة بعد الموعد النهائي.
7) تحديثات البروتوكولات والعقد الشبكية
الشوكة الناعمة: تمديد القواعد دون انتهاك العقد القديمة (القدرات).
الشوكة الصلبة: نافذة معلنة مسبقًا، التحقق المزدوج، «مصدقات الكناري»، الحماية من نزاعات «إعادة الإرجاع/التراجع»، قفل زمني للتنشيط.
التحديثات عبر السلسلة: تنقل جسور الحوكمة إشارات التنشيط ؛ في حالة عدم التوافق - قاطع الدائرة المحلية.
8) التكوينات والأسرار كبيانات
خدمة تهيئة مركزية مع إصدار وتوقيعات رقمية والتراجع.
تناوب الأسرار دون انقطاع: مفاتيح مزدوجة (قديمة/جديدة)، إدراج بديل ؛ صفر توقف لنظام إدارة كوسوفو/مرفق المفاتيح العمومية.
أعلام الميزات في صف منفصل، تدقيق التشغيل/الإيقاف.
9) إطلاق خط الأنابيب و «البوابات» التلقائية
: بناء وحدة المسح الأمني e2e/المرحلة الظل الكناري 100٪.
توقف البوابات:- معدل حرق ميزانية الخطأ، p95/p99، معدل الخطأ، انخفاض في أحداث/مدفوعات معدل النجاح، نمو قوائم الانتظار بحروف ميتة.
- التراجع التلقائي في حالة انتهاك SLO في أي من المراحل.
yaml release:
strategy: canary steps:
- name: shadow traffic_mirror: 5%
gates: [no_data_loss, no_pii_leak]
- name: canary_1 traffic: 1%
gates: [error_rate<0. 2%, p99<400ms]
- name: canary_2 traffic: 10%
gates: [slo_ok_1h, zero_deadletters]
- name: rollout traffic: 100%
gates: [stability_6h]
- name: bake duration: 24h action: finalize_or_rollback
10) إمكانية الرصد و SLO للإطلاقات
المؤشرات القصوى الرئيسية:- p95/p99 زمن الوصول حسب نقاط النهاية ؛ معدل الخطأ (5xx + 4xx القاتل) ؛ وأحداث معدل النجاح ؛ ونسبة المسترجعات ؛ التأخر في الانتظار ؛ حصة «الترحيل» في P2P ؛ حصة العملاء حسب الإصدار.
- p99 API ≤ 400 mm ؛ معدل الخطأ ≤ 0. 2%; أحداث معدل النجاح ≥ 99. 5%; تأخر الطابور ≤ 2 s; تراجع MTTR ≤ 15 دقيقة.
- لوحات القيادة: قبل/بعد المقارنة، الرسوم البيانية للكناري، خريطة التبعية (خريطة الخدمة)، تنبيهات معدل الحرق 1 ساعة/6 ساعة.
11) التراجع وتبديل القتل
التراجع التلقائي: الاحتفاظ بأحدث القطع الأثرية والتكوينات «الجيدة» ؛ تراجع «زر واحد» على الميزان (Blue←Green).
التراجع الجزئي: يطفئ phicheflag المنطق الجديد عند حفظ الثنائي.
تراجع البيانات: فقط من أجل «مسارات القراءة» ؛ لمسارات الكتابة - الهجرات المحمية (لا تحذف أبدًا الأعمدة القديمة حتى نهاية النافذة).
Kill-switch: علم مركزي لتعطيل النظام الفرعي غير المستقر.
12) الاختبار دون توقف
اختبارات العقود ضد تثبيت العملاء (يحركها المستهلك).
اختبارات مقارن المخطط.
اختبارات الفوضى في التدريج: فشل٪ من العقد/المناطق، وتحلل DHT/TURN/KMS/DNS، «إعادة العاصفة».
اختبارات الحمل/التدوين: مناطق الكناري والطرق الساخنة.
13) البلاغات وإجراءات الامتثال
ملاحظات الإصدار: ما هي التغييرات والتأثير والنوافذ/المواعيد النهائية للاستنكار والإجراءات للشركاء.
SLA للردود على الحوادث: MTTA ≤ 5 دقائق، أول تحديث للحالة ≤ 15 دقيقة، بعد الوفاة ≤ 72 ساعة.
مراجعة الحسابات: ربط جميع التغييرات والإصدارات بالتطبيقات/المواقع، وتوقيعات القطع الأثرية.
14) حالات خاصة
الدفع/التدفقات المالية: الخصوصية الصارمة، التخلص وفقًا لمفتاح الخصوصية، outbox + CDC، الهجرات «غير المدمرة» فقط.
WebSocket/streams: نسخة البروتوكول في المصافحة، إعادة الاتصال مع ملخص (استئناف الرموز).
ذاكرة التخزين المؤقت/الحافة: إصدارات مخبأ مزدوجة، نظافة TTL أثناء فترة الإصدار.
عملاء الهاتف المحمول: بدء التنفيذ التدريجي في القطاعات، والتحديث القسري للإصدارات الأمنية.
15) قائمة مرجعية لوقت التوقف عن العمل
1. تم تشكيل توافق العقود ونظام التسجيل.
2. Expand→Migrate→Contract موصوفة وآلية.
3. يدعم Balance/Ingress تصريف الأزرق والأخضر والاتصال.
4. خط أنابيب الكناري مع بوابات SLO والتراجع التلقائي.
5. تتوفر أعلام الميزات ومفتاح القتل 24/7.
6. يتم تمكين Outbox + CDC والغباء لجميع مسارات الكتابة.
7. لوحات القيادة الصحية والإنذارات بمعدل الحروق نشطة.
8. الاتصالات واستنكار السياسة المعلنة للشركاء مسبقًا.
9. التراجع عن التدريب الأسبوعي ؛ يوم فوضى ربع سنوي.
16) مسرد
التسليم التدريجي - الإفراج التدريجي عن الميزات مع التحكم في المخاطر.
سجل المخطط - مستودع لنسخ المخطط مع سياسات التوافق.
Outbox/CDC - نموذج للنشر المضمون للأحداث من المعاملات.
الأزرق الأخضر - أكوام متوازية مع تبديل حركة المرور الذرية.
كناري - زيادة تدريجية في حصة حركة المرور على الإصدار الجديد.
الإغلاق/الصرف الرشيق - الإنهاء الصحيح للاتصالات النشطة.
خلاصة القول: وقت التوقف الصفري ليس خدعة واحدة، ولكنه نظام: العقود، وتوافق المخطط، واستراتيجيات الإصدار التدريجي، وإمكانية الملاحظة، والهجرات الآمنة، والتراجع المضمون. باتباع هذا الإطار، يتم تحديث النظام البيئي بسرعة وبشكل متوقع وبدون ألم للمستخدمين والشركاء.