النقل بالحاويات هي عبارة عن حزمة من أكواد البرمجيات مع مكتبات نظام التشغيل (OS) والتبعيات المطلوبة لتشغيل الكود لإنشاء رمز تنفيذي واحد خفيف الوزن—يسمى حاوية—والذي يعمل باستمرار على أي بنية تحتية.
الحاويات أكثر كفاءة وقابلية للنقل في استخدام الموارد من الآلات الافتراضية (VMs)، وقد أصبحت وحدات الحوسبة الفعلية للتطبيقات السحابة الأصلية الحديثة.
يسمح النقل بالحاويات للمطورين بإنشاء التطبيقات ونشرها بشكل أسرع وأكثر أمانًا. باستخدام الطرق التقليدية، يكتب المطورون التعليمات البرمجية في بيئة حوسبة محددة، والتي عند نقلها إلى موقع جديد، غالبًا ما ينتج عنها أخطاء. على سبيل المثال، يمكن أن يحدث هذا عندما ينقل المطور التعليمات البرمجية من جهاز كمبيوتر سطح مكتب إلى جهاز افتراضي (VM) أو من نظام تشغيل Linux® إلى نظام تشغيل Windows. يعمل النقل بالحاويات على التخلص من هذه المشكلة من خلال تجميع التعليمات البرمجية للتطبيق مع ملفات التكوين والمكتبات والتبعيات ذات الصلة المطلوبة لتشغيله. هذه الحزمة البرمجية المفردة أو "الحاوية" معزولة عن نظام التشغيل المضيف. وبالتالي، فهي مستقلة وتصبح قابلة للنقل—قادرة على التشغيل عبر أي منصة أو سحابة، دون أي مشكلات.
يعود مفهوم النقل بالحاويات وعزل العمليات إلى عقود من الزمن. ومع ذلك، أدى ظهور Docker مفتوح المصدر في عام 2013—وهو معيار صناعي للحاوية بأدوات مطور بسيطة ونهج تعبئة عالمي—إلى تسريع اعتماد هذه التقنية. اليوم، تستخدم المؤسسات بشكل متزايد النقل بالحاويات لإنشاء تطبيقات جديدة وتحديث التطبيقات الحالية للسحابة.
وفقًا لتقرير من Forrester1، يقول 74% من صانعي القرار في البنية التحتية الأمريكية إن شركاتهم تعتمد الحاويات ضمن منصة كخدمة (PaaS) في بيئة سحابية عامة أو محلية.
الحاويات "خفيفة الوزن"، مما يعني أنها تشارك في نواة نظام تشغيل الجهاز ولا تتطلب عبء ربط نظام تشغيل داخل كل تطبيق. الحاويات أصغر بطبيعتها في السعة من الأجهزة الافتراضية وتتطلب وقت بدء تشغيل أقل. تسمح هذه القدرة بتشغيل المزيد من الحاويات بنفس سعة الحوسبة التي يوفرها جهاز افتراضي واحد. تؤدي هذه القدرة إلى زيادة كفاءة الخادم، وبالتالي تقليل تكاليف الخادم والتراخيص.
والأهم من ذلك، يتيح استخدام الحاويات إمكانية "كتابة التطبيقات مرة واحدة وتشغيلها في أي مكان" عبر مركز البيانات المحلي والبيئات السحابية الهجينة والسحابية المتعددة.
تعمل قابلية النقل هذه على تسريع عملية التطوير، وتمنع الاحتكار لمنتج معين وتوفر فوائد أخرى ملحوظة مثل عزل الأخطاء وسهولة الإدارة والأمان المبسّط وغير ذلك.
يقدم الفيديو التالي مزيدًا من الشرح عن النقل بالحاويات:
تتكون بنية النقل بالحاويات من أربع طبقات أساسية من العناصر.
البنية التحتية الأساسية لتكنولوجيا المعلومات هي طبقة أساسية تتضمن الموارد المادية (على سبيل المثال، الكمبيوتر المكتبي، خادم يعمل بدون نظام تشغيل).
يتم تشغيل هذه الطبقة على الجهاز المادي أو الجهاز الافتراضي. يدير نظام التشغيل موارد النظام ويوفر وقت تشغيل لمحركات الحاويات.
يُشار إليها أيضًا باسم محرك وقت التشغيل، ويوفر محرك الحاوية بيئة تنفيذ لصور الحاوية (قوالب للقراءة فقط تحتوي على تعليمات لإنشاء حاوية). تعمل محركات الحاويات أعلى نظام التشغيل المضيف وتقوم بمحاكاة الموارد للتطبيقات المعبأة في حاويات.
تتكون هذه الطبقة الأخيرة من التطبيقات البرمجية التي يتم تشغيلها في حاويات.
تقوم الحاويات بتغليف التطبيق كحزمة واحدة قابلة للتنفيذ من البرامج التي تجمع التعليمات البرمجية للتطبيق مع جميع ملفات التكوين والمكتبات والتبعيات ذات الصلة المطلوبة لتشغيله.
تكون التطبيقات المعبأة في حاويات "معزولة"، مما يعني أنها لا يتم تجميعها في نسخة من نظام التشغيل. بدلاً من ذلك، يتم تثبيت وقت تشغيل حاوية المصدر المفتوح أو محرك الحاوية (مثل محرك وقت تشغيل Docker) على نظام تشغيل المضيف ويصبح قناة للحاويات لمشاركة نظام تشغيل مع حاويات أخرى على نفس نظام الحوسبة.
يمكن مشاركة طبقات الحاوية الأخرى، مثل الثنائيات المشتركة (الحاويات) والمكتبات، بين حاويات متعددة. تعمل هذه الميزة على التخلص من النفقات الزائدة لتشغيل نظام تشغيل داخل كل تطبيق وتجعل الحاويات أصغر في السعة وأسرع في بدء التشغيل من الأجهزة الافتراضية، مما يؤدي إلى زيادة كفاءة الخادم. كما أن عزل التطبيقات كحاويات يقلل أيضًا من فرصة تأثير التعليمات البرمجية الضارة في إحدى الحاويات على الحاويات الأخرى أو غزو النظام المضيف.
كما أن التجريد من نظام التشغيل المضيف يجعل التطبيقات المعبأة في حاويات قابلة للنقل وقادرة على العمل بشكل موحد ومتسق عبر أي منصة أو سحابة. يمكن نقل الحاويات بسهولة من كمبيوتر مكتبي إلى جهاز افتراضي أو من نظام تشغيل Linux إلى نظام تشغيل Windows. ستعمل الحاويات أيضًا بشكل متسق على البنى التحتية الافتراضية أو خوادم تعمل بدون نظام تشغيل، سواء في أماكن العمل أو في مركز بيانات السحابة.
تتيح النقل بالحاويات لمطوري البرامج إنشاء التطبيقات ونشرها بشكل أسرع وأكثر أمانًا، سواء كان التطبيق تقليدي متجانس (تطبيق برمجي أحادي الطبقة) أو تطبيق معياري مبني على بنية الخدمات المصغرة . يمكن للمطورين بناء تطبيقات سحابية جديدة من الصفر كخدمات مصغرة معبأه في حاويات، حيث يتم تقسيم تطبيق معقد إلى سلسلة من الخدمات الأصغر والأكثر تخصصًا وقابلية للإدارة. ويمكنهم أيضًا إعادة تجميع التطبيقات الحالية في حاويات (أو خدمات مصغرة معبأه في حاويات) تستخدم موارد الحوسبة بكفاءة أكبر.
غالباً ما تتم مقارنة الحاويات بالأجهزة الافتراضية لأن كلتا التقنيتين تتيح كفاءات حوسبة كبيرة من خلال السماح بتشغيل أنواع متعددة من البرامج (المستندة إلى Linux أو Windows) في بيئة واحدة.
تستخدم المحاكاة الافتراضية أداة مراقب الأجهزة الافتراضية، وهي طبقة برامج موضوعة على كمبيوتر أو خادم فعلي تسمح للكمبيوتر الفعلي بفصل نظام التشغيل والتطبيقات عن أجهزته. تتيح تقنية المحاكاة الافتراضية تشغيل أنظمة تشغيل وتطبيقات برمجية متعددة في وقت واحد ومشاركة موارد جهاز كمبيوتر فعلي واحد أو جهاز مضيف (على سبيل المثال، وحدة المعالجة المركزية، والتخزين، والذاكرة). على سبيل المثال، يمكن لمجموعة تكنولوجيا المعلومات تشغيل كل من Windows و Linux أو إصدارات متعددة من نظام التشغيل، إلى جانب تطبيقات مختلفة على نفس الخادم.
يتم تجميع كل تطبيق ونظام الملفات والمكتبات والتبعيات الأخرى المرتبطة به—بما في ذلك نسخة من نظام التشغيل (OS)—معًا كجهاز افتراضي. من خلال تشغيل العديد من الأجهزة الافتراضية على جهاز مادي واحد، يمكن تحقيق وفورات كبيرة في تكاليف رأس المال والتشغيل والطاقة.
من ناحية أخرى، يستخدم النقل بالحاويات موارد الحوسبة بشكل أكثر كفاءة. تنشئ حاوية حزمة واحدة قابلة للتنفيذ من البرامج التي تجمع التعليمات البرمجية للتطبيق مع جميع تبعياته المطلوبة لتشغيله. على عكس الأجهزة الافتراضية، فإن الحاويات لا يتم تجميعها في نسخة من نظام التشغيل. وبدلاً من ذلك، يتم تثبيت محرك وقت تشغيل الحاوية على نظام تشغيل النظام المضيف، أو "host OS"، ليصبح القناة التي تتشارك من خلالها جميع الحاويات على نظام الحوسبة نفس نظام التشغيل.
الحاويات غالبًا ما تسمى "خفيفة الوزن"—فهي تشترك في نواة نظام التشغيل للجهاز ولا تتطلب تكلفة إضافية لربط نظام تشغيل داخل كل تطبيق (كما هو الحال في الجهاز الافتراضي). يمكن أيضًا مشاركة طبقات الحاويات الأخرى (الحاويات المشتركة والمكتبات) بين حاويات متعددة، مما يجعل الحاويات بطبيعتها أصغر في السعة من الأجهزة الافتراضية وأسرع في بدء التشغيل. يمكن تشغيل حاويات متعددة على نفس سعة الحوسبة مثل جهاز افتراضي واحد، مما يؤدي إلى زيادة كفاءة الخادم وتقليل تكاليف الخادم والتراخيص.
يقدم الفيديو التالي نظرة أعمق على الحاويات مقابل الأجهزة الافتراضية:
يوفر النقل بالحاويات فوائد كبيرة للمطورين وفرق التطوير، خاصةً في المجالات التالية.
الحاوية تنشئ حزمة برمجية قابلة للتنفيذ معزولة عن نظام التشغيل المضيف (غير مرتبطة به أو معتمدة عليه). وبالتالي، فهي محمولة وقادرة على العمل بشكل موحد ومتسق عبر أي منصة أو سحابة.
يؤدي تطوير الحاويات ونشرها إلى زيادة المرونة والسماح للتطبيقات بالعمل في البيئات السحابية التي تلبي احتياجات العمل على أفضل وجه.
تتميز الحاوية بأنها "خفيفة الوزن"، أي أنها تشترك في نواة نظام التشغيل (OS). لا تعمل هذه الميزة على زيادة كفاءة الخادم فحسب، بل تقلل أيضًا من تكاليف الخادم والتراخيص مع تسريع أوقات البدء، حيث لا يوجد نظام تشغيل للتشغيل.
يتم عزل كل تطبيق في حاويات ويعمل بشكل مستقل عن الآخرين. لا يؤثر فشل إحدى الحاويات على استمرار تشغيل أي حاويات أخرى. يمكن لفرق التطوير تحديد أي مشكلات فنية وتصحيحها داخل حاوية واحدة دون التسبب في أي فترة تعطل في الحاويات الأخرى. كما يمكن لمحرّك الحاوية الاستفادة من أي تقنيات عزل أمان لنظام التشغيل—مثل التحكم في الوصول إلى SELinux—لعزل الأعطال داخل الحاويات.
تشترك البرامج التي تعمل في بيئات الحاويات في نواة نظام تشغيل الجهاز، ويمكن مشاركة طبقات التطبيقات داخل الحاوية عبر الحاويات. وبالتالي، فإن الحاويات بطبيعتها أصغر في السعة من الأجهزة الافتراضية وتتطلب وقتًا أقل لبدء التشغيل، مما يسمح بتشغيل المزيد من الحاويات على نفس سعة الحوسبة التي يوفرها جهاز افتراضي واحد. تزيد هذه القدرة من تحسين الموارد وتزيد من كفاءة الخادم، مما يقلل من تكاليف الخادم والتراخيص.
يعمل النقل بالحاويات، خاصةً عند إقرانه بمنصة تنسيق الحاويات مثل Kubernetes، على أتمتة وتبسيط عملية توفير التطبيقات المعبأة في حاويات ونشرها وإدارتها.
إن عزل التطبيقات كحاويات يمنع بطبيعته غزو التعليمات البرمجية الضارة من التأثير على الحاويات الأخرى أو النظام المضيف. بالإضافة إلى ذلك، يمكن تحديد أذونات الأمان لمنع العناصر غير المرغوب فيها تلقائيًا من دخول الحاويات أو الحد من الاتصالات بالموارد غير الضرورية.
مع تزايد نمو الحلول القائمة على الحاويات، ظهرت الحاجة إلى معايير حول تقنية الحاويات ونهج تعبئة التعليمات البرمجية. برزت مبادرة الحاويات المفتوحة (OCI)2، وهي مشروع Linux الذي أنشأته Docker وقادة آخرون في هذا المجال في يونيو 2015 كوسيلة لتعزيز معايير ومواصفات مشتركة ومُبسّطة ومفتوحة حول تقنية الحاويات. ومنذ ذلك الحين، ساعدت مبادرة الحاويات المفتوحة في توسيع خيارات محركات المصدر المفتوح حتى يتمكن المستخدمون من تجنب احتكار البائعين. كما يمكن للمطورين الاستفادة من التقنيات المعتمدة من مبادرة الحاويات المفتوحة والتي تتيح لهم إنشاء تطبيقات معبأة في حاويات باستخدام مجموعة متنوعة من عمليات التطوير وتشغيلها بشكل متسق على البنية التحتية التي يختارونها.
ولإزالة أي لبس، تشير Docker أيضًا إلى Docker, Inc.3، وهي الشركة التي تطور أدوات الإنتاجية المبنية حول تقنية حاويات Docker. كما تشير أيضًا إلى مشروع Docker مفتوح المصدر4 الذي تساهم فيه شركة Docker, Inc. والعديد من المنظمات والأفراد الآخرين.
في حين أن Docker هي أكثر تقنيات محركات الحاويات شهرةً واستخدامًا، إلا أن النظام البنائي الأوسع نطاقًا قد اعتمد على الحاويات والبدائل الأخرى مثل CoreOS rkt و Mesos Containerizer و LXC Linux Container و OpenVZ و crio-d.
اليوم قد يكون لدى المؤسسة مئات أو آلاف الحاويات—وهو عدد يستحيل على الفرق إدارته يدويًا. وهنا يأتي دور تنسيق الحاويات.
تعمل منصة تنسيق الحاويات على جدولة وأتمتة الإدارة مثل نشر الحاويات، والشبكات، وموازنة التحميل، وقابلية التوسع والتوافر.
Kubernetes، الأداة الأكثر شيوعًا لتنسيق الحاويات، وهي تقنية مفتوحة المصدر (كانت مفتوحة المصدر في الأصل بواسطة Google، استنادًا إلى مشروعها الداخلي المسمى Borg) تعمل على أتمتة وظائف حاويات Linux. تعمل Kubernetes مع العديد من محركات الحاويات، مثل Docker Engine. وتعمل أيضًا مع أي نظام حاوية يتوافق مع معايير مبادرة الحاويات المفتوحة لتنسيقات صور الحاوية وأوقات التشغيل.
في حين أن Kubernetes هي المعيار الصناعي، فإن منصات تنسيق الحاويات الشهيرة الأخرى تشمل Apache Mesos و Nomad و Docker Swarm.
للتعرف على المزيد حول تنسيق الحاوية، راجع هذا الفيديو الذي يشرح كيفية عمل Kubernetes:
يعتبر النقل بالحاويات جزءًا لا يتجزأ من تحديث التطبيقات. تشير هذه العملية إلى تحويل التطبيقات القديمة إلى تطبيقات سحابية أصلية مبنية على بنية الخدمات المصغرة المصممة للاندماج في أي بيئة سحابية.
تعتبر الخدمات المصغرة نهجاً متفوقاً لتطوير التطبيقات وإدارتها مقارنةً بالنموذج المتجانس السابق الذي يجمع بين تطبيق برمجي مع واجهة المستخدم المرتبطة به وقاعدة البيانات الأساسية في وحدة واحدة على منصة ذات خادم واحد. باستخدام الخدمات المصغرة، يتم تقسيم التطبيق المعقد إلى سلسلة من الخدمات المصغرة والأكثر تخصصًا، لكل منها قاعدة بيانات خاصة بها ومنطق عمل خاص بها. تتواصل الخدمات المصغرة عبر واجهات مشتركة (مثل واجهات برمجة التطبيقات) وواجهات REST (مثل HTTP). ومن خلال استخدام الخدمات المصغرة، يمكن لفرق التطوير التركيز على تحديث مجالات محددة من التطبيق دون التأثير عليه ككل، وهو ما يؤدي إلى تسريع عملية التطوير والاختبار والنشر.
تتشابه المفاهيم الكامنة وراء الخدمات المصغرة والنقل بالحاويات. كلاهما عبارة عن ممارسات تطوير برمجيات تعمل بشكل أساسي على تحويل التطبيقات إلى مجموعات من الخدمات أو العناصر الأصغر حجماً والتي تكون قابلة للنقل وقابلة للتوسع وفعالة وسهلة الإدارة.
علاوة على ذلك، تعمل الخدمات المصغرة والنقل بالحاويات بشكل جيد عند استخدامهما معًا. توفر الحاويات تغليفًا خفيف الوزن لأي تطبيق، سواء كان تقليديًا متجانسًا أو خدمة مصغرة معيارية. ومن ثم تكتسب الخدمة المصغرة، التي تم تطويرها داخل حاوية، جميع المزايا المتأصلة في النقل بالحاويات، مثل قابلية النقل.
بشكل عام، نم دمج الحاويات والخدمات المصغرة والحوسبة السحابية ، مما أدى إلى رفع مستوى تطوير التطبيقات وتسليمها إلى مستوى جديد. تعمل هذه التقنيات على تبسيط سير عمل عمليات التطوير ودعم مسارات التكامل المستمر والتسليم المستمر (CI/CD) لتسريع تطوير البرامج. وقد ساهمت هذه الأساليب من الجيل التالي في إضفاء المرونة والكفاءة والموثوقية على دورة حياة تطوير البرمجيات، مما أدى إلى تسليم أسرع للتطبيقات المعبأة في حاويات وتحسينات للمستخدمين والسوق.
تواصل المؤسسات عملية الانتقال إلى التقنية السحابية، حيث يمكن للمستخدمين تطوير التطبيقات بسرعة وكفاءة. أصبح النقل بالحاويات حالة استخدام تجارية حاسمة للترحيل السحابي، وهي عملية نقل البيانات والتطبيقات وأعباء العمل من مركز بيانات محلي إلى بنية تحتية سحابية أو من بيئة سحابية إلى أخرى.
يعد الترحيل السحابي جزء أساسي من البيئة السحابية الهجينة للمؤسسة، والتي تجمع بين خدمات السحابة الخاصة والعامة والمحلية لإنشاء بنية تحتية واحدة مرنة وفعالة من حيث التكلفة لتكنولوجيا المعلومات تدعم وتؤتمت إدارة أحمال التشغيل عبر بيئات السحابة.
واليوم، يمكن الوصول إلى التطبيقات والبيانات المستندة إلى السحابة من أي جهاز متصل بالإنترنت، مما يسمح لأعضاء الفريق بالعمل عن بُعد وأثناء التنقل. يدير مزودو الخدمات السحابية (CSPs)—على سبيل المثال، خدمات Amazon Web Services (AWS) أو Google Cloud Services أو IBM Cloud® أو Microsoft Azure)—البنية التحتية الأساسية، مما يوفر على المؤسسات تكلفة الخوادم والمعدات الأخرى ويوفر أيضًا النسخ الاحتياطي الآلي للشبكة لمزيد من الموثوقية. تتوسع البنى التحتية السحابية حسب الطلب وتعدل ديناميكيًا موارد الحوسبة والقدرة والبنية التحتية مع تغير متطلبات التحميل. بالإضافة إلى ذلك، يعمل مزودو الخدمات السحابية على تحديث عروضهم بانتظام، مما يتيح للمستخدمين استمرار الوصول إلى أحدث التقنيات، مثل الذكاء الاصطناعي التوليدي.
يقدم العديد من مزودي الخدمات السحابية الرائدين الحاويات كخدمة (CaaS). بشكل أساسي، تعد CaaS مجموعة فرعية من البنية التحتية كخدمة (IaaS)، وتقع CaaS بين البنية التحتية كخدمة (IaaS) والمنصة كخدمة (PaaS) في مجموعة خدمات الحوسبة السحابية، مما يوفر توازنًا بين التحكم الذي توفره IaaS وبساطة PaaS.
توفر الحاويات كخدمة (CaaS) منصة قائمة على السحابة حيث يمكن للمستخدمين تبسيط عمليات المحاكاة الافتراضية القائمة على الحاويات وإدارة الحاويات. توفر الحاويات كخدمة (CaaS) أيضًا أوقات تشغيل الحاويات وطبقات التنسيق وإدارة التخزين المستمر. في عام 2022، بلغت قيمة سوق الحاويات كخدمة (CaaS) العالمية ما يقرب من 2 مليار دولار أمريكي.5
الحوسبة من دون خادم (بلا خادم) هي نموذج تطوير وتنفيذ للتطبيقات يمكّن المطورين من إنشاء التعليمات البرمجية وتشغيلها للتطبيقات من دون توفير خوادم أو بنية تحتية خلفية أو إدارتها.
في الحوسبة بدون خادم، يقوم مزود الخدمة السحابية بتخصيص موارد الجهاز عند الطلب، مع الحفاظ على الخوادم نيابةً عن عملائه. وعلى وجه التحديد، يتعامل المطور ومزود الخدمة السحابية مع توفير البنية التحتية السحابية المطلوبة لتشغيل التعليمات البرمجية وتوسيع البنية التحتية وتصغيرها عند الطلب حسب الحاجة. يلتزم المزود بنموذج تسعير الدفع حسب الاستخدام.
يمكن للحوسبة بدون خادم تحسين إنتاجية المطور من خلال تمكين الفرق من التركيز على كتابة التعليمات البرمجية، وليس إدارة البنية التحتية. في المقابل، توفر الحاويات المزيد من التحكم والمرونة، مما يساعد في إدارة التطبيقات الحالية وترحيلها إلى السحابة.
تتطلب الممارسات الأمنية للبيئات المعبأة بالحاويات إستراتيجية تشمل دورة حياة الحاوية بأكملها، بما في ذلك التطوير والاختبار والنشر.
يجب أن تعالج هذه الممارسات جميع طبقات المجموعة، بما في ذلك منصة النقل بالحاويات وصور الحاوية ومنصة التنسيق والحاويات الفردية والتطبيقات.
أولاً وقبل كل شيء، يجب أن تدور سياسات أمن الحاويات حول إطار الثقة الصفرية. يقوم هذا النموذج بالتحقق من صحة كل اتصال للمستخدم ويُصرح به، ويضمن أن التفاعل يلبي المتطلبات الشرطية لسياسات أمن المؤسسة. تعتمد استراتيجية أمن الثقة الصفرية أيضًا على مصادقة كل جهاز وتدفق شبكة واتصال بناءً على سياسات ديناميكية، وذلك باستخدام سياق من أكبر عدد ممكن من مصادر البيانات.
أصبح أمن الحاوية مصدر قلق كبير مع تزايد عدد المؤسسات المعتمدة على تقنية النقل بالحاويات، بما في ذلك منصات التنسيق، لنشر تطبيقاتها وتوسيع نطاقها. وفقًا لتقرير صادر عن Red Hat6، تعد الثغرات الأمنية والتكوينات الخاطئة من أهم المخاوف الأمنية في بيئات الحاوية و Kubernetes.
كما ذكرنا سابقا ، تتمتع التطبيقات المعبأة في حاويات بطبيعتها بمستوى من الأمان حيث يمكن تشغيلها كعمليات معزولة وتعمل بشكل مستقل عن الحاويات الأخرى. معزولة حقًا، وهذا قد يمنع أي تعليمات برمجية ضارة من التأثير على الحاويات الأخرى أو غزو النظام المضيف. ومع ذلك، غالبًا ما تتم مشاركة طبقات التطبيق داخل الحاوية عبر الحاويات. فيما يتعلق بكفاءة الموارد، هذه ميزة إضافية، ولكنها أيضًا تفتح الباب أمام التداخل والاختراقات الأمنية عبر الحاويات. يمكن قول الشيء نفسه عن نظام التشغيل المشترك حيث يمكن ربط العديد من الحاويات بنظام تشغيل المضيف نفسه. يمكن أن تؤثر التهديدات الأمنية التي يتعرض لها نظام التشغيل المشترك على جميع الحاويات المرتبطة به؛ وعلى العكس من ذلك، يمكن أن يؤدي اختراق الحاوية إلى غزو نظام التشغيل المضيف.
ولكن ماذا عن المخاطر والثغرات الأمنية المرتبطة بالحاوية نفسها؟ تتضمن استراتيجية النقل بالحاويات القوية نهج "الأمان الافتراضي"، مما يعني أن الأمان يجب أن يكون متأصلاً في المنصة وليس حلاً يتم تكوينه بشكل منفصل. وتحقيقًا لهذه الغاية، يدعم محرك الحاوية جميع خصائص العزل الافتراضية المتأصلة في نظام التشغيل الأساسي. يمكن تحديد أذونات الأمان لمنع العناصر غير المرغوب فيها تلقائيًا من دخول الحاويات أو الحد من الاتصالات بالموارد غير الضرورية.
على سبيل المثال، تساعد Linux Namespaces على توفير عرض معزول للنظام لكل حاوية؛ وهذا يشمل الشبكات ونقاط التثبيت ومعرفات العمليات ومعرفات المستخدمين والاتصالات بين العمليات وإعدادات اسم المضيف. يمكن أن تحد Namespaces من الوصول إلى أي من هذه الموارد من خلال العمليات داخل كل حاوية. عادةً، ما لا يمكن الوصول إلى الأنظمة الفرعية التي لا تحتوي على دعم Namespace من داخل الحاوية. يمكن للمسؤولين إنشاء وإدارة "قيود العزل" هذه بسهولة على كل تطبيق معبأ في حاوية من خلال واجهة مستخدم بسيطة.
بالإضافة إلى ذلك، تتوفر مجموعة واسعة من حلول أمن الحاوية لأتمتة كشف التهديدات والاستجابة لها عبر المؤسسة. تساعد هذه الأدوات في مراقبة سياسات الأمان وإنفاذها وتلبية معايير الصناعة لضمان التدفق الآمن للبيانات. على سبيل المثال، يمكن أن تساعد أدوات برامج إدارة الأمان في أتمتة مسارات التكامل المستمر والتسليم المستمر (CI/CD)، وحظر الثغرات الأمنية قبل الإنتاج والتحقيق في النشاط المشبوه من خلال الرؤية في الوقت الفعلي. يقع هذا النهج ضمن DevSecOps، وهي عملية التطبيق والتطوير التي تعمل على أتمتة تكامل ممارسات الأمان في كل مستوى من مستويات دورة حياة تطوير البرامج.
1 The State of Cloud in the US, Forrester, June 14, 2022.
3 About Docker, Docker.
4 Open Source Projects, Docker.
5 Containers as a Service Market worth USD 5.6 billion by 2027 - Exclusive Study by MarketsandMarkets, Cision, 30 November 2022.
6 State of Kubernetes Security Report, Red Hat, April 17, 2023.