ما هو تنسيق الحاويات؟

تاريخ النشر 22 أكتوبر 2024
عدة صواريخ باللون الأزرق المخضر مرتبة قطريًا على خلفية خضراء فاتحة، ويلقي كل منها ظلًا ناعمًا
By Stephanie Susnjara and Ian Smalley

تعريف تنسيق الحاويات

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

يُعد Kubernetes اليوم المنصة الأكثر شيوعًا لتنسيق الحاويات، وتوفر غالبية مزوّدي الخدمات السحابية الرائدين — مثل Amazon Web Services (AWS) وGoogle Cloud Platform وIBM® Cloud وMicrosoft Azure — خدمات Kubernetes مُدارة. ومن الأدوات الأخرى لتنسيق الحاويات Docker Swarm و Apache Mesos.

لماذا تحتاج الحاويات إلى التنسيق؟

الحاويات عبارة عن عناصر خفيفة الوزن وقابلة للتنفيذ تجمع بين التعليمات البرمجية المصدرية وجميع مكتبات نظام التشغيل (OS) والاعتماديات اللازمة لتشغيل التعليمات البرمجية في أي بيئة. 

رغم أن القدرة على إنشاء الحاويات موجودة منذ عقود، إلا أنها أصبحت متاحة على نطاق واسع عام 2008 عند تضمين وظائف الحاويات داخل نواة ®Linux. واكتسبت أهمية مضاعفة بعد إطلاق منصة النقل بالحاويات Docker مفتوحة المصدر في عام 2013. (أصبحت Docker شائعة جدًا لدرجة أن مصطلحي “حاويات Docker” و”الحاويات” يُستخدمان بالتبادل.) واليوم، أصبحت الحاويات متوافقة مع العديد من أنظمة التشغيل الأخرى إلى جانب Linux، بما في ذلك Windows.

ونظرًا لكونها أصغر حجمًا، وأكثر كفاءة في استهلاك الموارد، وأكثر قابلية للنقل من الأجهزة الافتراضية (VMs)، أصبحت الحاويات — خصوصًا تلك القائمة على الخدمات المصغّرة أو الوظائف بدون خوادم — وحدة المعالجة الفعلية في تطبيقات السحابة الأصلية الحديثة.

 

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

فعلى سبيل المثال، لا يمكن تشغيل مسار للتكامل المستمر والتسليم المستمر (CI/CD) أو DevOps من دون تنسيق الحاويات، الذي يؤتمت المهام التشغيلية المرتبطة بنشر التطبيقات والخدمات المنقولة بالحاويات وتشغيلها.

في دراسة أجرتها شركة IBM، يستخدم 70% من المطورين المشمولين بالاستطلاع أدوات تنسيق الحاويات، وأفاد 70% من هؤلاء المطورين الذين يستخدمون الأدوات أنهم يستخدمون خدمة تنسيق الحاويات المُدارة عبر السحابة داخل مؤسساتهم.

كيف يعمل تنسيق الحاويات؟

تتكون بنية تنسيق الحاويات من تشغيل مجموعات حاويات عبر أجهزة وبيئات متعددة. تتضمن كل مجموعة عادة عدة عُقد – تُعرف أيضًا بمثيلات الخوادم. تقوم العُقد العاملة بتشغيل الحاويات باستخدام بيئات تشغيل الحاويات مثل Docker. تُعد عُقد التحكم المنسق الرئيسي للمجموعة. يمكن للمستخدمين إدارة ومراقبة أحمال التشغيل المعتمدة على الحاويات باستخدام أدوات مزوّدة بواجهة برمجة التطبيقات (API) وواجهات المستخدم الرسومية (GUIs).

رغم وجود فروقات في الأساليب والقدرات بين المنصات والأدوات، إلا أن تنسيق الحاويات يُنفّذ في الأساس من خلال ثلاث خطوات رئيسية (تشكّل حلقة دورية عند تضمينها في سير عمل المرن أو عمليات التطوير).

  1. التزويد
  2. عملية النشر
  3. إدارة دورة الحياة

1. التوفير (Provisioning):

