Logo GH

إصدارات Blue-Green و Canary

(القسم: الهندسة المعمارية والبروتوكولات)

1) لماذا نحتاج إلى «عمليات طرح آمنة»

في الأنظمة الحديثة، الإصدار ليس فقط تسليم التعليمات البرمجية، ولكن أيضًا تجربة مضبوطة في المبيعات: نحن في نفس الوقت نقلل المخاطر (لا تكسر المستخدمين) ونقلل وقت التعليقات (انظر التأثير بسرعة). هناك استراتيجيتان كلاسيكيتان - Blue-Green و Canary - تحلان هذا بطرق مختلفة، ولكن بهدف مشترك: عدم التعطل، التراجع السريع، إمكانية الملاحظة بواسطة SLO.

2) التعاريف الأساسية

أزرق أخضر

نحتفظ بنسختين كاملتين من بيئة الإنتاج: يخدم (الأزرق) النشط حركة المرور، ويقوم (الأخضر) السلبي بإعداد إصدار جديد. التبديل ذري (تبديل/قلب) على مستوى التوازن/جهاز التوجيه. إذا ساءت الأمور، نعود على الفور إلى Blue.

كناري

نطرح في أجزاء: أولاً إلى نسبة صغيرة من حركة المرور (على سبيل المثال، 1-5٪)، ونلاحظ المقاييس/SLO، ثم نزيد الحصة خطوة بخطوة (10٪ → 25٪ → 50٪ → 100٪). أثناء التدهور - التراجع أو التوقف عند الخطوة المستقرة السابقة.

3) متى يكون النهج هو الأفضل

الأزرق الأخضر - اختر ما إذا:
  • نحتاج إلى تراجع فوري بدون مناورات معقدة.
  • تسمح الهندسة المعمارية/الميزانية بازدواجية البنية التحتية المزدوجة.
  • نريد إجراء هجرات واسعة النطاق أو تحديثات للمنصة (OS/JDK/وقت التشغيل) بمعزل عن الآخرين.
  • تعتبر مجمعات التطبيقات/التوصيل حساسة لحالة «مختلطة» تدريجيًا.
كناري - حدد إذا:
  • تحتاج إلى تقليل نصف قطر الانفجار ورؤية السلوك على نسبة المستخدمين.
  • معدل إطلاق مرتفع، تسليم تدريجي كالمعتاد.
  • هناك إمكانية رصد ناضجة وبوابات تلقائية (ميزانية خطأ، زمن انتقال، تحويل).
  • يريد فريق المنتج اختبار الفرضيات: التأثير على التحويل والاحتفاظ و LTV وما إلى ذلك.

4) المبادئ العامة للإفراج الناجح

القطع الأثرية ذات البناء الغبي: نفس الصورة/الحزمة في جميع المراحل.
التكوين الحتمي: التهيئة كرمز، قابلية مقارنة البيئات.
إمكانية الرصد حسب التصميم: السجلات والمقاييس والآثار والإنذارات ؛ SLI/SLO مقدمًا.
التراجع التلقائي السريع: يعد زر/أمر التراجع جزءًا من خط الأنابيب، وليس السحر اليدوي.
التغييرات المتوافقة في المخطط: استراتيجية العقد الموسع (انظر الفقرة 10).
توجيه L7 (مرغوب فيه): المرونة على رؤوس واجهة برمجة التطبيقات/ملفات تعريف الارتباط/المسارات/الإصدارات.

5) الأزرق الأخضر: العمارة والعملية

5. 1 الطوبولوجيا

رزمتان: الأزرق (النشط) والأخضر (المرشح).
التبعيات الخارجية المشتركة: CDN، APIs الخارجية، الطوابير ؛ DB هي حالة خاصة (انظر الفقرة 10).
نقطة التبديل: التوازن/الدخول/البوابة.

5. 2 التدفق خطوة بخطوة

