0Pricing
DevOps Bootcamp · درس

نشر الخدمات في Swarm

انشروا التطبيقات المعبّأة في حاويات ووسّعوها كخدمات على عنقود Swarm، مع إدارة دورة حياتها

نشر الخدمات في Swarm درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ما خدمة Docker Swarm؟

في Docker Swarm، service هي تعريف للطريقة التي تريدون بها تشغيل تطبيق مستند إلى الحاويات عبر العنقود.

بدلًا من تشغيل حاويات فردية، تعرّفون خدمة لإخبار Swarm: "أريد تشغيل X من مثيلات هذه الصورة، على هذه المنافذ، وبهذه الإعدادات."

يضمن Swarm بعد ذلك الحفاظ على الحالة المطلوبة، ويعيد تشغيل الحاويات تلقائيًا عند تعطلها.

نشر الخدمات في Swarm — رسم توضيحي 1

الخدمات في مقابل الحاويات

فكّروا في الأمر بهذه الطريقة:

  • تمثل الحاوية مثيلًا واحدًا من التطبيق.
  • تمثل الخدمة مخططًا لتشغيل حاوية واحدة أو أكثر متطابقة (تُسمى مهام) عبر Swarm.

توفر الخدمات الإتاحة العالية وقابلية التوسع من خلال توزيع المهام ومعالجة الأعطال تلقائيًا.

نشر أول خدمة لكم

يُستخدم الأمر docker service create لنشر التطبيقات كخدمات إلى عنقود Swarm. لننشئ خدمة خادم ويب Nginx بسيطة.

جرّبوا تشغيل هذا المثال:

docker service create \
  --name my-web-app \
  -p 80:80 \
  --replicas 1 \
  nginx

فهم إنشاء الخدمة

لنحلّل الأمر الذي استخدمناه للتو:

  • --name my-web-app: يمنح خدمتكم اسمًا سهل التذكّر.
  • -p 80:80: يربط المنفذ 80 على عُقد Swarm بالمنفذ 80 داخل الحاوية.
  • --replicas 1: يخبر Swarm بالحفاظ على مثيل واحد قيد التشغيل (مهمة) من هذه الخدمة.
  • nginx: يحدد صورة Docker التي ستُستخدم لمهام الخدمة.

فحص خدماتكم

بعد إنشاء خدمة، سترغبون في التحقق من حالتها ومعرفة مهامها قيد التشغيل. استخدموا الأوامر التالية:

  • docker service ls: يعرض جميع الخدمات في Swarm.
  • docker service ps <service_name>: يعرض المهام الفردية (الحاويات) المرتبطة بخدمة.
docker service ls
docker service ps my-web-app

توسيع نطاق خدمتكم

تُعد سهولة التوسع إحدى الفوائد الأساسية لـ Docker Swarm. يمكنكم زيادة عدد المثيلات قيد التشغيل (النسخ المتماثلة) لخدمتكم باستخدام أمر واحد.

لنوسّع my-web-app إلى ثلاث نسخ متماثلة:

docker service scale my-web-app=3

تقليص نطاق خدمتكم

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

لنقلّص my-web-app مجددًا إلى نسخة متماثلة واحدة:

docker service scale my-web-app=1

تحديث خدمة

عندما تحتاجون إلى نشر إصدار جديد من تطبيقكم أو تغيير إعدادات الخدمة، ينفّذ docker service update تحديثًا تدريجيًا. يحدّث Swarm المهام واحدة تلو الأخرى، مما يضمن بقاء تطبيقكم متاحًا.

لنحدّث خدمة Nginx إلى إصدار محدد:

docker service update --image nginx:1.25 my-web-app

إزالة خدمة

عندما تعود الخدمة غير مطلوبة، يمكنكم إزالتها من Swarm. وسيؤدي ذلك إلى إيقاف جميع المهام المرتبطة بها وحذف تعريف الخدمة من العنقود.

لإزالة خدمة تطبيق الويب النموذجية لدينا:

docker service rm my-web-app

اختبار إدارة الخدمات

لديكم خدمة باسم my-backend تعمل بثلاث نسخ متماثلة وتستخدم الصورة my-backend:v1. تحتاجون إلى تحديثها لاستخدام صورة جديدة هي my-backend:v2، وزيادة عدد النسخ المتماثلة أيضًا إلى 5.

مراجعة: خدمات Swarm

أحسنتم! لقد تعلّمتم أساسيات نشر التطبيقات وإدارتها كخدمات في Docker Swarm.

  • تحدد الخدمات الحالة المطلوبة لتطبيقاتكم المستندة إلى الحاويات.
  • تعلّمتم إنشاء الخدمات باستخدام docker service create.
  • تعرّفنا على فحص الخدمات وتوسيع نطاقها (docker service scale) وتحديثها (docker service update).
  • وأخيرًا، يمكنكم إزالة الخدمات باستخدام docker service rm.

تُعد الخدمات أساسية لبناء تطبيقات قابلة للتوسع ومرنة في عنقود Swarm!

الأسئلة الشائعة

هل درس «نشر الخدمات في Swarm» مجاني؟

نعم — نص درس «نشر الخدمات في Swarm» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «نشر الخدمات في Swarm»؟

انشروا التطبيقات المعبّأة في حاويات ووسّعوها كخدمات على عنقود Swarm، مع إدارة دورة حياتها تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «نشر الخدمات في Swarm»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى Docker Swarm
  2. إعداد عنقود Swarm
  3. نشر الخدمات في Swarm
  4. التوسعة والتحديثات التدريجية في Swarm
← العودة إلى DevOps Bootcamp