![ماسح بصمة الإصبع على الشاشة من سامسونج براءات الاختراع في الوقت المناسب تمامًا لهاتف Galaxy S9](/f/1b37189770324307a739756a46aabf42.jpg?width=100&height=100)
بمرور الوقت ، حيث نما الطلب على الاختبار السريع ونشر التطبيقات إلى جانب زيادة سرعة الأعمال دورات ، اضطرت المنظمات إلى الابتكار من أجل مواكبة الأعمال سريعة الخطى بيئة.
أدى السعي إلى تحديث التطبيقات وبناء تطبيقات جديدة لإنشاء تدفقات عمل رشيقة إلى مفهوم استخدام الحاويات. تقنية الحاوية قديمة قدم المحاكاة الافتراضية. ومع ذلك ، فإن الحاويات لم تثير الكثير من الإثارة حتى عامل ميناء انفجرت في المشهد في عام 2013 وأثارت اهتمامًا محمومًا بين المطورين وغيرهم من المتخصصين في تكنولوجيا المعلومات.
حاليًا ، جميع الكيانات التقنية العملاقة مثل غوغل, أمازون, مايكروسوفت، و قبعة حمراء على سبيل المثال لا الحصر قفزت على عربة.
أحد التحديات التي واجهها المطورون هو الاختلاف في بيئات الحوسبة في كل مرحلة من مراحل تطوير البرمجيات. تظهر المشكلات عندما تختلف بيئة البرنامج من مرحلة إلى أخرى.
على سبيل المثال ، يمكن تشغيل التطبيق بسلاسة في بيئة اختبار باستخدام التشغيل Python 3.6.0 تحديث. ومع ذلك ، يتصرف التطبيق بشكل غريب ، ويعيد بعض الأخطاء أو يتعطل تمامًا عند نقله إلى بيئة إنتاج قيد التشغيل بايثون 3.9.1.
جاءت الحاويات إلى مكان الحادث لمواجهة هذا التحدي والتأكد من أن التطبيقات تعمل بشكل موثوق عند نقلها من جهاز كمبيوتر واحد البيئة إلى المرحلة التالية في كل مرحلة من مراحل تطوير البرامج - بدءًا من أجهزة الكمبيوتر الشخصية للمطورين وصولاً إلى الإنتاج بيئة. وليست بيئة البرامج فقط هي التي يمكن أن تحدث مثل هذه التناقضات ، ولكن أيضًا الاختلافات فيها
طوبولوجيا الشبكة و السياسات الأمنية.أ وعاء هي وحدة برمجية معزولة تحزم جميع الشفرات الثنائية والمكتبات والملفات التنفيذية والتبعيات وملفات التكوين في حزمة واحدة بطريقة تجعل التطبيق يعمل بسلاسة عند نقله من بيئة حوسبة واحدة إلى اخر. لا يأتي مع صورة نظام التشغيل مما يجعلها خفيفة الوزن وسهلة الحمل.
صورة الحاوية عبارة عن حزمة قائمة بذاتها وخفيفة الوزن وقابلة للتنفيذ تجمع كل ما هو مطلوب لتنفيذ التطبيق. في وقت التشغيل ، تتحول صورة الحاوية إلى حاوية. في حالة عامل ميناء، على سبيل المثال ، تتحول صورة Docker إلى حاوية عامل إرساء عند تنفيذها محرك Docker. عامل ميناء هي بيئة تشغيل مستخدمة لبناء تطبيقات حاويات.
تعمل الحاويات في عزلة تامة عن نظام التشغيل الأساسي ، وستعمل التطبيقات المعبأة بالحاويات دائمًا بشكل متسق بغض النظر عن بيئة الحوسبة أو البنية التحتية. ولهذا السبب يمكن للمطور تطوير تطبيق من هذا الكمبيوتر المحمول المريح ونشره بسهولة على الخادم.
يمنح تناسق وموثوقية تشغيل الحاويات المطورين راحة البال في معرفة أن تطبيقاتهم ستعمل كما هو متوقع بغض النظر عن مكان نشرها.
الشيء الشائع الذي تشترك فيه الحاويات والأجهزة الافتراضية هو أنها تعمل في بيئة افتراضية. الحاوية ، بمعنى ما ، هي شكل من أشكال التكنولوجيا الافتراضية. ومع ذلك ، تختلف الحاويات عن الأجهزة الافتراضية بأكثر من طريقة.
يشار إلى الجهاز الظاهري أيضًا باسم مثيل افتراضي أو VM باختصار ، هو محاكاة لخادم فعلي أو كمبيوتر شخصي. المحاكاة الافتراضية هي تقنية تجعل من الممكن إنشاء أجهزة افتراضية. يعود مفهوم المحاكاة الافتراضية إلى أوائل السبعينيات ووضع الأساس للجيل الأول من تقنية السحابة.
في المحاكاة الافتراضية ، يتم إنشاء طبقة تجريد أعلى خادم أو جهاز كمبيوتر. وهذا يجعل من الممكن مشاركة موارد الأجهزة لخادم واحد عبر أجهزة افتراضية متعددة.
يشار إلى البرنامج المستخدم لإنشاء طبقة التجريد باسم برنامج Hypervisor. يقوم برنامج Hypervisor بتجريد الجهاز الظاهري ونظام التشغيل الضيف من المعدن الفعلي أو أجهزة الكمبيوتر. وبالتالي ، يوجد جهاز افتراضي أعلى برنامج Hypervisor مما يجعل موارد الأجهزة متاحة بفضل طبقة التجريد.
تقوم الأجهزة الافتراضية بتشغيل نظام تشغيل كامل (Guest OS) مستقل عن نظام التشغيل الأساسي (نظام التشغيل المضيف) الذي تم تثبيت برنامج Hypervisor عليه. يوفر نظام التشغيل الضيف بعد ذلك نظامًا أساسيًا لإنشاء التطبيقات واختبارها ونشرها جنبًا إلى جنب مع مكتباتهم وثنائياتهم.
[ قد يعجبك ايضا: كيفية تثبيت KVM على CentOS / RHEL 8 ]
هناك نوعان من برامج Hypervisors:
هذه برنامج Hypervisor تم تثبيته مباشرة على خادم فعلي أو على الأجهزة الأساسية. لا يوجد نظام تشغيل بين برنامج Hypervisor وجهاز الكمبيوتر ، ومن هنا جاء اسم العلامة المعدن برنامج Hypervisor. يوفر دعمًا ممتازًا نظرًا لعدم مشاركة الموارد مع نظام التشغيل المضيف.
نظرًا لكفاءتها ، يتم استخدام برامج Hypervisor من النوع 1 في الغالب في بيئات المؤسسات. يشمل بائعي برنامج Hypervisor من النوع 1 برنامج VMware Esxi و KVM.
يعتبر هذا أيضًا برنامج Hypervisor مستضاف. يتم تثبيته أعلى نظام التشغيل المضيف ويشارك موارد الأجهزة الأساسية مع نظام التشغيل المضيف.
تعد برامج Hypervisor من النوع 2 مثالية لبيئات الحوسبة الصغيرة وتستخدم في الغالب لاختبار أنظمة التشغيل والبحث. يشمل بائعي برنامج Hypervisor من النوع 2 برنامج Oracle VirtualBox و برنامج VMware Workstation Pro.
تميل الأجهزة الافتراضية إلى أن تكون ضخمة الحجم (يمكن أن تستهلك عدة غيغابايت) ، وبطيئة في البدء والتوقف ، وتلتهم الكثير من موارد النظام مما يؤدي إلى توقف العمل وبطء الأداء بسبب الموارد المحدودة. على هذا النحو ، تعتبر الآلة الافتراضية ضخمة ومرتبطة بتكاليف عامة عالية.
على عكس الجهاز الظاهري ، لا تتطلب الحاوية برنامج Hypervisor. توجد حاوية فوق خادم فعلي ونظام التشغيل الخاص به وتشارك نفس النواة مثل نظام التشغيل من بين أشياء أخرى مثل المكتبات والثنائيات. يمكن تشغيل عدة حاويات على نفس النظام ، كل منها يقوم بتشغيل مجموعة التطبيقات والعمليات الخاصة به من الباقي. وتشمل منصات الحاويات الشعبية عامل ميناء و بودمان.
على عكس الأجهزة الافتراضية ، تعمل الحاويات بمعزل تام عن نظام التشغيل الأساسي. الحاويات خفيفة الوزن بشكل استثنائي - فقط بضعة ميغا بايت - تشغل مساحة أقل ، وهي صديقة للموارد. من السهل بدء تشغيلها وإيقافها ويمكنها التعامل مع تطبيقات أكثر من أي جهاز افتراضي.
توفر الحاويات طريقة ملائمة لتصميم واختبار ونشر التطبيقات من جهاز الكمبيوتر الخاص بك مباشرة إلى بيئة الإنتاج ، سواء كانت في مكان العمل أو في السحابة. فيما يلي بعض فوائد استخدام التطبيقات المعبأة في حاويات.
قبل الحاويات ، كان لدينا نموذج متآلف من الطراز القديم حيث يتم تجميع تطبيق كامل يتكون من مكونات الواجهة الأمامية والخلفية في حزمة واحدة. تتيح الحاويات تقسيم التطبيق إلى عدة مكونات فردية يمكنها التواصل مع بعضها البعض.
بهذه الطريقة ، يمكن لفرق التطوير التعاون في أجزاء مختلفة من التطبيق بشرط عدم إجراء تعديلات كبيرة فيما يتعلق بكيفية تفاعل التطبيقات مع بعضها البعض.
هذا ما يقوم عليه مفهوم الخدمات المصغرة.
المزيد من الوحدات النمطية تعني إنتاجية أكثر نظرًا لأن المطورين قادرون على العمل على المكونات الفردية للتطبيق وتصحيح الأخطاء بشكل أسرع من ذي قبل.
بالمقارنة مع الأجهزة الافتراضية وبيئات الحوسبة التقليدية الأخرى ، تستخدم الحاويات موارد نظام أقل نظرًا لأنها لا تتضمن نظام تشغيل. يؤدي هذا إلى تجنب الإنفاق غير الضروري على شراء خوادم باهظة الثمن لإنشاء التطبيقات واختبارها.
نظرًا لصغر حجمها ، يمكن نشر التطبيقات المعبأة في حاويات بسهولة في بيئات / أنظمة تشغيل متعددة للحوسبة.
تسمح الحاويات بالنشر السريع وتوسيع نطاق التطبيقات. كما أنها توفر المرونة التي تشتد الحاجة إليها لنشر التطبيقات في بيئات برامج متعددة.
تلعب الحاويات دورًا رئيسيًا في DevOps وسيكون من المستحيل تخيل كيف سيكون الوضع بدون التطبيقات المعبأة في حاويات. إذن ، ما الذي تجلبه الحاويات إلى الطاولة؟
أولاً ، تدعم الحاويات بنية الخدمات المصغرة ، مما يسمح بتطوير ونشر وتوسيع نطاق اللبنات الأساسية للتطبيق بأكمله بشكل مستقل. كما ذكرنا ، يؤدي هذا إلى تعاون أكبر ونشر سريع للتطبيقات.
تلعب الحاويات أيضًا دورًا رئيسيًا في تسهيل خطوط أنابيب CI / CD من خلال توفير بيئة محكمة ومتسقة لتطبيقات البناء. يتم تجميع جميع المكتبات والتبعيات مع الكود في وحدة واحدة لنشر أسرع وأسهل. سيكون التطبيق الذي تم اختباره هو البرنامج الدقيق الذي سيتم نشره في الإنتاج.
بالإضافة إلى ذلك ، تعمل الحاويات على تحسين طرح التصحيحات والتحديثات عند تقسيم أحد التطبيقات إلى خدمات مصغرة متعددة ، كل منها في حاوية منفصلة. يمكن فحص الحاويات الفردية وتصحيحها وإعادة تشغيلها دون مقاطعة بقية التطبيق.
أي منظمة تسعى لتحقيق النضج في DevOps يجب أن تفكر في الاستفادة من قوة الحاويات لعمليات النشر المرنة والسلسة. يكمن التحدي في معرفة كيفية تكوينها وتأمينها ونشرها بسلاسة في بيئات متعددة.