1. نقوم بتربية Green تحت قطعة أثرية جديدة (vNext)، ونجري اختبارات التدخين.
2. تشغيل Autotest ضد Green (e2e، عقد، تراجع).
3. قم بتدفئة المخبأ/الجلسات (إذا كان ذلك ممكنًا)، وقم بمزامنة اللكمات/قوائم الانتظار في الخلفية.
4. تبديل حركة المرور إلى الأخضر: قلب ذري (DNS TTL منخفض، الطريق/تبديل المستمع، وزن الدخول = 100٪).
5. نلاحظ SLO في الدقائق/الساعات الأولى (الإشارات الذهبية: الكمون والأخطاء والتشبع + مقاييس العمل).
6. في حالة وجود مشاكل - العودة الفورية إلى Blue (قلب للخلف).

5. 3 الإيجابيات/السلبيات

الإيجابيات: التراجع الفوري، نموذج عقلي بسيط، عزلة خالصة.
السلبيات: مضاعفة البنية التحتية، وصعوبة المكونات الحكومية وهجرة البيانات.

6) الهندسة المعمارية والعملية الكناري

6. 1 الطوبولوجيا

مجموعة إنتاج وحيدة ؛ عدة إصدارات من الخدمة (مستقرة وكناري) خلف جبهة واحدة.
يتم تقسيم حركة المرور حسب الأوزان (1-5-10-25-50-100٪) أو حسب الأهداف (بالرأس/ملف تعريف الارتباط/الهوية).

6. 2 التدفق خطوة بخطوة

1. نشر نسخ من الكناري في نفس المجموعة/الأمين العام المساعد/مجموعة موردي المواد النووية.
2. توجيه بعض حركة المرور (على سبيل المثال، 1-5٪) إلى الكناري.
3. الفحص التلقائي لمقاييس SLI/SLO والأعمال التجارية ؛ بوابات في CI/CD (معدل الخطأ، زمن الانتقال p95، وحدة المعالجة المركزية/RES، التحويل، الرفض/العودة).
4. زيادة حصة حركة المرور خطوة بخطوة عند مرور البوابات.
5. النشر الكامل إلى 100٪ وتعطيل النسخة القديمة ؛ في حالة التدهور - التراجع التلقائي.

6. 3 الإيجابيات/السلبيات

الإيجابيات: الحد الأدنى من المخاطر لمعظم المستخدمين، والحل القائم على البيانات.
السلبيات: نحتاج إلى إمكانية رصد ناضجة، وتوجيه كفء، وخطر «انحراف الإصدار» بين الحالات.

7) توجيه حركة المرور

الطبقة L4: التوازن حسب الملكية الفكرية/الموانئ ؛ مرونة بسيطة ولكن قليلة.
المستوى L7: قواعد HTTP/S - على المسار، المضيف، الرأس، ملفات تعريف الارتباط، وكيل المستخدم، GeoIP، SNI.

الفنيون:
  • التوجيه المرجح (الأوزان 1-100٪).
  • قائمة على الرأس/ملفات تعريف الارتباط.
  • لزوجة الجلسة (مهمة للنصوص الحكومية/المخبأة).
  • Shadow/Traffic mirroring (طلبات المرآة للنسخة الجديدة «بهدوء»).

8) الأدوات والتطبيقات (أمثلة)

Kubernetes: Ingress (NGINX، Contour)، Service Mesh (Istio/Linkerd)، Argo Rollouts، Flagger.
Облака: AWS ALB/ELB, Route 53 weighted records, ECS/EKS; موازنة حمولة GCP + NEG ؛ Azure Front Door/App Gateway.
منصات CD: Spinnaker و Argo CD و GitHub Actions + ملحقات التسليم التدريجي و GitLab/CD.

💡 المبدأ الأول: النسخة - الكود، حركة المرور - السياسة، الترويج - بوابات SLO الآلية.

9) إمكانية الرصد، SLI/SLO والبوابات

الإشارات الذهبية: الكمون (p95/p99)، معدل الخطأ (5xx/4xx по типам)، RPS، التشبع (CPU/Memory/GC)، تأخر الانتظار.
مقاييس الأعمال: التحويل، الأذونات، المدفوعات/النجاحات، متوسط الشيك، الرفض عن طريق خطوات القمع.

