ما الفرق بين الحاويات والآلات الافتراضية؟
الحاويات والآلات الافتراضية هي تقنيات تجعل تطبيقاتك مستقلة عن موارد البنية التحتية لتكنولوجيا المعلومات لديك. والحاوية هي حزمة تعليمات برمجية تحتوي على تعليمة برمجية لأحد التطبيقات ومكتباته وتبعياته الأخرى. ويجعل التخزين إلى حاويات تطبيقاتك قابلة للنقل؛ وبالتالي يمكن تشغيل التعليمة البرمجية نفسها على أي جهاز. الآلة الافتراضية هي نسخة رقمية من جهاز مادي. ويمكن أن تكون لديك عدة آلات افتراضية لكل منها نظام تشغيل خاص بها وتعمل على نظام تشغيل المضيف نفسه. بالإضافة إلى ذلك، يمكنك إنشاء آلة افتراضية تحتوي على كل ما هو مطلوب لتشغيل تطبيقك.
أين تُستخدم الحاويات والآلات الافتراضية؟
الحاويات والآلات الافتراضية هما من تقنيات النشر. في دورة حياة تطوير البرمجيات، يُعد النشر الآلية التي تجعل التطبيق يعمل على خادم أو جهاز ما بكفاءة. يتطلب التطبيق عدة مكونات برمجية إضافية تُسمى التبعيات التي ترتبط ارتباطًا وثيقًا بنظام التشغيل الأساسي للخادم. يُطلق على جميع الطبقات البرمجية المختلفة هذه التي تتوسط بين التعليمة البرمجية للتطبيق والجهاز المادي بيئة التطبيق.
تحديات نشر البرمجيات
عادةً ما يتعين على المؤسسات نشر التطبيقات في بيئات متعددة - على سبيل المثال، التطوير في بيئة Linux والاختبار على Windows - قبل إصدار ميزات جديدة. يمكن أن يؤدي نقل التطبيق بين البيئات إلى حدوث أخطاء ومشكلات تقنية، ما يؤدي إلى انخفاض الإنتاجية بسبب التبعيات المفقودة. في الوقت نفسه، فإن إنشاء التطبيق واختباره في بيئة واحدة فقط يقلل من فائدته. إليك بعض الأمثلة:
- قد تحتاج إلى تطوير إصدارات مختلفة للمستخدمين الذين لديهم أجهزة تعمل بأنظمة تشغيل مختلفة
- يجب على مسؤولي النظام لديك تحديث جميع البيئات وصيانتها بشكل أكثر اتساقًا، ما يؤدي إلى زيادة تكاليف التطوير
- قد تواجه صعوبة في نقل تطبيقاتك من مراكز البيانات المحلية إلى السحابة أو بين بيئات السحابة المختلفة
الغرض من الآلات الافتراضية
في الماضي، طُورت تقنية الآلة الافتراضية لاستخدام قوة المعالجة وسعة الأجهزة المادية المتزايدة بكفاءة. فإن موارد الأجهزة لا تُستغل على النحو الأمثل عند تشغيل بيئة أحادية التطبيق على خادم مادي واحد. تتيح الآلات الافتراضية للمؤسسات تثبيت أنظمة تشغيل متعددة وإنشاء بيئات متعددة على الجهاز المادي نفسه.
الغرض من الحاويات
أُنشأت الحاويات لوضع التطبيقات في حزم وتشغيلها بطريقة يمكن التنبؤ بها وقابلة للتكرار عبر بيئات متعددة. وبدلاً من إعادة إنشاء البيئة، فإنك تضع التطبيق في حزمة لتشغيله على جميع أنواع البيئات المادية أو الافتراضية. الأمر مشابه لارتداء رائد الفضاء بدلة فضائية بدلاً من إعادة تشكيل الغلاف الجوي للأرض من أجله على كوكب آخر.
أوجه التشابه بين الحاويات والآلات الافتراضية
تسمح الحاويات والآلات الافتراضية بالعزل الكامل للتطبيقات حتى يمكنك تشغيلها في بيئات متعددة. فإنها تضفي طابعًا افتراضيًا أو تجرد البنية التحتية الأساسية، حتى لا يقلق المستخدمون بشأن ذلك الأمر. وهي تسمح لك أيضًا بوضع البنية التحتية لبرمجياتك في حزم داخل ملف واحد يُسمى ملف صورة. يمكنك استخدام ملف الصورة لإعداد التطبيق سريعًا وتشغيله في أي مكان. بالإضافة إلى ذلك، يمكنك أيضًا استخدام العمليات البرمجية لإدارة تكوينات النظام أو التوسّع لإدارة آلاف التطبيقات في وقت واحد. ومع ذلك، يختلف دور ومدى استخدام الحاويات والآلات الافتراضية حسب مكان نشر التطبيق وكيفية نشره.
الاختلافات الرئيسية: مقارنة بين الحاويات والأجهزة الافتراضية
تنشئ الحاويات محاكاة افتراضية لنظام التشغيل بحيث يمكن تشغيل التطبيق بشكل مستقل على أي منصة. تتجاوز الآلات الافتراضية ذلك لتحويل الأجهزة المادية إلى آلات افتراضية، حتى تتمكن من استخدام موارد أجهزتك بكفاءة. ونقدم فيما يلي بعض الاختلافات.
آلية عملها
تتضمن تقنية الحاوية إنشاء حزم برمجية مكتفية ذاتيًا تؤدي المهام باستمرار، بغض النظر عن الأجهزة التي تعمل عليها. وينشئ مطورو البرامج وينشرون صور الحاوية، الملفات التي تحتوي على المعلومات الضرورية لتشغيل التطبيق. صور الحاوية للقراءة فقط ولا يمكن تغييرها بواسطة نظام الكمبيوتر.
تنطوي تقنية الآلة الافتراضية على تثبيت برنامج محاكاة افتراضية على جهاز كمبيوتر أو خادم مادي. يُسمى جهاز الكمبيوتر المادي بالكمبيوتر المضيف، والآلة الافتراضية بالجهاز الضيف. يمكنك أيضًا تكوين أنظمة تشغيل الجهاز الضيف وتحديثها حسب الضرورة بدون التأثير في نظام تشغيل الجهاز المضيف.
التقنية الأساسية
تستخدم الآلات الافتراضية الأدوات المُراقِبة للآلات الافتراضية (Hypervisor) التي تتواصل بين نظام التشغيل في جهاز الضيف ونظام التشغيل في جهاز المضيف. ينسِّق مراقب الآلات الافتراضية مشاركة الموارد، بحيث تعمل الآلة الافتراضية في عزلة إلى جانب العديد من الأجهزة الأخرى على الجهاز نفسه.
ومن ناحية أخرى، تستخدم الحاويات محرك حاوية أو وقت تشغيل حاوية. وهو برنامج يعمل كعامل وسيط بين الحاويات ونظام التشغيل، ويوفر موارد النظام التي يحتاج إليها التطبيق ويديرها. يُعد Docker محرك الحاويات مفتوح المصدر الأكثر شهرة.
الحجم
تكون ملفات صور الآلة الافتراضية كبيرة الحجم (عدة جيجابايت) لأنها تحتوي على نظام التشغيل الخاص بها. تعني زيادة الموارد أنه يمكنك مضاعفة الخوادم وقواعد البيانات وأجهزة سطح المكتب والشبكات بأكملها وتقسيمها وتجريدها ومحاكاتها. تتصف ملفات الحاويات بأنها أقل حجمًا، ويمكنك قياسها بالميجابايت. لا تضع الحاويات الموارد في حزم إلا تلك المطلوبة لتشغيل تطبيق واحد.
متى تستخدم الحاويات مقابل الأجهزة الافتراضية
نقدم هنا بعض العوامل التي يجب مراعاتها عند الاختيار بين الآلات الافتراضية والحاويات لنشر تطبيق ما.
تكوين البيئة
تتيح الآلات الافتراضية للمطورين إمكانية تحكم أكبر في بيئة التطبيق. يمكنها تثبيت برمجيات النظام يدويًا وإجراء نُسخ احتياطية فورية لحالات التكوين واستعادتها إلى حالة سابقة، إذا لزم الأمر. وهي مفيدة لابتكار الأفكار وإجراء التجارب أو لاختبار بيئات مختلفة من أجل تحسين أداء التطبيق.
توفر الحاويات تعريفات ثابتة للتكوينات بعد تحديد الأفضل بينها.
سرعة تطوير البرمجيات
الآلات الافتراضية هي أنظمة متكاملة ويمكن أن تتطلب مجهودًا كبيرًا في الإنشاء والتجديد. تستغرق أي تعديلات وقتًا طويلاً للتحقق من صحتها حيث يتعين عليك تجديد البيئة.
تُعد الحاويات خيارًا أفضل إذا كنت ترغب في إنشاء ميزات جديدة واختبارها وإصدارها بانتظام. ونظرًا إلى أنها لا تتضمن إلا برمجيات عالية المستوى، فهي سريعة جدًا في التعديل والتكرار.
قابلية التوسع
تَشغَّل الآلات الافتراضية مساحة تخزين أكبر، وتتطلب منك توفير المزيد من الأجهزة في مراكز البيانات المحلية لديك. يؤدي التبديل إلى مثيلات السحابة إلى تقليل التكاليف، ولكن ترحيل البيئة بأكملها يأتي بتحدياته الخاصة.
تَشغَّل الحاويات مساحة أقل، ويسهل تحجيمها. والأهم من ذلك، توفر الحاويات تحكمًا دقيقًا في قابلية تحجيم التطبيق من خلال السماح لك باستخدام الخدمات المصغّرة. تُعد الخدمات المصغّرة نهجًا تصميميًا ومؤسسيًا لتطوير البرمجيات التي يكون فيها البرنامج مكونًا من خدمات مستقلة صغيرة تتواصل عبر واجهات برمجة تطبيقات (API) معرّفة جيدًا. تتيح لك الحاويات تحجيم الخدمات المصغّرة الفردية حسب الحاجة.
ملخص الاختلافات: مقارنة بين الحاوية والأجهزة الافتراضية
السمات |
الحاوية |
الآلة الافتراضية |
التعريف |
تحتوي حزمة التعليمات البرمجية على التعليمة البرمجية لأحد التطبيقات ومكتباته وتبعياته الأخرى التي تشكّل بيئة تشغيل التطبيق. |
هي نسخة رقمية طبق الأصل من الآلة المادية. تقسِّم الأجهزة المادية إلى بيئات متعددة. |
المحاكاة الافتراضية |
تحاكي نظام التشغيل افتراضيًا. |
تحاكي البنية التحتية المادية الأساسية افتراضيًا. |
التغليف |
طبقة برمجية فوق نظام التشغيل المطلوب لتشغيل التطبيق أو مكون التطبيق. |
نظام التشغيل، وجميع الطبقات البرمجية فوقه، والتطبيقات المتعددة. |
التكنولوجيا |
ينسّق محرك الحاوية مع نظام التشغيل الأساسي فيما يتعلق بالموارد. |
ينسِّق مراقب الآلات الافتراضية مع الجهاز أو نظام التشغيل الأساسي. |
الحجم |
أقل حجمًا (يمكن القول إنه بالميجابايت). |
أكبر حجمًا بكثير (يمكن القول إنه بالجيجابايت). |
التحكم |
إمكانية تحكم أقل في البيئة خارج الحاوية. |
إمكانية تحكم أكبر في البيئة بأكملها. |
المرونة |
مرونة أكبر. يمكنك الترحيل بسرعة بين البيئات المحلية والقائمة على السحابة. |
مرونة أقل. توجد تحديات تواجه عملية الترحيل. |
قابلية التوسع |
قابلية تحجيم عالية. قابلية التحجيم الدقيقة ممكنة مع الخدمات المصغّرة. |
يمكن أن يكون التحجيم مكلفًا. يتطلب التبديل من المثيلات المحلية إلى مثيلات السحابة للحصول على تحجيم فعّال من حيث التكلفة. |
التعرُّف على المزيد حول الحاويات | التعرُّف على المزيد حول الآلات الافتراضية |
كيف يمكن أن تساعدك AWS بخصوص الحاويات والآلات الافتراضية؟
تمتلك AWS العديد من الخدمات لدعم جميع احتياجات نشر التطبيقات. إليك بعض الأمثلة:
- AWS App2Container هي أداة تخزين في الحاوية تسمح لمطوري البرمجيات بتحديث التطبيقات القديمة. يستخدم المطورون AWS App2Container لتحويل تطبيقات Java و.NET إلى تطبيقات مخزّنة في حاوية.
- سجل الحاويات المرن من Amazon (Amazon ECR) هو مستودع حاويات خاص آمن يتسم بتوافر عالٍ يُسهل تخزين صور حاويات Docker وإدارتها.
- خدمة الحاويات المرنة من Amazon (Amazon ECS) هي خدمة تنسيق حاويات عالية الأداء وذات قابلية تحجيم عالية لتشغيل حاويات Docker على سحابة AWS.
- تتيح لك سحابة الحوسبة المرنة لـ Amazon (Amazon EC2) تحكمًا دقيقًا في مثيلات السحابة واختيار المعالجات، والسعة التخزينية، والشبكات التي تريدها.
- AWS Fargate هي تقنية مُخصّصة لـ Amazon ECS تتيح لك إمكانية تشغيل حاويات Docker بدون نشر البنية التحتية أو إدارتها.
- تتيح لك VMware Cloud on AWS تبسيط عملية ترحيل أعباء عمل الإنتاج ذات المهام الحرجة وتسريعها من الآلات الافتراضية المحلية إلى سحابة AWS.
بادر باستخدام المحاكاة الافتراضية والتخزين في حاويات من خلال إنشاء حساب مجاني على AWSاليوم.
الخطوات التالية في AWS
تعرّف على كيفية بدء استخدام الأجهزة الافتراضية على AWS