تدعم معظم أدوات تنسيق الحاويات نموذج التكوين التصريحي. في هذا النموذج، يكتب المطوّر ملف تكوين (بصيغة YAML أو JSON، حسب الأداة) يُحدد فيه الحالة المطلوبة للتطبيق. تستخدم أداة التنسيق الذكاء المدمج فيها لتحقيق تلك الحالة تلقائيًا. عادةً ما يتضمن ملف التكوين ما يلي:

  • تحديد صور الحاويات التي يتكون منها التطبيق، ومواقعها (في أي سجل حاويات).
  • تهيئة الحاويات باستخدام التخزين والموارد الأخرى.
  • تحديد وتأمين اتصالات الشبكة بين الحاويات.
  • تحديد إصدار التطبيق (مثل الطرح المرحلي أو الكَناري).

2. النشر

يتم جدولة نشر الحاويات ونسخها (Replicas) إلى مضيفات محددة لضمان المرونة والتحمّل. تختار أداة التنسيق أفضل مضيف استنادًا إلى الموارد المتاحة مثل وحدة المعالجة المركزية (CPU)، والذاكرة، أو متطلبات أخرى محددة في ملف التكوين.

3. إدارة دورة الحياة

بعد نشر الحاويات، تقوم أداة التنسيق بإدارة دورة حياة التطبيق المعتمد على الحاويات، استنادًا إلى ملف تعريف الحاوية (غالبًا ما يكون ملف Dockerfile).

تشمل مهام إدارة دورة الحياة ما يلي:

  • إدارة قابلية التوسعة (تصاعديًا وتنازليًا)، وموازنة الأحمال، وتخصيص الموارد بين الحاويات.
  • ضمان التوفّر والأداء عن طريق نقل الحاويات تلقائيًا إلى مضيف آخر عند حدوث انقطاع أو نقص في موارد النظام.
  • جمع بيانات السجل وبيانات القياس عن بُعد لتتبّع صحة التطبيق وأدائه.

شاهد هذا الفيديو للتعرّف عن كثب على كيفية عمل تنسيق الحاويات.

فوائد تنسيق الحاويات

تشمل الفوائد الأساسية لتنسيق الحاويات ما يلي:

  • الأتمتة
  • المرونة
  • الاستخدام الأمثل للموارد وتحسين الأداء
  • الكفاءة من حيث التكلفة
  • السرعة والمرونة
  • تحسين الأمن
  • زيادة الإنتاجية

الأتمتة

الميزة الرئيسية لتنسيق الحاويات هي الأتمتة، التي تقلل إلى حد كبير من الجهد اليدوي وتعقيد إدارة بيئات التطبيقات المعتمدة على الحاويات على نطاق واسع.

المرونة

تعمل حلول تنسيق الحاويات على تحسين المرونة عن طريق إعادة تشغيل الحاويات أو توسيع نطاقها عند فشلها. تساعد هذه القدرة على ضمان التوفر وزيادة مدة التشغيل.

تحسين استخدام الموارد والأداء

تساعد ميزات مثل اختيار المضيف المؤتمت وتخصيص الموارد على تحسين استخدام الموارد الحاسوبية. على سبيل المثال، يمكن لأداة التنسيق ضبط ذاكرة المعالجة والتخزين بناءً على احتياجات كل حاوية، مما يمنع التخصيص المفرط ويحسّن الأداء العام.

الكفاءة من حيث التكلفة

يؤدي تنسيق الحاويات إلى إلغاء الحاجة إلى التدخل اليدوي، مما يؤدي إلى خفض التكاليف التشغيلية. كما تستهلك الحاويات موارد أقل من الأجهزة الافتراضية (VMs)، مما يُقلل الحاجة إلى البنية التحتية لتكنولوجيا المعلومات ويخفض النفقات العامة.

السرعة والمرونة

تساعد أدوات تنسيق الحاويات على تسريع تطوير التطبيقات ونشرها، مما يوفر دعماً كبيرًا للعمليات السحابية الأصلية.

تحسين الأمن

