حاوية (حوسبة)

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

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

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

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

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

في الآونة الأخيرة، تم اعتماد تقنية الحاويات على نطاق واسع من قبل منصات الحوسبة السحابية مثل Amazon Web Services وMicrosoft Azure وGoogle Cloud Platform و IBM Cloud .  كما سعت وزارة الدفاع الأمريكية إلى استخدام الحاويات كوسيلة لتطوير وتسريع تحديثات البرامج، مع التطبيق الأول في مقاتلة التفوق الجوي F-22 . 

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

 حاويات نظام التشغيل (OS containers)
 حاويات التطبيق (Application containers)

 القضايا الأمنية 

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

 إدارة الحاويات، التنسيق، التجميع 
يتم استخدام تنسيق الحاويات أو إدارة الحاويات في الغالب في سياق حاويات التطبيق.  تتضمن التنفيذات التي توفر مثل هذا التنسيق Kubernetes وDocker swarm .

 إدارة مجموعة الحاويات 
تحتاج مجموعات الحاويات إلى إدارة. يتضمن ذلك وظيفة إنشاء مجموعة، أو ترقية البرنامج أو إصلاحه، أو موازنة الحمل بين الحالات الموجودة، أو التوسع عن طريق بدء أو إيقاف الحالات للتكيف مع عدد المستخدمين، أو تسجيل الأنشطة ومراقبة السجلات المنتجة أو التطبيق نفسه عن طريق استعلام أجهزة الاستشعار. تتضمن التطبيقات مفتوحة المصدر لمثل هذه البرامج OKD وRancher. يقدم عدد كبير من الشركات إدارة مجموعة الحاويات كخدمة مُدارة، مثل Alibaba وAmazon وGoogle وMicrosoft .

 انظر أيضا 

 دوكر (البرمجيات)
 كوبيرنيتس
 مبادرة الحاوية المفتوحة
 الآلات الافتراضية

 قراءة إضافية 

 المقالات الصحفية







 كتب

 غابرييل ن. شينكر، هيديتو سايتو، هوي تشوان كلوي لي، كي جو كارول هسو، (2019) البدء في استخدام الحاويات: تقليل العبء التشغيلي على نظامك من خلال أتمتة وإدارة حاوياتك ، Packt Publishing ،
 جيفا س. تشيلادوراي، فينود سينغ، بيتورو راج (2014)، Learning Docker ، Packt Publishing ،

 مراجع 

تصنيف:حوسبة سحابية
تصنيف:صفحات بترجمات غير مراجعة