5.1سرب (Swarm) مقابل كوبرنيتس (Kubernetes) : متى ننتقل إلى التنسيق (orchestration) ؟
الأساسي في 30 ثانية
- Compose = آلة واحدة : فهو لا يوزع على عدة مضيفين، ولا يستبدل عقدة ميتة، ولا يوازن الحمل بدقة بين النسخ — فمتى لزم تعدد الآلات أو انعدام التوقف أو الإصلاح الذاتي، وجب التنسيق.
- سرب (Swarm) = تعدد مضيفين بسيط : مدمج في دوكر (Docker)، قريب من Compose، مثالي لـ 2 إلى 5 آلات (النسخ المكررة، والتحديث دون توقف).
- كوبرنيتس (Kubernetes) = حظيرة متطلبة : هو المعيار على النطاق الكبير (النشر، والخدمات، والتحجيم التلقائي، والأسرار) لكنه يقتضي تعلما جديا — والقاعدة : Compose ← سرب (Swarm) ← كوبرنيتس (Kubernetes)، بحاجة مثبتة، أبدا بالموضة.
حالة مصغرة متسلسلة — إدير، مهندس عمليات مبتدئ في الجزائر
إدير، مهندس عمليات مبتدئ في الجزائر، يشغّل تطبيق بنيته الصغيرة على خادم واحد مع Compose : وهو يعمل. وذات يوم يُسأل « لماذا لا كوبرنيتس (Kubernetes) ؟ ». فبدلا من الاندفاع، يدقق : آلة واحدة، وتحديثات بسيطة، ولا أي متطلب لتعدد المضيفين. الحكم : Compose مُجهَّز جيدا (CI، والنسخ الاحتياطي، وفحوص الصحة) يكفي. ويدوّن مع ذلك الخطوة التالية : إذا انتقل الفريق إلى آلتين أو 3 آلات مع حاجة إلى النسخ المكررة، فسيكون سرب (Swarm) ؛ وكوبرنيتس (Kubernetes) فقط إذا اقتضت الحظيرة والفرق ذلك. وهذه الحالة تعود في الدرس والمخطط والنص الجاهز وتحدي 48 ساعة — وتستمر في 5.2 و5.3 و5.4.
هذه الحالة نفسها تعود في الدرس والمخطط والنص الجاهز وتحدي 48 ساعة — وتستمر في 5.2 و5.3 و5.4.
1. ما لا يفعله Compose
يتفوق Compose على آلة واحدة : فيطلق حزمة ويربطها ويعيد تشغيلها بموثوقية. لكنه لا يوزع الحاويات على عدة مضيفين، ولا يستبدل تلقائيا عقدة ميتة، ولا يوازن الحمل بدقة بين النسخ المكررة. ويتحقق إدير من ذلك على خادمه في الجزائر : فما دام لا يملك إلا مضيفا واحدا وتحديثات بسيطة، فهذه الحدود لا تزعجه.
ومتى أردنا انعدام التوقف على عدة آلات، أو تعدد المضيفين، أو الإصلاح الذاتي، لزمنا منسِّق (orchestrateur) : قائد متعدد الآلات يضع النسخ المكررة ويراقب ويصلح. فالسؤال إذن ليس « أي أداة هي الموضة ؟ » بل « أي ألم حقيقي يجب أن أعالج ؟ ».
2. سرب (Swarm) : الأخ الأكبر لـ Compose
سرب (Swarm) مدمج في دوكر (Docker) ويتكلم تقريبا لغة Compose (docker stack deploy -c compose.yml). وتعلُّمه سريع : مدير، وعمال، ونسخ مكررة، وتحديثات نسخة بنسخة. ويرى إدير فيه الخطوة الطبيعية إذا انتقلت بنيته إلى آلتين أو 3 آلات : نفس منعكسات Compose، مع التوزيع والتحديث دون توقف.
مثالي لـ 2 إلى 5 آلات وحاجات بسيطة. وحدُّه : منظومة ودقة أقل من كوبرنيتس (Kubernetes) (لا تحجيم تلقائي أصلي بمثل عمقه، وملحقات أقل). ولتعدد المضيفين البسيط، نسبته جهدا إلى فائدة ممتازة.
3. كوبرنيتس (Kubernetes) : المعيار المتطلب
ينسّق كوبرنيتس (Kubernetes) على النطاق الكبير : النشر، والخدمات ذات العناوين المستقرة، والتحجيم التلقائي، والأسرار، والكشف المتقدم. لكنه يقتضي تعلما جديا وعنقودا يُشغَّل — أو عنقودا مُدارا يشغّله مزود. ويحفظ إدير قاعدة التدرج : Compose ← سرب (Swarm) ← كوبرنيتس (Kubernetes)، درجة درجة، بحاجة مثبتة.
فكوبرنيتس (Kubernetes) دون حاجة هو تعقيد دون فائدة : مزيد من القطع للمراقبة والنسخ الاحتياطي والتحديث، دون أي مكسب إذا كانت آلة واحدة تكفي. ونصعد درجة متى اقتضى الألم ذلك — أبدا للتعلم في الإنتاج.
هل تعلم ؟
كوبرنيتس (Kubernetes) دون حاجة هو تعقيد دون فائدة.
🔎 مثال ملموس — شبكة قرار إدير
كل درجة تجيب ألما حقيقيا.
آلة 1، نشرات بسيطة -> Compose + CI + نسخ احتياطي
2-5 آلات، نسخ مكررة، تحديث دون توقف -> سرب (Swarm) (نشر حزمة)
حظيرة، تحجيم تلقائي، فرق متعددة -> كوبرنيتس (Kubernetes) (مُدار)
سؤال فخ : نريد كوبرنيتس
-> أي حاجة دقيقة ؟ وإلا : Compose.
القراءة : يضع إدير حاجته الحقيقية على السلم قبل الاختيار.
الدرس : منسِّق دون حاجة = تعقيد دون فائدة.
مفردات القسم
- المنسِّق
- القائد متعدد الآلات : يضع النسخ المكررة ويراقب ويصلح.
مثال بسيط: يقارن إدير Compose (مضيف واحد) بمنسِّق متى لزم تعدد الآلات.
ما ليس كذلك: مجرد ملف Compose على آلة واحدة.
رد فعل: هل أحتاج التوزيع على عدة مضيفين ؟
- النسخة المكررة
- نسخة من خدمة ما، يوزعها المنسِّق.
مثال بسيط: يتوقع إدير 3 نسخ مكررة من تطبيقه الويب على عنقوده المقبل.
ما ليس كذلك: حاوية وحيدة تُطلق باليد.
رد فعل: كم نسخة تقتضي خدمتي ؟
- التحديث المتداول
- التحديث دون توقف، نسخة بنسخة.
مثال بسيط: يحدّث إدير تطبيقه نسخة في كل مرة، والخدمة تجيب دائما.
ما ليس كذلك: إيقاف كل شيء ثم إعادة إطلاقه في وضح النهار.
رد فعل: هل يقطع تحديثي الخدمة ؟
- العقدة
- آلة عضو في العنقود (مدير أو عامل).
مثال بسيط: يحصي إدير آلاته الحقيقية قبل اختيار مقياسه.
ما ليس كذلك: حاوية معزولة.
رد فعل: كم آلة أملك حقا ؟
- المُدار
- عنقود يشغّله مزود بدلا من تشغيله باليد.
مثال بسيط: يستهدف إدير عنقودا مُدارا إذا صار كوبرنيتس (Kubernetes) ضروريا.
ما ليس كذلك: عنقود مرتجل دون فريق لتشغيله.
رد فعل: من يشغّل العنقود إذا اخترت كوبرنيتس (Kubernetes) ؟
في التطبيق — دققوا حاجتكم
- اسردوا آلاتكم وخدماتكم الحقيقية (كإدير : آلة واحدة، وتطبيق ويب).
- دوّنوا متطلباتكم : توقف مقبول ؟ تعدد مضيفين ؟ تحجيم تلقائي ؟
- ضعوا أنفسكم على سلم Compose / سرب (Swarm) / كوبرنيتس (Kubernetes).
- اكتبوا الخطوة التالية فقط إذا اقتضت الحاجة ذلك.
نص جاهز للقول — تبرير اختيار المقياس
« اليوم في الجزائر، يعمل تطبيقنا على آلة واحدة بتحديثات بسيطة : فيكفي Compose مع CI والنسخ الاحتياطي وفحوص الصحة. وإذا انتقلنا إلى عدة آلات مع حاجة إلى النسخ المكررة، أقترح سرب (Swarm) ؛ وكوبرنيتس (Kubernetes) فقط إذا اقتضت الحظيرة والفرق ذلك. نصعد درجة بحاجة مثبتة، لا بالموضة. »
يُقال للفريق لتأطير الاختيار قبل أي تغيير للأداة.
نموذج للنسخ واللصق — بطاقة اختيار المقياس
بطاقة اختيار المقياس — التاريخ : ___
الآلات الحقيقية : ___ · الخدمات : ___
المتطلبات : توقف مقبول ؟ نعم / لا · تعدد مضيفين ؟ نعم / لا · تحجيم تلقائي ؟ نعم / لا
المقياس : Compose / سرب (Swarm) / كوبرنيتس (Kubernetes) (أحيطوا)
دليل الحاجة : ___
الخطوة التالية : ___ (فقط إذا ثبتت الحاجة)
فردي / ميزانية صغيرة
إدير وحده : يكفي Compose + CI + النسخ الاحتياطي — مع تدوين درجة سرب (Swarm) احتياطا.
شركة صغيرة جدا / فريق مصغر
بطاقة تدقيق معلقة : فيرى كل واحد لماذا نبقى على Compose حاليا.
شركة صغيرة ومتوسطة في الجزائر
يضبط إدير في الجزائر مراجعة مع مرجعه : الآلات والمتطلبات والخطوة التالية مكتوبة.
فريق يبدأ
ثنائي : أحدهما يسرد الآلات، والآخر المتطلبات — قرار مشترك، مكتوب.
✓ ممارسات جيدة
- استنفدوا Compose + CI قبل الصعود درجة.
- سرب (Swarm) لتعدد المضيفين البسيط (2 إلى 5 آلات).
- كوبرنيتس (Kubernetes) مفضَّل مُدارا إذا لزم كوبرنيتس (Kubernetes).
✗ أخطاء شائعة
- الانتقال إلى كوبرنيتس (Kubernetes) « للتعلم » في الإنتاج.
- الاعتقاد بأن المنسِّق ينسخ بياناتكم احتياطيا.
- تكثير الأدوات قبل وجود الحاجات.
النقاط الأساسية
- Compose = مضيف 1، بسيط ومتين — لا يوزع ولا يصلح على عدة آلات.
- سرب (Swarm) = تعدد مضيفين بسيط (2 إلى 5 آلات)، قريب من Compose، مثالي لبدء التنسيق (orchestration).
- كوبرنيتس (Kubernetes) = حظيرة متطلبة، معيار النطاق الكبير، وتعلُّم جدي.
- نصعد بحاجة مثبتة : Compose ← سرب (Swarm) ← كوبرنيتس (Kubernetes)، أبدا بالموضة.
تحدي 48 ساعة — طبّق غدا
املؤوا بطاقة اختيار المقياس (النموذج أعلاه) لـ تطبيقكم الحقيقي : هل تبرر آلاتكم ومتطلباتكم مقياسكم ؟
- أستطيع وضع حاجتي على سلم Compose / سرب (Swarm) / كوبرنيتس (Kubernetes).
- بطاقة تدقيقي مكتوبة ومبرَّرة.
- أعرف لماذا يكلف منسِّق دون حاجة أكثر مما يعود.
أسئلة شائعة
هل سرب (Swarm) متجاوَز أمام كوبرنيتس (Kubernetes) ؟
لا : فهو مدمج في دوكر (Docker) ومُصان، ويبقى قويا على مقياسه — تعدد المضيفين البسيط (بضع آلات، ونسخ مكررة، وتحديثات دون توقف). أقل موضة من كوبرنيتس (Kubernetes)، لكنه أبسط بكثير في التعلم والتشغيل. اختاروا حسب الحاجة : سرب (Swarm) لبضع آلات، وكوبرنيتس (Kubernetes) لحظيرة بمتطلبات متقدمة.
هل يمكن البقاء على Compose في الإنتاج ؟
نعم، في كثير من الحالات (آلة أو آلتان) مع CI وفحوص الصحة ونسخ احتياطي مجرَّب ووسيط عكسي. فالتنسيق (orchestration) ليس عبورا واجبا : Compose مُجهَّز جيدا يغلب منسِّقا ضخما. ولا نصعد نحو سرب (Swarm) أو كوبرنيتس (Kubernetes) إلا على حاجة مثبتة (تعدد المضيفين، وانعدام التوقف، والتحجيم التلقائي).
تطبيق على خادم 1، وتحديثات بسيطة. ماذا تختار ؟