تعزّز الحاويات الأمان من خلال عزل التطبيقات عن بعضها البعض وعن النظام المضيف، مما يُقلل نطاق الهجمات. تتضمن العديد من المنصات أدوات فحص مؤتمتة للثغرات الأمنية وتؤمّن سجلات الصور، مما يُعزز مستوى الحماية.

زيادة الإنتاجية

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

IBM DevOps

ما المقصود بعمليات التطوير؟

تشرح Andrea Crawford مفهوم عمليات التطوير، وقيمتها، وكيفية مساهمة الممارسات والأدوات الخاصة بها في المساعدة على نقل التطبيقات عبر مسار تسليم البرمجيات بأكمله؛ بدءًا من الفكرة ووصولًا إلى الإنتاج. يتولى أبرز قادة الفكر في IBM هذا المنهج، ويهدف إلى مساعدة قادة الأعمال على اكتساب المعرفة اللازمة لتحديد أولويات الاستثمارات في الذكاء الاصطناعي التي يمكنها تعزيز النمو.

مزايا استخدام Kubernetes

طوّرت Google منصة Kubernetes وأطلقتها في عام 2014، لتصبح منذ ذلك الحين أحد أسرع مشاريع البرمجيات مفتوحة المصدر نموًا في التاريخ. تتولى مؤسسة Cloud Native Computing Foundation (CNCF) حاليًا الإشراف على صيانة Kubernetes. ومنذ انضمامه إلى CNCF في عام 2016، ارتفع عدد المساهمين في المشروع من 731 إلى أكثر من 8,000 مساهم.1

باستخدام أدوات النظام البنائي للحاويات الأخرى، يمكّن Kubernetes المؤسسات من بناء منصات كخدمة (PaaS) عالية الإنتاجية.يساعد نموذج الحوسبة السحابية فرق التطوير على التركيز على البرمجة والابتكار، دون الانشغال بإدارة البنية التحتية و يسهّل التعامل مع التحديات التشغيلية المرتبطة بتطوير التطبيقات السحابية الأصلية.

 

تعود مزايا Kubernetes مقارنةً بحلول التنسيق الأخرى في المقام الأول إلى وظائفه الأكثر شمولًا وتطورًا في عدة مجالات:

  • نشر الحاويات
  • عمليات الطرح
  • اكتشاف الخدمات
  • توفير مساحة التخزين
  • موازنة الأحمال وقابلية التوسع
  • الإصلاح الذاتي لضمان التوافر العالي
  • دعم وقابلية النقل عبر مزوّدي السحابة المتعددين
  • نظام بنائي مفتوح المصدر

نشر الحاويات

ينفذ Kubernetes نشر عدد معيّن من الحاويات على مضيف محدد، ويُبقيها في الحالة المطلوبة.

عمليات النشر المرحلي (Rollouts)

يعني "النشر المرحلي (Rollout)" أي تغيير يُجرى على النشر القائم.يتيح Kubernetes للمطورين بدء النشر، أو إيقافه مؤقتًا، أو استئنافه، أو التراجع عنه.

اكتشاف الخدمات

يستطيع Kubernetes كشف الحاويات تلقائيا على الإنترنت أو لحاويات أخرى باستخدام اسم نظام أسماء النطاقات (DNS) أو عنوان IP لاكتشاف الخدمات.

توفير مساحة التخزين

يمكن للمطورين إعداد منصة Kubernetes لزيادة مساحة التخزين المحلية الدائمة أو السحابية لحاوياتهم حسب الحاجة.

موازنة الأحمال وقابلية التوسع

عندما تشهد حركة البيانات المتجهة إلى حاوية ارتفاعًا مفاجئًا، يستطيع Kubernetes استخدام موازنة الأحمال والتوسع التلقائي لتوزيع حركة البيانات عبر الشبكة والمساعدة على ضمان الاستقرار والأداء. كما تعفي هذه الإمكانية المطورين من مهمة إعداد موازن أحمال.

الإصلاح الذاتي لضمان التوافر العالي

