نشر متدرّج خلف Load Balancer
أطلِق الإصدار تسلسليًا دون توقف
نشر متدرّج خلف Load Balancer درس مجاني في Ansible Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ansible Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ansible Academy 4 دروس في المجموع.
عدم التوقف هو الوعد
حدّث جميع عُقد الويب دون إسقاط أي طلب واحد. والحيلة هي النشر التدريجي: غيّر عددًا قليلًا من المضيفين في كل مرة. 🔄
يتحكم serial في الدفعة
أضف serial إلى الـ play حتى يعمل Ansible على المضيفين ضمن موجات صغيرة بدلًا من العمل عليها جميعًا دفعةً واحدةً.
- hosts: web
serial: 1
tasks:
- import_role:
name: webappتعمل النسب المئوية أيضًا
يقبل serial نسبةً مئوية أو قائمةً بأحجام الدفعات، حتى تتمكن من زيادة النطاق تدريجيًا: ابدأ بنشر تجريبي، ثم استخدم دفعات أكبر.
serial:
- 1
- 25%
- 50%أخرج العُقدة قبل لمسها
قبل تحديث عُقدة، أخرجها من التوزيع. استخدم delegate_to لإخبار موازن التحميل بالتوقف عن إرسال حركة المرور إليها.
- name: Drain node
community.general.haproxy:
state: disabled
host: "{{ inventory_hostname }}"
delegate_to: lb1لماذا تستخدم delegate_to مع LB
لا يستطيع مضيف الويب تعطيل نفسه في موازن التحميل؛ بل يجب على موازن التحميل تنفيذ ذلك. ويشغّل delegate_to هذه المهمة على lb1 لكل مضيف ويب.
انشر الإصدار الجديد
بعد إخراج العُقدة، انشر الشفرة، وأنشئ التهيئة، ودَع المعالج يعيد تحميل خدمة التطبيق لذلك المضيف فقط.
- name: Pull release
ansible.builtin.git:
repo: "{{ app_repo }}"
version: "{{ app_version }}"
dest: /srv/app
notify: Reload appافحص الصحة قبل إعادة التفعيل
تأكد من سلامة العُقدة باستخدام uri قبل إعادة إرسال المستخدمين إليها. لا تُعد أبدًا مضيفًا معطّلًا إلى المجموعة.
- name: Wait for health
ansible.builtin.uri:
url: http://localhost:8080/health
status_code: 200
retries: 5
delay: 3أعد التفعيل في موازن التحميل
بعد التأكد من سلامتها، أعد العُقدة إلى التوزيع، مرةً أخرى عبر delegate_to إلى موازن التحميل. وستتجه حركة المرور إلى الإصدار الجديد.
- name: Enable node
community.general.haproxy:
state: enabled
host: "{{ inventory_hostname }}"
delegate_to: lb1يحميك max_fail_percentage
اضبط max_fail_percentage حتى يتوقف النشر إذا فشل عدد كبير جدًا من المضيفين، مما يمنع الإصدار السيئ من الانتشار أكثر.
- hosts: web
serial: 1
max_fail_percentage: 20run_once للخطوات المشتركة
يجب تنفيذ بعض الخطوات، مثل ترحيل db لمرة واحدة، مرةً واحدةً فقط. استخدم run_once حتى ينفذها مضيف واحد فقط.
- name: Migrate db
ansible.builtin.command: /srv/app/migrate
run_once: trueالدورة بأكملها
لكل مضيف: أخرج العُقدة، وانشر التحديث، وافحص الصحة، ثم أعد التفعيل. ويكرر serial هذه الدورة ضمن موجات آمنة حتى يتم تحديث مجموعة المضيفين بأكملها. ✅
اختبار سريع
تجعل كلمة مفتاحية واحدة خطوة LB تعمل.
مراجعة
أنشأت نشرًا تدريجيًا: دفعات ينظمها serial، وإخراج العُقد وإعادة تفعيلها عبر delegate_to، وفحوصات للصحة، وحاجزًا عند الفشل. دون توقف. 🟢
الأسئلة الشائعة
هل درس «نشر متدرّج خلف Load Balancer» مجاني؟
نعم — نص درس «نشر متدرّج خلف Load Balancer» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ansible Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ansible Academy 4 دروس في المجموع.
ماذا ستتعلم في «نشر متدرّج خلف Load Balancer»؟
أطلِق الإصدار تسلسليًا دون توقف تتمرن على Ansible Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ansible Academy؟
لا تُشترط خبرة سابقة. Ansible Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «نشر متدرّج خلف Load Balancer»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ansible Academy هذا؟
نعم. كل درس في Ansible Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هندسة المشروع: Roles وInventory
- تجهيز المضيفين وتأمينهم وتهيئتهم الأولية
- نشر متدرّج خلف Load Balancer
- اختبارات Smoke والتراجع والإشعارات