ما المقصود بالحاويات؟

9 مايو 2024

المؤلفون

Ian Smalley

Senior Editorial Strategist

ما المقصود بالحاويات؟

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

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

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

وفقًا لتقرير صادر عن Business Research Insights1، بلغت قيمة سوق تقنيات الحاويات العالمية 496.4 مليون دولار أمريكي في عام 2021، ومن المتوقع أن تصل إلى 3123.42 مليون دولار أمريكي بحلول عام 2031، بمعدل نمو سنوي مركب (CAGR) قدره 19.8%.

منظر جوي للطرق السريعة

كن مطلعًا على آخر أخبار السحابة


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

الحاويات مقابل الأجهزة الافتراضية

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

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

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

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

لإلقاء نظرة أعمق على هذه المقارنة، راجع "الحاويات مقابل الأجهزة الافتراضية: ما الفرق؟" وشاهد الفيديو:

أهم فوائد الحاويات

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

خفيفة الوزن

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

محمولة ومستقلة عن المنصة

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

داعمة للتطوير والبنية الحديثة

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

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

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

وقت أسرع للوصول إلى السوق

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

في استطلاع للرأي أجرته IBM، أفاد المطورون والمسؤولون التنفيذيون في مجال تكنولوجيا المعلومات عن العديد من الفوائد الأخرى للحاويات. راجع التقرير الكامل: الحاويات في المؤسسة.

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

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

النتيجة هي صورة حاوية تعمل على منصة حاوية. تمثل صورة الحاوية البيانات الثنائية التي تغلف التطبيق وجميع تبعياته البرمجية.

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

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

لقد وُجدت الحاويات وعزل العمليات لعقود من الزمن2. حدثت لحظة تاريخية في تطوير الحاويات في عام 1979 مع تطوير chroot، وهو جزء من نظام التشغيل Unix الإصدار 7. قدم Chroot مفهوم عزل العمليات عن طريق تقييد وصول الملفات لتطبيق معين إلى دليل محدد (الجذر) وفروعه (أو العمليات الفرعية).

نُقطة تحول مهمة أخرى حدثت في عام 2008، عندما تم تطبيق حاويات Linux (LXCs) في نواة Linux®، مما أتاح محاكاة افتراضية كاملة لنسخة واحدة من Linux. على مر السنين، قدمت تقنيات مثل FreeBSD jails و AIX Workload Partitions مستوىً مشابهًا من المحاكاة الافتراضية على مستوى نظام التشغيل.

في حين لا يزال LXC بيئة تشغيل معروفة وجزءًا من توزيعات Linux والمشروع المحايد للبائعين3، تتوفر تقنيات أحدث لنواة Linux. يوفر Ubuntu، وهو نظام تشغيل Linux حديث ومفتوح المصدر، هذه القدرة أيضًا.

شاهد الفيديو للتعرف بشكل أعمق على النقل بالحاويات:

Docker وعصر الحاويات الحديث

أغلب المطورين يعتبرون عام 2013 بداية حقبة الحاويات الحديثة مع تقديم Docker. Docker عبارة عن منصة برمجيات حاويات مفتوحة المصدر تعمل كمنصة كخدمة (PaaS)، حيث تمكّن المطورين من بناء الحاويات ونشرها وتشغيلها وتحديثها وإدارتها.

يستخدم Docker نواة Linux (المكون الأساسي لنظام التشغيل) وميزات النواة (مثل Cgroups ومساحات الأسماء (namespaces)) لفصل العمليات حتى تتمكن من العمل بشكل مستقل. باستخدام Docker، يتم تحويل تطبيق وتبعياته إلى حاوية افتراضية يمكن تشغيلها على أي نظام كمبيوتر يعمل بنظام Windows أو macOS أو Linux.

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

لتوضيح أي ارتباك، فإن اسم منصة حاويات Docker تشير أيضًا إلى Docker, Inc.4، التي تطور أدوات إنتاجية مبنية حول منصتها مفتوحة المصدر للحاويات وبيئة ومجتمع Docker مفتوحي المصدر.5

في عام 2015، قامت Docker وشركات رائدة أخرى في مجال الحاويات بتأسيس مبادرة الحاويات المفتوحة6 ، وهي جزء من مؤسسة Linux، بهدف صريح هو إنشاء معايير صناعية مفتوحة لتنسيقات الحاويات وبيئات التشغيل.

تعد Docker أداة النقل بالحاويات الأكثر استخدامًا، بحصة سوقية تبلغ 82.84%7.

تنسيق الحاويات باستخدام Kubernetes

إن تشغيل مئات الآلاف من الحاويات عبر نظام ما قد يصبح غير قابل للإدارة ويتطلب حلًا لإدارة التنسيق.

وهنا يأتي دور تنسيق الحاويات ، مما يسمح للشركات بإدارة أحجام كبيرة طوال دورة حياتها، ويوفر:

  • التزويد
  • التكرار
  • مراقبة السلامة
  • تخصيص الموارد
  • التوسع وموازنة التحميل
  • التنقل بين المضيفين الفعليين

في حين توجد منصات أخرى لتنسيق الحاويات (على سبيل المثال، Apache Mesos، و Nomad، و Docker Swarm)، أصبحت Kubernetes المعيار الصناعي.

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

