أحدث الأخبار التقنية، مدعومة برؤى خبراء
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
الحاويات هي وحدات برمجية قابلة للتنفيذ يتم فيها تجميع تعليمات برمجية للتطبيق مع مكتباته وتوابعه. إنها تسمح بتشغيل التعليمات البرمجية في أي بيئة حوسبة، سواء كانت سطح المكتب أو تكنولوجيا المعلومات التقليدية أو البنية التحتية السحابية.
تستفيد الحاويات من شكل من أشكال المحاكاة الافتراضية لنظام التشغيل (OS) حيث يمكن استخدام ميزات نواة نظام التشغيل (مثل مساحات أسماء Linux ومجموعات التحكم cgroups، و Windows silos و job objects) لعزل العمليات والتحكم في مقدار وحدة المعالجة المركزية والذاكرة والقرص التي يمكن لتلك العمليات الوصول إليها.
وتتميز الحاويات بقابلية نقل أعلى وكفاءة أكبر في استهلاك الموارد مقارنةً بالأجهزة الافتراضية (VMs)، مما جعلها وحدات الحوسبة الفعلية للتطبيقات السحابية الأصلية الحديثة. بالإضافة إلى ذلك، تعد الحاويات بالغة الأهمية للبنية التحتية لتكنولوجيا المعلومات الأساسية التي تدعم إعدادات البيئة السحابية المتعددة الهجينة—وهي مزيج من البيئات المحلية، والسحابة الخاصة، والسحابة العامة وأكثر من خدمة سحابية واحدة من أكثر من بائع سحابي.
وفقًا لتقرير صادر عن Business Research Insights1، بلغت قيمة سوق تقنيات الحاويات العالمية 496.4 مليون دولار أمريكي في عام 2021، ومن المتوقع أن تصل إلى 3123.42 مليون دولار أمريكي بحلول عام 2031، بمعدل نمو سنوي مركب (CAGR) قدره 19.8%.
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
إحدى طرق فهم الحاوية بشكل أفضل هي دراسة كيفية اختلافها عن الأجهزة الافتراضية (VM) التقليدية، وهي تمثيل افتراضي أو محاكاة لجهاز كمبيوتر مادي. غالبًا ما يُشار إلى جهاز افتراضي على أنه ضيف، بينما يُطلق على الجهاز الفعلي الذي يعمل عليه اسم المضيف.
تجعل تقنية المحاكاة الافتراضية إنشاء الأجهزة الافتراضية ممكنًا. يُخصص مراقب الأجهزة الافتراضية وهو عبارة عن طبقة برمجية صغيرة موارد الحوسبة المادية (على سبيل المثال، المعالجات والذاكرة والتخزين) لكل جهاز افتراضي. فهو يفصل كل جهاز افتراضي (VM) عن الأجهزة الافتراضية الأخرى بحيث لا تتداخل مع بعضها. يحتوي كل جهاز افتراضي بعد ذلك على نظام تشغيل ضيف ونسخة افتراضية من الأجهزة التي يتطلبها نظام التشغيل للعمل، بالإضافة إلى تطبيق ومكتباته وتوابعه المرتبطة به. كانت VMware من أوائل الشركات التي طوّرت وسوّقت تجاريًا تقنية المحاكاة الافتراضية القائمة على برامج مراقبة الأجهزة الافتراضية (Hypervisors).
بدلاً من محاكاة الأجهزة الأساسية، تعمل تقنية الحاويات على محاكاة نظام التشغيل (عادةً Linux) بحيث يحتوي كل حاوية على التطبيق ومكتباته وملفات التكوين والتبعيات الخاصة به فقط. إن غياب نظام التشغيل الضيف هو السبب وراء كون الحاويات خفيفة الوزن وهذا يجعلها أسرع وأكثر قابلية للنقل من الأجهزة الافتراضية.
لا تُعد الحاويات والأجهزة الافتراضية تقنيتين متعارضتين أو بديلتين إحداهما عن الأخرى. على سبيل المثال، قد تستفيد مؤسسة من كلتا التقنيتين عبر تشغيل الحاويات داخل الأجهزة الافتراضية لزيادة العزل والأمان والاستفادة من الأدوات المثبتة مسبقًا للأتمتة والنسخ الاحتياطي والمراقبة.
لإلقاء نظرة أعمق على هذه المقارنة، راجع "الحاويات مقابل الأجهزة الافتراضية: ما الفرق؟" وشاهد الفيديو:
تتمثل الميزة الأساسية للحاويات، خاصةً بالمقارنة مع الأجهزة الافتراضية، في أنها توفر مستوى من التجريد يجعلها خفيفة الوزن وقابلة للنقل. تشمل فوائدها الأساسية ما يلي:
تشارك الحاويات نواة نظام تشغيل الجهاز، مما يلغي الحاجة إلى نظام تشغيل كامل لكل تطبيق ويجعل ملفات الحاوية صغيرة وخفيفة على الموارد. حجم الحاوية الأصغر، خاصة مقارنةً بالجهاز الافتراضي (VM)، يعني أنها تستطيع البدء بالعمل بسرعة أكبر وتدعم بشكل أفضل تطبيقات السحابة الأصلية التي تتوسع أفقيًا.
تحمل الحاويات جميع تبعياتها معها، مما يعني أنه يمكن كتابة البرامج مرة واحدة ثم تشغيلها دون الحاجة إلى إعادة التهيئة عبر بيئات الحوسبة المختلفة (مثل أجهزة الكمبيوتر المحمولة، والبيئات السحابية، والبيئات المحلية).
نظرًا لقدرتها على النقل عند النشر واتساقها عبر المنصات، إضافةً إلى صغر حجمها، تُعد الحاويات خيارًا مثاليًا لأنماط التطوير والتطبيقات الحديثة، مثل DevOps والحوسبة عديمة الخوادم والخدمات المصغرةالتي تعتمد على عمليات نشر منتظمة للتعليمات البرمجية على دفعات صغيرة
مثل الأجهزة الافتراضية (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 حديث ومفتوح المصدر، هذه القدرة أيضًا.
شاهد الفيديو للتعرف بشكل أعمق على النقل بالحاويات:
يرجع معظم المطورين بداية عصر الحاويات الحديث إلى عام 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.
قد يصبح تشغيل مئات الآلاف من الحاويات عبر نظام ما أمرًا يصعب إدارته، مما يستلزم حلًا لإدارة التنسيق.
وهنا يأتي دور تنسيق الحاويات ، مما يسمح للشركات بإدارة أحجام كبيرة طوال دورة حياتها، ويوفر:
في حين توجد منصات أخرى لتنسيق الحاويات (على سبيل المثال، 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) مع البنية التحتية كخدمة (IaaS)، والمنصة كخدمة (PaaS)، والبرمجيات كخدمة (SaaS)، وهي متاحة من مزودي الخدمات السحابية (مثل AWS، وخدمات Google Cloud، و IBM Cloud، و Microsoft Azure) من خلال نموذج تسعير الدفع حسب الاستخدام، والذي يسمح للمستخدمين بالدفع فقط مقابل الخدمات التي يستخدمونها.
تستخدم المؤسسات الحاويات لدعم ما يلي:
الحاويات صغيرة وخفيفة الوزن، مما يجعلها مناسبة تمامًا لبنى الخدمات المصغرة، حيث تتكون التطبيقات من العديد من الخدمات الأصغر حجمًا والمترابطة بشكل ضعيف والقابلة للنشر بشكل مستقل.
يشكل الجمع بين الخدمات المصغرة (Microservices) بوصفها بنيةً معمارية والحاويات بوصفها منصةً أساسًا شائعًا للعديد من فرق التطوير والعمليات التي تتبنى منهجيات DevOps. على سبيل المثال، تدعم الحاويات مسارات عمليات التطوير، بما في ذلك تنفيذ التكامل المستمر و النشر المستمر (CI/CD).
نظرًا لقدرة الحاويات على العمل بشكل متسق في أي مكان، سواء عبر أجهزة الكمبيوتر المحمولة أو البيئات المحلية أو البيئات السحابية، فإنها تمثل بنيةً معمارية أساسية مثالية لسيناريوهات السحابة الهجينة والسحابة المتعددة، حيث تعمل المؤسسات عبر مزيج من عدة سحابات عامة إلى جانب مراكز البيانات الخاصة بها.
إحدى الطرق الأكثر شيوعًا لتحديث التطبيقات في تحويل التطبيقات إلى حاويات استعدادًا للترحيل إلى السحابة.
يتيح تحويل التطبيقات إلى حاويات (أي صور Docker التي تُنسّق باستخدام Kubernetes) لخطوط أنابيب DevOps نشر تطبيقات الذكاء الاصطناعي (AI) والتعلم الآلي (ML) بسرعة في بيئات الحوسبة السحابية.
توفر الحاويات أيضًا طريقة فعّالة لنشر وإدارة النماذج اللغوية الكبيرة (LLMs) المرتبطة بالذكاء الاصطناعي التوليدي، إذ تتيح قابلية النقل والتوسع عند استخدامها مع أدوات التنسيق. علاوةً على ذلك، يمكن تجميع التغييرات التي تُجرى على LLM بسرعة في صورة حاوية جديدة، مما يسرّع عمليات التطوير والاختبار.
بالإضافة إلى Kubernetes، هناك اثنان من أكثر المشاريع شيوعا في النظام البنائي للحاويات هما Istio و Knative.
نظرًا لأن المطورين يستخدمون الحاويات لبناء وتشغيل الخدمات المصغرة، تتجاوز شواغل الإدارة اعتبارات دورة حياة الحاويات الفردية وتنتقل إلى الطرق التي تتصل بها أعداد كبيرة من الخدمات الصغيرة—التي يشار إليها غالبًا باسم "شبكة الخدمات"—وتترابط مع بعضها البعض. يعمل Istio على تسهيل إدارة المطورين للتحديات المرتبطة بالاكتشاف، وحركة البيانات، والمراقبة، والأمان، وغير ذلك.
Knative (تُنطق "كي-نيتف") هي منصة مفتوحة المصدر توفر مسارًا سهلًا للانتقال إلى الحوسبة عديمة الخوادم، وهو نموذج لتطوير وتشغيل التطبيقات في الحوسبة السحابية يتيح للمطورين إنشاء وتشغيل تعليمات برمجية للتطبيقات دون الحاجة إلى توفير الخوادم أو البنية التحتية الخلفية أو إدارتها.
بدلاً من نشر مثيل مستمر من التعليمات البرمجية التي تظل خاملة في انتظار الطلبات، تقوم الحوسبة بدون خادم بتشغيل التعليمات البرمجية عند الحاجة، وتوسيع نطاقها أو تقليصه مع تقلبات الطلب، ثم تقوم بإيقاف التعليمات البرمجية عندما لا تكون قيد الاستخدام. تمنع الحوسبة بدون خادم إهدار سعة الحوسبة والطاقة وتقلل التكاليف لأنك تدفع فقط لتشغيل التعليمات البرمجية عند تشغيلها.
نظرًا للدور الرئيسي الذي تلعبه الحاويات في تطوير البرمجيات ونشرها عبر بيئات السحابة الهجينة، تحتاج المؤسسات إلى ضمان بقاء أعباء العمل المعبأة في حاويات آمنة من التهديدات الأمنية الخارجية والداخلية.
يمكن نشر الحاويات في أي مكان، مما يخلق مساحات هجوم جديدة تحيط بالبيئة القائمة على الحاويات. نقاط الثغرات الأمنية تشمل صور الحاويات، وسجلات الصور، وبيئات تشغيل الحاويات، ومنصات تنسيق الحاويات، وأنظمة تشغيل المضيف.
للبدء، تحتاج المؤسسات إلى دمج أمن الحاوية في سياساتها الأمنية والاستراتيجية الشاملة. يجب أن تتضمن هذه الاستراتيجيات أفضل الممارسات الأمنية إلى جانب أدوات برامج الأمان القائمة على السحابة. يجب تصميم هذا النهج الشامل لحماية التطبيقات المعبأة في الحاويات والبنية التحتية الخاصة بها طوال دورة حياة الحاوية بأكملها.
تشمل أفضل ممارسات الأمان استراتيجية انعدام الثقة التي تفترض أن أمن الشبكة المعقدة معرض دائمًا للتهديدات الخارجية والداخلية.علاوة على ذلك، تتطلب الحاويات نهج التطوير والأمن والعمليات (Devsecops). يُعد DevSecOps ممارسةً في تطوير التطبيقات تعمل على أتمتة دمج ممارسات الأمان في كل مرحلة من مراحل دورة حياة تطوير البرمجيات، بدءًا من التصميم الأولي مرورًا بالتكامل والاختبار والتسليم والنشر.
تحتاج المؤسسات أيضًا إلى الاستفادة من أدوات أمان الحاويات المناسبة للحد من المخاطر. تتضمن حلول الأمان الآلية إدارة التكوين والتحكم في الوصول والفحص بحثًا عن برنامج ضار أو هجمات إلكترونية وتقسيم الشبكة والمراقبة والمزيد.
بالإضافة إلى ذلك، تتوفر أدوات برمجية لضمان التزام أحمال التشغيل المعبأة في حاويات بمعايير الامتثال والمعايير التنظيمية مثل اللائحة العامة لحماية البيانات وقانون HIPAA، إلخ.
استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
عزّز مرونة أعمالك ونموها من خلال التحديث المستمر لتطبيقاتك على أي منصة، وذلك باستخدام خدمات الاستشارات السحابية التي نقدمها.
1 Container Technology Market Size, Share, Growth, And Industry Analysis, By Type (Docker, Rkt, CRI-O, & Others), By Application (Monitoring, Data Management, Security, & Others), Regional Insights, and Forecast From 2024 To 2031. Business Research Insights. February 2024.
2 A Brief History of Containers: From the 1970s Till Now. Aqua. January 10, 2020.
3 https://linuxcontainers.org/
4 About Docker. Docker.
4 Open Source Projects. Docker.
7 Top 5 containerization technologies in 2024. 6sense.
8 Cloud Native Computing Foundation
9 Kubernetes Project Journey Report. CNCF. June 8, 2023.