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

تاريخ النشر 9 مايو 2024
العديد من أجهزة الكمبيوتر المحمولة ذات نسيج سلس مصنوع من الورق.
By Stephanie Susnjara and Ian Smalley

تم تعريف الحاويات

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

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

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

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

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

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

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

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

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

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

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

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

خفيفة الوزن

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

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

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

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

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

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

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

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

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

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

IBM DevOps

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

تشرح Andrea Crawford مفهوم عمليات التطوير، وقيمتها، وكيفية مساهمة الممارسات والأدوات الخاصة بها في المساعدة على نقل التطبيقات عبر مسار تسليم البرمجيات بأكمله؛ بدءًا من الفكرة ووصولًا إلى الإنتاج. يتولى أبرز قادة الفكر في 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 Server (يدير جميع التفاعلات مع Kubernetes)، ومدير التحكم (يتعامل مع جميع عمليات التحكم)، ومدير وحدة التحكم السحابية (يمثل واجهة التعامل مع واجهة برمجة تطبيقات مزود الخدمة السحابية)، وما إلى ذلك.تشغّل العقد العاملة (Worker Nodes) الحاويات باستخدام بيئات تشغيل الحاويات مثل Docker. وتحتوي الحجيرات Pods، وهي أصغر وحدات النشر في العنقود، على حاوية تطبيق واحدة أو أكثر، وتشترك في الموارد مثل معلومات التخزين والشبكات

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تحديث التطبيقات وترحيلها
أعباء عمل الذكاء الاصطناعي والتعلم الآلي

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

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

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

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

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

شبكة خدمة Istio

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

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

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

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

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

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

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

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

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

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

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

المؤلفون

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

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

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

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

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

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

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

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

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

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