البوابات:
  • عتبة الخطأ (على سبيل المثال، معدل الخطأ الكناري ≤ خط الأساس + X%).
  • p95 الكمون ليس أسوأ من خط الأساس بأكثر من Δ.
  • عتبة العمل (مثلاً) انخفاض التحويل
  • لا ينبغي أن تحترق ميزانية خطأ SLO بشكل أسرع.

مدة الخطوة: الحد الأدنى من الوقت الكافي للأهمية الإحصائية (يعتمد على حركة المرور).

10) هجرات قاعدة البيانات وتوافق المخطط

القاعدة الرئيسية: الإصدارات آمنة إذا كانت الإصدارات ذهابًا وإيابًا متوافقة.

استراتيجية التوسع في عقود الهجرة:

1. التوسع: أضف أعمدة/فهارس/جداول جديدة دون كسر الإصدار القديم.

2. انشر التطبيق vNext (يقرأ/يكتب إلى المخطط الجديد، لكنه يعرف كيفية العمل مع المخطط القديم).

3. ترحيل البيانات (الخلفية/الدفعة، الخصوصية، مع نقاط التفتيش).

4. العقد: حذف الحقول/الميزات القديمة بعد التثبيت.

الأنماط المضادة: الهجرات التي تتطلب الحجب الحصري عند نقطة التبديل الأزرق الأخضر ؛ وعدم القدرة على خفض مستوى المخطط ؛ «كتابة مزدوجة» بدون تفريغ.

11) خطط التراجع والطوارئ

الأزرق الأخضر: قلب فوري على الأزرق ؛ مراقبة ذيول وظائف الخلفية الخضراء.
الكناري: تراجع الوزن (على سبيل المثال، من 25٪ إلى 5٪ أو 0٪) ؛ الإجهاض التلقائي على التنبيهات.
البيانات: سياسة مدروسة جيدًا للتكرار/التعويض (مفاتيح الخصوصية، نمط «inbox/outbox»، تفريغ الرسائل).
Ficheflags: مفتاح قتل سريع لإغلاق الفرص المطروحة جزئيًا.

12) العمل مع الولايات والدورات

جلسات لاصقة لجزر الكناري، أو تخزين الجلسات خارجيًا (Redis/Memcached) بحيث تكون الإصدارات قابلة للتبديل.
يخبأ للإحماء مسبقًا (الإحماء الأخضر) ويأخذ في الاعتبار الإبطال عند الانقلاب.
عمال الخلفية: لا تسمح بـ «السباقات» بين الإصدارات - فصل قائمة الانتظار أو «القيادة» حسب الإصدار.

13) السلامة والامتثال

الوصول إلى Green/Canary - بواسطة Zero Trust: حسابات الخدمة، الحد الأدنى من الأدوار المطلوبة.
الأسرار والمفاتيح - عن طريق KMS/Secrets Manager ؛ تشغيل الدوران.
حركة المرور - TLS فقط ؛ ونسخ نقطة النهاية محددة بوضوح ؛ أنشطة تحديد مسارات مراجعة الحسابات والإفراج عنها.

14) التكلفة والأداء

يضاعف Blue-Green البنية التحتية (وقت الإصدار أو باستمرار) - الميزانية.
الكناري أكثر اقتصادا، لكنه يتطلب أدوات للمراقبة ووقت هندسي للتشغيل الآلي.
التحسين: القياس الذاتي، البيئة سريعة الزوال، تقصير نافذة الوجود الموازي للإصدارات.

15) القوائم المرجعية

قبل الإصدار

  • صورة/بناء تم الترويج له من مصدر واحد، وتم التحقق من التوقيعات.
  • تم تكوين خطة الاختبار والتنبيهات وبوابات SLO.
  • هجرات قاعدة البيانات - في وضع التوسع، تتوفر خطط خفض التصنيف.
  • خطة التراجع - تم فحصها في التدريج/الإنتاج الشبيه.

وقت الإصدار

  • تتم مقارنة المقاييس والسجلات بخط الأساس.
  • بالنسبة للكناري، يتم تحديد الخطوات والعتبات ؛ للأزرق الأخضر - الاستعداد للخلف.
  • الأوامر عند الطلب معروفة، وهناك نافذة ردود فعل.

