يعد فهم Kubernetes مقابل Docker أحد أهم الموضوعات في السحابة الأصلية وDevOps. بينما ينتمي كل من Kubernetes وDocker بالتأكيد في محادثة معًا، فإن الحقيقة هي أنه لا ينبغي مقارنتهما ببعضهما البعض. في الواقع، لا يتنافس كل من Kubernetes وDocker معًا بشكل مباشر. وبدلاً من ذلك، اعتبرها تقنيتان يمكن أن تكمل كل منهما الآخر وتعمل بهما.
كيف تعرف أي من هذه الظروف قد تواجهك؟ للوصول إلى ذلك، من المهم أولاً فهم المناطق المحددة التي تتداخل وتباين Kubernetes وDocker.
Docker هو نظام أساسي مفتوح المصدر لحاويات التطبيقات. إذا كان المفهوم جديدًا لك، فإن الحاوية هي تنسيق تعبئة مستقل يضع كل التعليمات البرمجية والتبعيات اللازمة في تنسيق قابل للتنفيذ. لاستخدام تشبيه في العالم الحقيقي، فإن الحاوية تشبه حزمة IKEA مع جميع قطع المكتب والأقواس والمسامير (ومفتاح ربط سداسي، بالطبع) - ولكن بالإضافة إلى احتوائها على جميع القطع، فإنها تبني المكتب من أجلك عند تنفيذ الحاوية.
غالبًا ما يستخدم مطورو التطبيقات Docker نظرًا لكونه خفيف الوزن وصيغة قياسية. تتيح هذه السمات للمطورين الإنشاء والاختبار والنشر مع المرونة وقابلية التوسع.
كما أن لشركة Docker معنى آخر في مجال تكنولوجيا المعلومات - وهي شركة فعلية تُسمى Docker, Inc. تقوم الشركة بتطوير أدوات للعمل داخل النظام الأساسي. هذا الاختلاف مهم لملاحظة اسم متداخل.
إذا كان Docker عبارة عن حاوية واحدة، فإن Kubernetes هي أداة لإدارة العديد من الحاويات في وقت واحد. مثل Docker (النظام الأساسي، وليس الشركة) ، تعد Kubernetes نظامًا أساسيًا مفتوح المصدر، على الرغم من إدارتها بواسطة Cloud Native Computing Foundation كمشروع مع أكثر من 2300 مساهم. تعمل Kubernetes مثل نظام تشغيل للسحابة وتبسيط الإدارة عبر الأجهزة الظاهرية والسحابات حتى يمكن لأقسام تكنولوجيا المعلومات التعامل مع الأشياء على نطاق واسع.
ما الذي يمكن لـ Kubernetes القيام به؟ يعمل Kubernetes بشكل مشابه لأي نوع من إدارة النظام موجود على نظام محلي، تمامًا على مقياس الحاوية. تقع المخصصات والتحديثات والجداول وعمليات الحذف ومراقبة الصحة العامة في متناول يد Kubernetes. للعودة إلى تشبيه IKEA، إذا كانت الحاوية عبارة عن مكتب واحد، فإن Kubernetes يشبه مدير المرافق الذي يتيح الطلب والتوزيع والتحقق من حالة المكاتب والكراسي والأثاث المعبأ الآخر في مستودع IKEA.
أحد الأجزاء المفقودة في أي مناقشة حول Docker وKubernetes هو تعريف أوقات تشغيل الحاويات. ما وقت تشغيل الحاوية؟ باختصار، هو المحرك الذي يقوم بتشغيل الحاوية - ارجع إلى تشبيه IKEA، تعتبر أوقات تشغيل الحاوية هي إرشادات التجميع الموجودة داخل الصندوق. في بعض الحالات، يكون ذلك بسيطًا، وتتم معالجة إدارة التنفيذ في ما يعرف بوقت تشغيل الحاوية منخفضة المستوى. بالنسبة للمواقف الأكثر تعقيدًا، توفر أوقات تشغيل الحاويات عالية المستوى توجيهًا لتكامل واجهة برمجة التطبيقات (API) وتنسيقات الصور وإدارة الصور. في بعض الحالات، يمكن استخدام المصطلح بشكل تبادلي مع Docker وذلك على الرغم من توفره مرونة أكبر منه.
يقوم Kubernetes بتشغيل واجهة برمجة تطبيقات تعرف بواجهة وقت تشغيل الحاوية (CRI). وهي تصل بين كل وقت تشغيل لحاوية لتنفيذ الحزمة. ومرة أخرى، باستخدام تشبيه IKEA، فإن CRI لـ Kubernetes هو الشخص الذي يقرأ تعليمات التجميع (وقت تشغيل الحاوية) داخل الحزمة (الحاوية).
توجد أوقات تشغيل حاوية أخرى بجانب Docker. اثنان آخران شائعان هما:
Containerd: بدأت Containerd كجزء من مشروع Docker. ومع ذلك، كان الهدف هو جعل Docker أكثر مرونة ونمطية، لذلك اختار المطورون فصل الحاوية داخل المشروع الخاص بهم. تتعامل الحاوية مع احتياجات وقت تشغيل الحاوية عالية المستوى، مثل سحب الصور من السجلات وإدارة الصور والتكامل مع أوقات التشغيل ذات المستوى المنخفض لتنفيذ عملية الحاوية.
CRI-O: CRI-O هو وقت تشغيل حاوية مفتوحة المصدر بديلة لـ Docker. يقوم بتنفيذ واجهة وقت تشغيل حاوية Kubernetes لتمكين أوقات التشغيل المتوافقة مع معيار مبادرة الحاوية المفتوحة.
يستخدم كل من CRI-O وContainerd المواصفات التي يوفرها CRI، ما يجعلهما متوافقين تمامًا مع Kubernetes.
وغالبًا ما تتم مناقشة برنامج Docker مقابل Kubernetes، ولكن الحقيقة هي أن الاثنين لا يتنافسان بشكل مباشر مع بعضهما. يُظهر تشبيه IKEA المستخدم في هذه المقالة مدى ارتباطهما ولماذا يعتبران مفتاحًا لتنفيذ إدارة تكنولوجيا المعلومات الحديثة، ولكن ليس المنافسين بأي شكل من الأشكال. بدلاً من ذلك، فهي جزء من النظام البيئي الأصلي للسحابة. تعد حاويات Docker جزءًا مما يديره Kubernetes، وميزة Kubernetes هي القدرة على توسيع حجم حاويات Docker بسهولة.
وبالتالي، فالسؤال ليس "هل أختار Docker أم Kubernetes؟" وبدلاً من ذلك، يتمثل الاعتبار الرئيسي لمديري تكنولوجيا المعلومات في كيفية استخدام Kubernetes وDocker معًا من حيث الإدارة والعمليات.
تم تصميم Kubernetes وDocker للعمل معًا. على الرغم من أنه ليس من الضروري استخدام تطبيقات Kubernetes في إدارة نشر Docker، إلا أنها تزامن فعّال في الحالات التي يجب فيها إدارة مثيلات متعددة لعمليات النشر. وهذا ينطبق بشكل خاص على الحالات التي يتم فيها استخدام عمليات نشر متعددة لنفس التطبيق، وكذلك عند ضرورة القياس. إن الطبيعة المفتوحة المصدر لنظام تنسيق Kubernetes تضمن نظامًا أساسيًا مدعومًا باستمرار والذي يدير التعقيدات عبر العديد من الخوادم.
بدءًا من Kubernetes، يمكن نشر العديد من حزم Docker وإدارتها، من خلال ميزات مثل المعالجة الدفعية للتصحيحات والتحديثات ومراقبة المشكلات على نطاق واسع، وكل ذلك مع معالجة الطلبات حسب الطلب. باستخدام Kubernetes، يمكن لأقسام تكنولوجيا المعلومات:
تقدم Oracle Cloud Infrastructure عددًا من الخدمات لتسريع التطبيقات السحابية الأصلية الحديثة وإنشائها. على وجه الخصوص، تعتبر Container Engine لـ Kubernetes وسجل نظام الحاويات - التي تدير صور Docker وتحللها - أدوات قوية وحرة (متضمنة) تعمل على تبسيط الإدارة وزيادة الأداء. انظر بنفسك لتجربة Oracle Cloud مجانًا للوصول إلى Kubernetes.
وفي أعقاب إغلاق حديقة بومبي في إيطاليا في مارس 2020، طلبت أية خطط لإعادة فتحها قياس الإدارة والمراقبة لضمان التباعد الاجتماعي. تم تشكيل الخطط للسماح للسياح بالوصول إلى تطبيق MyPompeii جديد مدعوم بعدد من منتجات Oracle المحددة لتسريع حل سحابي أصلي للأجهزة المحمولة، بما في ذلك Oracle Container Engine لـ Kubernetes وOracle Container Registry.
توفر شركة Snap Vision ومقرها لندن تقنية بحث مرئية تعمل بالذكاء الاصطناعي لمساعدة المتسوقين في اكتشاف الملابس التي يحبونها. ولأن موقع COVID-19 اضطر إلى التسوق في المتاجر لإغلاقه بشكل أساسي لفترة زمنية كبيرة، فقد تم تقديم تقنية Snap Vision لبائعي التجزئة المستخدمين للمساعدة في خلق تجربة تسوق رقمية. كان التكيف يمثل تحديًا كبيرًا، على الرغم من أن Snap Vision تمكنت من استضافة بيئات بائعي التجزئة الجدد بتكلفة منخفضة بفضل Oracle Cloud Infrastructure مع Kubernetes.