الحاويات (Containerization): دوكر وكوبرنيتس ولماذا يهمان عملك

كانت عبارة \"يعمل على جهازي\" نكتة متكررة يعرفها كل مطوّر. حوّلت الحاويات تلك النكتة إلى مشكلة محلولة، وجعلت نشر التطبيقات وتوسيعها أكثر قابلية للتنبؤ بشكل كبير في هذه العملية.

تطبيق يعمل تماماً على حاسوب مطوّر محمول ثم ينهار بمجرد وصوله إلى خادم هو أحد أقدم مشكلات البرمجيات وأكثرها إحباطاً — غالباً بسبب فرق دقيق في الإصدارات المثبتة أو الإعدادات أو نظام التشغيل بين الجهازين.

الحاويات: عبّئ البيئة كاملة، لا الكود وحده

تحزم الحاوية التطبيق مع كل اعتمادية وإصدار مكتبة وإعداد يحتاجه للعمل — ما يعني أنه يتصرف بشكل متطابق على حاسوب المطوّر المحمول وخادم الاختبار والإنتاج، لأنه فعلياً الحزمة نفسها تعمل في الأماكن الثلاثة بدلاً من ثلاث تثبيتات منفصلة تأمل أن تتطابق.

جعل Docker هذا عملياً على نطاق صغير

يحل Kubernetes المشكلة التي تظهر على نطاق أكبر

تشغيل حاوية واحدة بسيط. تشغيل المئات عبر خوادم متعددة — إعادة تشغيل واحدة معطلة تلقائياً، إضافة نسخ أكثر عند تصاعد الحركة، وتوجيه الطلبات إلى أي نسخة سليمة — هو ما يديره Kubernetes فعلياً، محوّلاً ما كان سيكون مكافحة حرائق يدوية مستمرة إلى نظام آلي إلى حد كبير يُصلح نفسه.

الخلاصة

تحل الحاويات مشكلة "يعمل على جهازي" على مستوى التطبيق الفردي؛ يحل Kubernetes مشكلة "والآن أبقِ المئات من هذه تعمل بموثوقية" على مستوى البنية التحتية — وعادة لا تحتاج شركة نامية الثانية إلا بعد أن تبدأ الأولى بالضغط عليها فعلياً.