ما هي حاويات Linux؟

نتطرق اليوم إلى أحد المصطلحات المتقدمة ذات العلاقة بنظام لينكس، ألا وهي الحاويات (Containers)، فما هي حاويات لينكس (Linux Containers) وإلامَ يشير هذا المصطلح؟

حاويات Linux

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

في الماضي كنّا نضطر إلى استخدام سيرفر لكل تطبيق، بمعنى لو كان لدينا 10 تطبيقات سوف نضطر لاستعمال 10 سيرفرات لاحتوائهم، هذا اﻷمر كان جنونيًا ومُهدرًا للموارد وكثير التكلفة، مما قادنا إلى اكتشاف اﻵﻻت الافتراضية (Virtual Machines\Hyper-visor) لتخزين عدّة تطبيقات على سيرفر واحد بصورة وهمية، ومع أن اﻵلات الافتراضية قدّمت حلًا عظيمًا جدًا إلا أنه لم يكن اﻷمثل، لذلك بزغ مفهوم جديد إلى النور وهو “الحاويات” والتي تُعتبر هي اﻷفضل واﻷكثر خِفة واﻷمثل في استغلال الموارد.

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

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

لماذا هنالك اهتمام كبير بالحاويات؟

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

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

إدارة الحاويات

إن تبنّيك لتقنية الحاويات ربما قد لا يُحدث تحولًا هائلًا في مؤسستك ما لم تقم بالتحكم بكيفية إدارة ونشر الحاويات؛ إن واحدًا من أشهر أنظمة التشغيل ﻹدارة وتنظيم حاويات Linux هو نظام Kubernetes.

Kubernetes عبارة عن نظام مفتوح المصدر ﻹدارة مجموعات من الحاويات فهو يوفّر أدوات لنشر التطبيقات والتحكم بالوحدات وإدارة التغييرات ويساعدك على تحسين استخدام الـ hardware الذي تتواجد عليه حاوياتك، ولقد صُمم ليكون قابلًا للتخصيص والتوسع وهو يسمح لمكونات التطبيق والوحدات بإعادة تشغيل نفسها والتنقل عبر الأنظمة عند الحاجة.

يمكنك أيضًا استخدام أدوات اﻷتمتة مثل Ansible وكذلك برمجيات “منصة العمل كخدمة PaaS” (للاستزادة) مثل OpenShift؛ إن هذه اﻷدوات تضيف المزيد من اﻹمكانيات لجعل إدارة الحاويات أسهل.

تريد تعلّم دوكر؟ إليك هذه الدورة بالعربية.

[opensource]

مشاركة