هذه مقالة غير مراجعة. ينبغي أن يزال هذا القالب بعد أن يراجعهامحرر؛ إذا لزم الأمر فيجب أن توسم المقالة بقوالب الصيانة المناسبة. يمكن أيضاً تقديم طلب لمراجعة المقالة في الصفحة المخصصة لذلك.(نوفمبر 2024)
الحاويات (بالإنجليزية: container) في هندسة البرمجيات هي محاكاة افتراضية على مستوى نظام التشغيل أو محاكاة افتراضية على مستوى التطبيق عبر موارد شبكة متعددة بحيث يمكن تشغيل تطبيقات البرمجيات في مساحات مستخدم معزولة تسمى الحاويات في أي بيئة سحابية أو غير سحابية، بغض النظر عن النوع أو البائع،[1] وهي توفر وسيلة لتشغيل التطبيقات بشكل مستقل ومحمول، بحيث تحتوي كل حاوية على جميع العناصر التي تحتاجها لتشغيل التطبيق، بما في ذلك ملفات النظام والمكتبات والأكواد. هذا يسمح للتطبيقات بالعمل في بيئات مختلفة دون الحاجة لإعادة التكوين، مما يقلل من مشاكل التوافق ويعزز الكفاءة.
على عكس الآلات الافتراضية (virtual machines)، التي تتطلب نظام تشغيل كامل لكل تطبيق، تستفيد الحاويات من نواة النظام الأساسي وتشاركها بين التطبيقات، مما يجعلها أخف وأسرع في التشغيل. حيث يمكن لكل حاوية أن تعمل بشكل منفصل، حتى وإن كانت التطبيقات تستخدم مكتبات أو نسخًا مختلفة من نفس الملفات.
بفضل مرونتها، تستخدم الحاويات على نطاق واسع في تطوير ونشر التطبيقات الحديثة، خاصة في البنية القائمة على الخدمات الصغيرة (microservices architecture). تُمكّن هذه التقنية المطورين من تقسيم التطبيقات الكبيرة إلى وحدات صغيرة يمكن تشغيلها وتحديثها بشكل مستقل، مما يساهم في تحسين سرعة التطوير واستقرار النظام ككل.
ومع ذلك، نظرًا لأن تعريف "الحاويات" قد يختلف بين الخبراء، ينصح مارك بروكر بالاتفاق على تعريف محدد عند مناقشة الحاويات لضمان فهم مشترك للمصطلح واستخدامه بشكل صحيح بين أفراد الفريق أو الجمهور.
الاستخدام
كل حاوية هي في الأساس بيئة حوسبة سحابية أو غير سحابية قابلة للنقل ووظيفية بالكامل تحيط بالتطبيق وتحافظ عليه مستقلاً عن البيئات الأخرى التي تعمل بالتوازي. [2] بشكل فردي، يقوم كل حاوية بمحاكاة تطبيق برمجي مختلف وتشغيل عمليات معزولة [3] عن طريق تجميع ملفات التكوين والمكتبات والتبعيات ذات الصلة. [4] ولكن بشكل جماعي، تشترك الحاويات المتعددة في نواة نظام التشغيل (OS) المشتركة. [5]
في الآونة الأخيرة، تم اعتماد تقنية الحاويات على نطاق واسع من قبل منصات الحوسبة السحابية مثل Amazon Web ServicesوMicrosoft AzureوGoogle Cloud Platform و IBM Cloud . [6] كما سعت وزارة الدفاع الأمريكية إلى استخدام الحاويات كوسيلة لتطوير وتسريع تحديثات البرامج، مع التطبيق الأول في مقاتلة التفوق الجوي F-22 . [7]
أنواع الحاويات
حاويات نظام التشغيل (OS containers)
حاويات التطبيق (Application containers)
القضايا الأمنية
بسبب نظام التشغيل المشترك، يمكن أن تؤثر التهديدات الأمنية على النظام المحفوظ في الحاويات بأكمله.
في البيئات المحفوظة في حاويات، تعمل أجهزة المسح الأمني بشكل عام على حماية نظام التشغيل، ولكن ليس حاويات التطبيق، مما يضيف نقاط ضعف غير مرغوب فيها.
إدارة الحاويات، التنسيق، التجميع
يتم استخدام تنسيق الحاويات أو إدارة الحاويات في الغالب في سياق حاويات التطبيق. [8] تتضمن التنفيذات التي توفر مثل هذا التنسيق KubernetesوDocker swarm .
إدارة مجموعة الحاويات
تحتاج مجموعات الحاويات إلى إدارة. يتضمن ذلك وظيفة إنشاء مجموعة، أو ترقية البرنامج أو إصلاحه، أو موازنة الحمل بين الحالات الموجودة، أو التوسع عن طريق بدء أو إيقاف الحالات للتكيف مع عدد المستخدمين، أو تسجيل الأنشطة ومراقبة السجلات المنتجة أو التطبيق نفسه عن طريق استعلام أجهزة الاستشعار. تتضمن التطبيقات مفتوحة المصدر لمثل هذه البرامج OKD وRancher. يقدم عدد كبير من الشركات إدارة مجموعة الحاويات كخدمة مُدارة، مثل AlibabaوAmazonوGoogleوMicrosoft .
Bentaleb، Ouafa؛ Belloum، Adam S. Z.؛ Sebaa، Abderrazak؛ El-Maouhab، Aouaouche (8 يونيو 2021). "Containerization technologies: taxonomies, applications and challenges". The Journal of Supercomputing. ج. 78: 1144–1181. DOI:10.1007/s11227-021-03914-1. S2CID:236220833.
Zhang، Xiao؛ Tang، Yu؛ Li، Hao؛ Liu، Shaotao؛ Lin، Di (2021). "Containerization Design for Autonomous and Controllable Cloud Distributed System". Communications, Signal Processing, and Systems. Lecture Notes in Electrical Engineering. ج. 654. ص. 30–38. DOI:10.1007/978-981-15-8411-4_4. ISBN:978-981-15-8410-7. S2CID:236762442.
Odun-Ayo، Isaac؛ Geteloma، Victor؛ Eweoya، Ibukun؛ Ahuja، Ravin (2019). "Virtualization, Containerization, Composition, and Orchestration of Cloud Computing Services". Computational Science and Its Applications – ICCSA 2019. Lecture Notes in Computer Science. ج. 11622. ص. 403–417. DOI:10.1007/978-3-030-24305-0_30. ISBN:978-3-030-24304-3. S2CID:195769647.
كتب
غابرييل ن. شينكر، هيديتو سايتو، هوي تشوان كلوي لي، كي جو كارول هسو، (2019) البدء في استخدام الحاويات: تقليل العبء التشغيلي على نظامك من خلال أتمتة وإدارة حاوياتك ، Packt Publishing ،(ردمك 978-1-83864-903-6)
^Hinck, Tim Maurer, Garrett; Hinck, Tim Maurer, Garrett. "Cloud Security: A Primer for Policymakers". Carnegie Endowment for International Peace (بالإنجليزية). Retrieved 2021-07-10.{{استشهاد ويب}}: صيانة الاستشهاد: أسماء متعددة: قائمة المؤلفين (link)
^December 2019, Jonas P. DeMuro 18 (18 Dec 2019). "What is container technology?". TechRadar India (بالإنجليزية). Retrieved 2021-07-10.{{استشهاد ويب}}: صيانة الاستشهاد: أسماء عددية: قائمة المؤلفين (link)