فكر داخل الصندوق: حالات استخدام الحاويات وأمثلتها وتطبيقاتها

29 فبراير 2024

قراءة لمدة 5 دقائق

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

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

ما هي الحاوية؟

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

يتم ذلك من خلال شكل من أشكال المحاكاة الافتراضية لنظام التشغيل (OS) حيث يمكن الاستفادة من ميزات نواة نظام التشغيل (مثل مساحات أسماء Linux ومجموعات c، وصوامع Windows وكائنات المهام) لعزل العمليات والتحكم في مقدار وحدة المعالجة المركزية والذاكرة والقرص التي يمكن لهذه العمليات الوصول إليها.

الحاويات وبرنامج Docker

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

كشف استطلاع أجرته شركة IBM في عام 2021 أن 61% من المستجيبين أشاروا إلى أنهم استخدموا الحاويات في 50% على الأقل من التطبيقات الجديدة التي قاموا بإنشائها خلال العامين الماضيين. وذكرت مجموعة أكبر من المستجيبين (64%) أنهم يتوقعون استخدام الحاويات لما لا يقل عن 50% من التطبيقات التي سيبنونها على مدار العامين القادمين.

تتمحور الحاويات حول توزيع وحماية البيانات وتشغيل التطبيقات. لذلك، فمن المنطقي تمامًا أن تكون صناعات تكنولوجيا المعلومات هي المستخدم الرئيسي لبرمجيات الحاويات، مع احتلال الصناعات التالية المرتبة الثالثة بين المستفيدين الرئيسيين (يوجد الرابط خارج موقع ibm.com):

  1. التعلم الآلي
  2. تطوير البرمجيات
  3. الذكاء الاصطناعي (AI)

Docker وKubernetes

يهيمن كيانان في الوقت الحالي على سوق التطبيقات المعبأة في حاويات:

Docker

منصة النقل بالحاويات الأكثر استخدامًا هي Docker. تم بناء حاويات Docker في الأصل حول محرك Docker في عام 2013 وتم تشغيلها وفقًا لواجهة برمجة التطبيقات (API). Docker هي في الواقع منصة كخدمة (PaaS) وميزتها الرئيسية هي مرونتها. يمكن لـ Docker أخذ أي تطبيق والتبعيات المرتبطة به وتحويله إلى حاوية افتراضية، والتي يمكن تشغيلها بعد ذلك على أي كمبيوتر يعمل بنظام Windows أو macOS أو Linux. يستخدم النظام صور Docker، وهي قوالب للقراءة فقط تُستخدم لبناء الحاويات، وملفات Dockerfiles، وهي ملفات نصية تصاحب صور Docker وتفسرها. تتطلب صور Docker وصور الحاويات الأخرى مساحة لتشغيلها. ويُدار ذلك من خلال وقت تشغيل الحاوية — وهو حل برمجي يتفاعل مع نظام التشغيل لتوفير المساحة اللازمة لتشغيل صور الحاوية.

Kubernetes

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

في الوقت الحاضر، يُعد نظاما Docker وKubernetes أكثر الأدوات استخدامًا في التعامل مع حاويات الكمبيوتر. ووفقًا لتوقعات النقل بالحاويات الأخيرة (محتوى الرابط موجود خارج موقع ibm.com) لعام 2024، فإن أنظمة Dockers أصبحت تسيطر الآن على حصة ضخمة تبلغ 82.8% من هذه السوق، بينما تستحوذ أنظمة Kubernetes على حصة سوقية تبلغ 11.52%.

لمعرفة المزيد حول مدى ارتباط كل من منصة Kubernetes ومنصة Docker، اطلع على "مقارنة بين Kubernetes وDocker: لمَ ليس الاثنان معًا؟"

حالات استخدام الحاويات

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

  • الخدمات المصغرة: الحاويات صغيرة وخفيفة الوزن ومحمولة، وهذا يجعلها الخيار المثالي لبنيات الخدمات المصغرة ، حيث يتم إنشاء التطبيقات المنقولة في حاويات من كثير من الخدمات الأصغر المقترنة بشكل فضفاض والقابلة للنشر بشكل مستقل. يتم استخدام المشرف الافتراضي للإشراف على عمليات الخدمات المصغرة عند استخدام أكثر من جهاز افتراضي على جهاز كمبيوتر.
  • عمليات التطوير إن الجمع بين الخدمات المصغرة كبنية والحاويات كمنصة هو اقتران قوي وأساس مشترك بالنسبة إلى العديد من الفرق التي تتبنى عمليات التطوير وبيئات التطوير كطريقة تختارها للتعامل مع تطوير البرمجيات.
  • السحابة المتعددة الهجينة: نظرًا إلى إمكانية تشغيلك الحاويات باستمرار في أي مكان—عبر أجهزة الكمبيوتر المحمول والبيئات المحلية والسحابية—فإنها تمثل بنية تحتية أساسية مثالية وأساسًا لموفري الخدمات السحابية، إضافة إلى أي بيئة سحابية هجينة وأي سيناريوهات للسحابة الهجينة والسحابة المتعددة تجد فيها المؤسسات نفسها تعمل عبر مزيج يتألف من عدة سحابات عامة وسحابات خاصة إلى جانب مركز بيانات محلي.
  • عدم وجود خادم: يحرر عدم وجود خوادم مطوري السحابات الأصلية الذين يعملون على إنشاء التطبيقات من الاضطرار إلى التفكير في متطلبات الخادم وقيوده التي يتم الاحتفاظ بها في الخلفية. تتمثل الميزة الرئيسية لنهج عدم وجود خادم في أنه يعزز التركيز العقلي الضروري الذي يحتاج إليه المطور أثناء إنشاء التطبيقات، دون إغراق المطور بتفاصيل لا تعد ولا تحصى.

حالات الاستخدام والحلول ذات الصلة

الحاويات أو النقل بالحاويات أو تنسيق الحاويات من العوامل المرتبطة بالحلول التالية ذات الصلة:

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

أنواع الحاويات

هناك نوعان أساسيان من الحاويات يخدم كل منهما مجموعة مختلفة من تقنيات الحاويات:

حاويات النظام

تتيح لك حاويات النظام، المعروفة أيضًا باسم "حاويات نظام التشغيل"، تنفيذ العديد من العمليات المختلفة في وقت واحد. تُعد حاويات النظام خيارًا مثاليًا لإدارة التطبيقات التقليدية والتعامل مع التطبيقات المتجانسة المصممة لأداء وظيفة واحدة، كما تم التعبير عنها في ملف منطقي قابل للتنفيذ. وقد جُهزت هذه الحاويات أيضًا لاستضافة البنية والتكوينات والأدوات اللازمة لتشغيل الأجهزة الافتراضية. وكإجراء افتراضي، تحظر حاويات النظام أنظمة الملفات متعددة الطبقات.

تقنيات الحاويات المخدومة: BSD Jails، وLinux VServer، وLXC، وOpenVZ، وSolaris Zones

حاويات التطبيق

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

تقنيات الحاويات المخدومة: Docker، وRocket

IBM والحاويات

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

بالاستعانة بخدمات الحاويات القائمة على تقنيات مفتوحة المصدر المقدمة من IBM مثل منصة Kubernetes، يمكنك تسهيل وتسريع رحلتك نحو البيئة السحابية بطريقة سريعة وآمنة ومنتجة.

مؤلف

Phill Powell

Staff Writer