في حال فشل إحدى الحاويات، يستطيع Kubernetes إعادة تشغيلها أو استبدالها تلقائيًا. يمكنه أيضًا إزالة الحاويات إذا لم تستوفِ معايير التحقق من الصحة الخاصة بالمؤسسة.

الدعم وقابلية النقل عبر مزوّدي السحابة المتعددين

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

نظام بنائي مفتوح مصدر

يمتاز Kubernetes بامتلاكه منظومة مفتوحة المصدر غنية بالأدوات التي تعزز قدراته، خصوصًا عبر واجهة برمجة تطبيقات Kubernetes (Kubernetes API). وتشمل هذه الأدوات Knative، الذي يتيح تشغيل الحاويات في صورة أحمال تشغيل دون خوادم، وIstio، وهي شبكة خدمات مفتوحة المصدر.

ما المقصود بالحاويات كخدمة (CaaS)؟

الحاويات كخدمة (CaaS) هي خدمة مُدارة تمكّن المطورين من إدارة ونشر التطبيقات القائمة على الحاويات، مما يمنح المؤسسات حلولًا سحابية قابلة للنقل وسهلة التوسعة. بلغت القيمة السوقية العالمية لخدمة CaaS في عام 2022 حوالي ملياري دولار أمريكي.2 ويتوقّع الباحثون أن تتجاوز قيمتها 7 مليارات دولار أمريكي بحلول عام 2027، بمعدل نمو سنوي مركب (CAGR) يبلغ 30.2% خلال تلك الفترة.3

يقدم موفرو CaaS للشركات العديد من الفوائد، بما في ذلك بيئات تشغيل الحاويات، وطبقات التنسيق، وإدارة التخزين الدائم، والتكامل مع الخدمات الأخرى. توفر العديد من المزوّدات السحابية العامة الرائدة خدمات تنسيق حاويات مُدارة، ويعتمد الكثير منها على Kubernetes كتقنية أساسية.

من أبرز مزوّدي خدمات CaaS:

  • Amazon Elastic Container Service (Amazon ECS) من AWS
  • Google Kubernetes Engine (GKE) من Google Cloud
  • IBM Cloud Kubernetes Service
  • Azure Container Instances (ACI) من Microsoft Azure
  • ®Red Hat® OpenShift

تنسيق الحاويات و الذكاء الاصطناعي

يمكن لمنصات التنسيق المعتمدة على الحاويات مثل Kubernetes أتمتة أجزاء من الذكاء الاصطناعي (AI) والتعلم الآلي (ML)، مثل مهام سير عمل الصيانة التنبؤية (بما في ذلك عمليات التحقق من الصحة في الوقت الفعلي وتخطيط الموارد).

يعتمد التعلم الآلي (ML) على النماذج اللغوية الكبيرة (LLMs) لتنفيذ مهام معالجة اللغة الطبيعية (NLP) المتقدمة، مثل تصنيف النصوص، وتحليل المشاعر، والترجمة الآلية. تُسهم أدوات تنسيق الحاويات في تسريع نشر نماذج النماذج اللغوية الكبيرة (LLMs) من خلال أتمتة عمليات إدارة البنية التحتية الخاصة بمعالجة اللغة الطبيعية. كذلك، تعتمد المؤسسات على تنسيق الحاويات لتشغيل وتوسيع نطاق نماذج الذكاء الاصطناعي التوليدي، بما يضمن التوافر العالي وتحمل الأعطال.

المؤلفون

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

حلول ذات صلة
IBM® Instana® Observability

استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.

استكشف IBM Instana Observability
حلول عمليات التطوير

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

استكشف حلول عمليات التطوير
الخدمات الاستشارية ذات الصلة بالتقنيات السحابية

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

استكشِف الخدمات الاستشارية ذات الصلة بتقنيات السحابة
اتخِذ الخطوة التالية

من اكتشاف المشكلات بشكل استباقي مع IBM Instana إلى الحصول على رؤى في الوقت الفعلي عبر مجموعتك بأكملها، يمكنك الحفاظ على تشغيل التطبيقات السحابية الأصلية بشكل موثوق به.

  1. اكتشِف IBM Instana
  2. استكشف حلول عمليات التطوير
الحواشي