تمكّن Kubernetes المطورين والمشغلين من الإعلان عن الحالة المرغوبة لبيئة الحاوية الشاملة من خلال ملفات YAML. بعد ذلك، تقوم Kubernetes بجميع أعمال المعالجة لإنشاء تلك الحالة والحفاظ عليها، مع أنشطة تتضمن نشر عدد محدد من مثيلات تطبيق محدد أو أحمال تشغيل معينة، وإعادة تشغيل هذا التطبيق في حالة فشله، وموازنة التحميل، والتوسيع التلقائي، وعمليات النشر بدون فترة تعطل، وغير ذلك. كما يُعد تنسيق الحاويات باستخدام Kubernetes أمرًا بالغ الأهمية للتكامل المستمر والتسليم المستمر (CI / CD) أو مسار عمليات التطوير — والذي سيكون مستحيلًا بدون الأتمتة.

في عام 2015، تبرعت Google بمنصة Kubernetes إلى Cloud Native Computing Foundation (CNCF)8، وهي المركز مفتوح المصدر والمحايد للبائعين للحوسبة السحابية الأصلية، والذي يعمل تحت رعاية مؤسسة Linux. منذ ذلك الحين، أصبحت Kubernetes أداة تنسيق الحاويات الأكثر استخدامًا على نطاق واسع لتشغيل أحمال التشغيل المستندة إلى الحاويات في جميع أنحاء العالم. في تقرير صادر عن CNCF9، تعتبر Kubernetes ثاني أكبر مشروع مفتوح المصدر في العالم (بعد Linux) والأداة الأساسية لتنسيق الحاويات لدى 71% من شركات Fortune 100.

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

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

توفر الحاويات كخدمة (CaaS) منصة قائمة على السحابة حيث يمكن للمستخدمين تبسيط عمليات المحاكاة الافتراضية القائمة على الحاويات وإدارة الحاويات. تشمل الميزات التي يقدمها مزوّدو CaaS، وليس على سبيل الحصر: بيئات تشغيل الحاويات، وطبقات تنظيم الحاويات، وإدارة التخزين الدائم.

تتشابه الحاويات كخدمة (CaaS) مع البنية التحتية كخدمة (IaaS)، والمنصة كخدمة (PaaS)، والبرمجيات كخدمة (SaaS)، وهي متاحة من مزودي الخدمات السحابية (مثل AWS، وخدمات Google Cloud، و IBM Cloud®، و Microsoft Azure) من خلال نموذج تسعير الدفع حسب الاستخدام، والذي يسمح للمستخدمين بالدفع فقط مقابل الخدمات التي يستخدمونها.

أكاديمية الذكاء الاصطناعي

تحقيق جاهزية الذكاء الاصطناعي باستخدام التنقية السحابية الهجينة

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

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

تستخدم المؤسسات الحاويات لدعم ما يلي:

الخدمات المصغرة

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

عمليات التطوير

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

السحابة المتعددة والهجينة

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

تحديث التطبيقات وترحيلها

إحدى الطرق الأكثر شيوعًا لتحديث التطبيقات هي تحويلها إلى حاويات استعدادًا للترحيل السحابي.

أعباء عمل الذكاء الاصطناعي والتعلم الآلي

تتيح الحاويات (أي صور Docker المنسقة باستخدام Kubernetes) مسارات عمل عمليات التطوير من نشر تطبيقات الذكاء الاصطناعي (AI) والتعلم الآلي (ML) بسرعة في بيئات الحوسبة السحابية.

الذكاء الاصطناعي التوليدي

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

النظام البيئي الأوسع للحاويات: Istio و Knative

بالإضافة إلى Kubernetes، هناك اثنان من أكثر المشاريع شيوعا في النظام البنائي للحاويات هما Istio و Knative.

شبكة خدمة Istio

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

Knative والحوسبة بدون خادم

Knative (تنطق "kay-native") هي منصة مفتوحة المصدر توفر مسارًا سهلاً للحوسبة بدون خادم، وهو نموذج لتطوير وتنفيذ تطبيقات الحوسبة السحابية يمكّن المطورين من بناء وتشغيل رمز التطبيق دون توفير أو إدارة خوادم أو بنية تحتية خلفية.

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

أمن الحاويات والحوكمة

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

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

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

أفضل الممارسات الأمنية تتضمن استراتيجية الثقة الصفرية التي تفترض أن أمن الشبكة المعقدة معرض دائمًا لخطر التهديدات الخارجية والداخلية. علاوة على ذلك، تتطلب الحاويات نهج التطوير والأمن والعمليات (Devsecops) . DevSecOps هي ممارسة لتطوير التطبيقات تعمل على أتمتة دمج الممارسات الأمنية في كل مرحلة من مراحل دورة حياة تطوير البرمجيات—بدءًا من التصميم الأولي وحتى التكامل والاختبار والتسليم والنشر.

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

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

حلول ذات صلة
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud هي منصة حاويات OpenShift (OCP) المُدارة بالكامل.

استكشف Red Hat OpenShift
حلول الحاويات

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

استكشف الحاويات
خدمات الاستشارات السحابية 

أطلق العنان للقدرات الجديدة وحفِّز مرونة الأعمال من خلال خدمات الاستشارات السحابية من IBM. اكتشف كيفية المشاركة في إنشاء الحلول وتسريع التحول الرقمي وتحسين الأداء من خلال إستراتيجيات السحابة الهجينة والشراكات مع الخبراء.

الخدمات السحابية
اتخِذ الخطوة التالية

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

استكشف حلول الحاويات إنشاء حسابك المجاني على IBM Cloud