تُعَد Kubernetes (تُعرَف أحيانًا باسم K8s) منصة مفتوحة المصدر لتنسيق الحاويات، وتعمل على جدولة التطبيقات المعبأة في حاويات (الخدمات المصغرة) وأتمتة نشرها وإدارتها وتوسيعها. تعتمد منصة Kubernetes على التحسين - فهي تؤتمت العديد من عمليات التطوير التي كانت تُدار يدويًا سابقًا، وتبسِّط عمل مطوري البرمجيات.
إذن، ما السر وراء نجاح المنصة؟ تقدِّم خدمات Kubernetes موازنة التحميل وتبسِّط إدارة الحاويات على عدة مضيفين. وتجعل من السهل على تطبيقات المؤسسة أن تكون أكثر قابلية للتوسع ومرنة وقابلة للنقل وأكثر إنتاجية.
في الواقع، تُعَد Kubernetes أسرع مشروع نموًا في تاريخ البرمجيات مفتوحة المصدر بعد Linux. وفقًا لدراسة أجرتها Cloud Native Computing Foundation (CNCF) عام 2021، نما عدد مهندسي Kubernetes بنسبة 67% ليصل إلى 3.9 ملايين بين عامَي 2020 و2021. يشكِّل هذا 31% من جميع مطوري الواجهة الخلفية، بزيادة قدرها 4 نقاط مئوية خلال عام واحد.
الاستخدام المتزايد لمنصة Kubernetes بين فِرق عمليات التطوير يعني أن الشركات تواجه منحنى تعلُّم أقل عند البدء باستخدام منصة إدارة الحاويات. لكن الفوائد لا تتوقف عند هذا الحد. إليك نظرة أكثر تفصيلًا على سبب اختيار الشركات لمنصة Kubernetes لجميع أنواع التطبيقات.
فيما يلي بعض أهم الفوائد لاستخدام Kubernetes لإدارة بنية الخدمات المصغرة الخاصة بك.
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
تجد الشركات بمختلف أنواعها وأحجامها -كبيرة وصغيرة- التي تستخدم خدمات Kubernetes أنها توفِّر في إدارة المنظومة وأتمتة العمليات اليدوية لديها. تعمل Kubernetes تلقائيًا على توفير الحاويات وتوزيعها على العُقد لضمان أفضل استخدام للموارد. بعض المنصات السحابية العامة تفرض رسوم إدارة على كل كتلة، لذا فإن تشغيل عدد أقل من الكتل يعني عددًا أقل من خوادم واجهة برمجة التطبيقات وغيرها من الموارد المكررة، ما يساهم في تقليل التكاليف.
بمجرد تكوين مجموعات Kubernetes، يمكن للتطبيقات العمل بأدنى فترة تعطُّل ممكنة وبأداء جيد، ما يقلل الحاجة إلى الدعم عند فشل عقدة أو وحدة، والتي كان يجب إصلاحها يدويًا في حالات أخرى. تعمل أداة تنسيق الحاويات في Kubernetes على جَعْل سير العمل أكثر كفاءة مع تقليل الحاجة إلى تكرار العمليات نفسها، ما يعني ليس فقط عددًا أقل من الخوادم، بل وأيضًا تقليل الحاجة إلى الإدارة الثقيلة وغير الفعَّالة.
يسهِّل تكامل الحاويات والوصول إلى موارد التخزين مع مختلف مزوِّدي السحابة عمليات التطوير والاختبار والنشر. يُعَد إنشاء صور الحاويات -التي تحتوي على كل ما يحتاجه التطبيق للتشغيل- أسهل وأكثر كفاءة من إنشاء صور الأجهزة الافتراضية (VM). وكل هذا يؤدي إلى تطوير أسرع وتحسين أوقات الإطلاق والنشر.
كلما أسرع المطورون في نشر Kubernetes خلال دورة حياة التطوير، كان ذلك أفضل، لأنهم سيتمكنون من اختبار الكود مبكرًا وتجنُّب الأخطاء المكلفة لاحقًا. تتكون التطبيقات القائمة على بنية الخدمات المصغرة من وحدات وظيفية منفصلة تتواصل مع بعضها عبر واجهات برمجة التطبيقات (APIs). وهذا يعني أن فِرق التطوير يمكن أن تكون مجموعات أصغر، يركِّز كلٌّ منها على ميزة واحدة، وأن فِرق تكنولوجيا المعلومات يمكنها العمل بكفاءة أكبر. تُعَد مساحات الأسماء -طريقة لإنشاء عدة مجموعات فرعية افتراضية داخل مجموعة Kubernetes الفعلية نفسها- وسيلة للتحكم في الوصول داخل المجموعة وتحسين الكفاءة.
كان يتم في السابق نشر التطبيق على جهاز افتراضي وتوجيه خادم نظام أسماء النطاقات (DNS) إليه. الآن، ومن بين الفوائد الأخرى لمنصة Kubernetes، يمكن أن توجد أعباء العمل في سحابة واحدة أو تنتشر بسهولة عبر عدة خدمات سحابية. تُتيح مجموعات Kubernetes ترحيل التطبيقات المعبأة في حاويات من البنية التحتية المحلية إلى النشر الهجين عبر أي سحابة عامة أو خاصة لمزوِّد الخدمة السحابية بسهولة وسرعة، دون فقدان أيٍّ من وظائف التطبيق أو أدائه. وهذا يُتيح نقل أعباء العمل إلى نظام مغلق أو مملوك دون التقيد بمزوِّد محدد. تقدِّم كلٌّ من IBM Cloud وAmazon Web Services (AWS) وGoogle Cloud Platform وMicrosoft Azure تكاملات سهلة مع التطبيقات القائمة على Kubernetes.
هناك عدة طرق لترحيل التطبيقات إلى السحابة:
يوفر استخدام الحاويات لتطبيقاتك طريقة أخف وأكثر مرونة للتعامل مع الافتراضية مقارنةً بالأجهزة الافتراضية (VMs). نظرًا لأن الحاويات تحتوي فقط على الموارد التي يحتاجها التطبيق فعليًا (مثل الكود وعمليات التثبيت والتبعيات) وتستخدم ميزات وموارد نظام التشغيل المضيف، فهي أصغر حجمًا وأسرع وأكثر قابلية للنقل. على سبيل المثال، استضافة أربعة تطبيقات على أربعة أجهزة افتراضية ستتطلب عادةً أربع نسخ من نظام التشغيل الضيف لتعمل على الخادم نفسه. أما تشغيل هذه التطبيقات الأربعة باستخدام الحاويات فيعني وضعها جميعًا في حاوية واحدة مشتركة تستفيد من نسخة واحدة من نظام التشغيل المضيف.
ليس فقط أن Kubernetes مرن بما يكفي لإدارة الحاويات على أنواع مختلفة من البنية التحتية (سحابة عامة أو سحابة خاصة أو خوادم محلية، ما دام أن نظام التشغيل المضيف نسخة من Linux أو Windows)، بل يعمل أيضًا مع أي نوع تقريبًا من برامج تشغيل الحاويات. معظم أدوات التنسيق الأخرى مرتبطة بأنواع محددة من برامج التشغيل أو البنى التحتية السحابية، ما يؤدي إلى التقيّد بمزوِّد محدد. تُتيح خدمات Kubernetes التوسع دون الحاجة إلى إعادة تصميم البنية التحتية لديك.
تعمل Kubernetes على جدولة ونشر الحاويات تلقائيًا عبر عدة عُقد حوسبية، سواء على السحابة العامة أم الأجهزة الافتراضية المحلية أو الأجهزة الفعلية في الموقع. تُتيح ميزة التوسع التلقائي للفِرق زيادة أو تقليل الموارد بسرعة لتلبية الطلب. يبدأ التوسع التلقائي بتشغيل حاويات جديدة عند الحاجة إلى التعامل مع الأحمال العالية أو الزيادات المفاجئة، سواء بسبب استخدام وحدة المعالجة المركزية أم حدود الذاكرة أم المقاييس المخصصة - مثلما يحدث عند انطلاق حدث عبر الإنترنت وزيادة مفاجئة في الطلبات.
عندما تنتهي الحاجة، تعمل Kubernetes على تخفيض الموارد تلقائياً مرة أخرى لتقليل الهدر. ولا تقتصر المنصة على توسيع موارد البنية التحتية حسب الحاجة، بل تُتيح أيضًا سهولة التوسع أفقيًا وعموديًا. من الفوائد الأخرى لمنصة Kubernetes قدرته على التراجع عن أي تغييرات في التطبيق إذا حدث خطأ ما.
تساعدك Kubernetes على تشغيل تطبيقاتك المعبأة في حاويات بشكل موثوق به. وتعمل تلقائيًا على وضع وتوزيع أعباء العمل المعبأة في حاويات وموازنة الموارد، ويعمل على توسيع الكتل حسب الحاجة إلى مواجهة الزيادة في الطلب والحفاظ على استمرارية النظام. إذا تعطَّلت عقدة واحدة في مجموعة متعددة العُقد، تتم إعادة توزيع أعباء العمل على العُقد الأخرى دون التأثير في توافر الخدمة للمستخدمين. كما توفِّر Kubernetes قدرات الشفاء الذاتي، حيث تعمل على إعادة تشغيل أو جدولة أو استبدال أي حاوية عند فشلها أو عند تعطُّل العُقد. وتُتيح لك إجراء تحديثات تدريجية لبرامجك دون أي توقف في الخدمة. يمكن إعداد التطبيقات عالية التوافر في Kubernetes على خدمة سحابة عامة واحدة أو أكثر بطريقة تضمن استمرارية تشغيل عالية جدًا. من حالات الاستخدام الجديرة بالذكر، شركة Amazon، والتي استخدمت Kubernetes للانتقال من بنية أحادية إلى بنية خدمات مصغرة.
تُعَد Kubernetes مشروعًا يقوده المجتمع وأداة مفتوحة المصدر بالكامل (وفي وقت ما، كانت أسرع البرامج مفتوحة المصدر نموًا على الإطلاق)، ما يعني وجود منظومة ضخمة من الأدوات مفتوحة المصدر المصممة للاستخدام معها. يوفر الدعم القوي للمنصة استمرار الابتكار والتحسينات في Kubernetes، ما يحمي الاستثمار في المنصة ويجنِّب التقيّد بتقنية قد تصبح قديمة قريبًا. كما تحظى بدعم وقابلية نقل عبر جميع مزوِّدي السحابة العامة الرائدين، بما في ذلك IBM وAWS وGoogle Cloud وMicrosoft Azure. من المفاهيم الخاطئة الشائعة أن خدمات Kubernetes تتنافس مباشرةً مع Docker، لكن هذا غير صحيح. تُعَد Docker أداة لإنشاء الحاويات، بينما Kubernetes هي منصة تنسيق الحاويات التي يتم استخدامها غالبًا لإدارة عدة مجموعات Docker.
تُعَد الحاويات مثالية لتحديث تطبيقاتك وتحسين البنية التحتية لتقنية المعلومات. تعتمد خدمات الحاويات من IBM Cloud على Kubernetes وأدوات أخرى في منظومة Kubernetes مفتوحة المصدر، ويمكنها تسهيل وتسريع طريقك نحو تطوير التطبيقات السحابية الأصلية، واعتماد نهج السحابة الهجينة المفتوحة الذي يدمج أفضل الميزات والوظائف من السحابة الخاصة والسحابة العامة والبنية التحتية لتكنولوجيا المعلومات في البيئات المحلية.
اتخِذ الخطوة التالية:
للبدء فورًا، سجِّل للحصول على حساب IBM Cloud.
Red Hat OpenShift on IBM Cloud هي منصة حاويات OpenShift (OCP) المُدارة بالكامل.
تنفذ حلول الحاويات أعباء عمل الحاويات وتوسع نطاقها مع ميزات الأمان والابتكار مفتوحة المصدر والنشر السريع.
أطلق العنان للقدرات الجديدة وحفِّز مرونة الأعمال من خلال خدمات الاستشارات السحابية من IBM. اكتشف كيفية المشاركة في إنشاء الحلول وتسريع التحول الرقمي وتحسين الأداء من خلال إستراتيجيات السحابة الهجينة والشراكات مع الخبراء.