بعد الإصدار

  • لم يغرق SLO، ميزانية الخطأ طبيعية.
  • الانتهاء من عمليات الهجرة/التنظيف بعد الإفراج.
  • الاسترجاع وتحديث قواعد اللعبة.

16) الأخطاء المتكررة والأنماط المضادة

الطرح بدون مقاييس: لا توجد بيانات - لا يوجد حل مُدار.
مزج مخططات قواعد البيانات غير المتوافقة، والافتقار إلى استراتيجية خفض التصنيف.
خلط حركة المرور العشوائية: لا لزوجة، المستخدمون «يقفزون» بين الإصدارات.
التبعيات الخفية (الأقراص المحلية، مخابئ الذاكرة).
يتداخل Long DNS-TTL مع الانقلاب السريع (الأزرق الأخضر).
نقص السيارات: تبطئ الحلول اليدوية «بالعين» وتزيد من المخاطر.

17) النهج المشتركة

Blue-Green + Canary: طرح Green أولاً، ثم داخل Green طرح Canary للخدمات الفردية.
حركة المرور في الظل/الهجرة: قبل الكناري، نشغل حركة المرور المعكوسة للإصدار الجديد.
أعلام الميزة (التسليم التدريجي): يتم تضمين الوظيفة أعلى الإصدار المستقر بواسطة أعلام «داكنة» حسب المقاطع.

18) عينة سيناريوهات (رسومات)

الأزرق الأخضر (ويب + api):

1. انشر Green (v2) للمستمع/الدخول الجديد.

2. قم بتدفئة المخابئ وإجراء الفحوصات بسهولة والتدخين.

3. نقوم بتحويل الوزن إلى Green = 100٪.

4. احترس من SLO لمدة 30-60 دقيقة ؛ إذا كان كل شيء على ما يرام - أوقف اللون الأزرق.

كناري (خدمة الدفع الصغيرة):

1. انشر vNext (نسخ طبق الأصل 5٪).

2. نحن نشمل 5٪ حركة مرور للحسابات الداخلية/قطاع الاختبار.

3. Autogate: معدل الخطأ ≤ خط الأساس + 0. 3٪، p95 ≤ + 20 مليون.

4. نرفع 10٪ → 25٪ → 50٪ كل N دقيقة عند مرور البوابات.

5. نترجم ficheflag 100٪ لجميع القطاعات ؛ حذف النسخة القديمة.

19) الاختلافات في البنى المختلفة

Monolith: Blue-Green أبسط، Canary أكثر صعوبة بسبب عدم قابلية الميزات للتجزئة ؛ استخدام ficheflags.
Microservices: الكناري طبيعي ؛ رصد العقود التي يحركها المستهلك.
الخدمات الحكومية: تفضل Blue-Green مع الهجرات المصممة بعناية واللزوجة.

20) مقارنة موجزة (موجز)

سرعة التراجع: الأزرق الأخضر = فوري ؛ الكناري = سريع ولكن مع تراجع في الوزن.
تكلفة البنية التحتية: ↑ الأزرق الأخضر ؛ ↔︎/↓ الكناري.
المخاطر على المستخدمين: كناري أقل (نتحكم في الحصة).
صعوبة التنفيذ: من الأسهل البدء باللون الأزرق الأخضر ؛ يتطلب الكناري قابلية قوية للمراقبة والأتمتة.
توافق البيانات/الدوائر: حاسم بالنسبة لكليهما ؛ التوسع في عقد الهجرة.

21) خلاصة القول

بلو جرين وكناري ليست استراتيجيات متعارضة، ولكنها عناصر تسليم تدريجي. يعتمد الاختيار على قيود التكلفة، ونضج إمكانية الملاحظة، وطبيعة التغييرات. بغض النظر عن النهج، يعتمد الإصدار المستدام على أربع ركائز: الأتمتة وقابلية الملاحظة والتوافق الخلفي والتراجع السريع.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.