هل الحاويات تستحق الصداع؟

جدول المحتويات:

هل الحاويات تستحق الصداع؟
هل الحاويات تستحق الصداع؟
Anonim

الحاويات عبارة عن مفهوم Unix يسمح بتعبئة التطبيقات بكل التبعيات المطلوبة في صورة واحدة سهلة التشغيل. هذا له فوائد مدوية لسير عمل DevOps ، لكن هل يستحق عناء إضافي؟

الحاويات تزامن التطوير وبيئات الإنتاج

مع الحاويات ، الفكرة كلها هي أنها تحزم كل ما تحتاجه لتشغيل الكود الخاص بك في صورة قابلة للتوزيع بسهولة. هذا يعني أن كل ما هو مطلوب لتشغيل الصورة هو تنزيلها وتشغيلها

docker run.

لقد ولت أيام "لا يعمل على جهازي." مع الحاويات التي يتم توفيرها لكل شخص ، تم تثبيت Docker بشكل صحيح ويعرف كيفية استخدامه - يجب أن تعمل الحاوية بالقرب من نفس الشيء تمامًا على جهازك كما تفعل مع الجميع.

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

الحاويات تتيح التحجيم الفعال

Becaue من السهل جدًا تشغيل حاوية ، فهناك الكثير من الخدمات التي ستديرها لك. يشار إلى هذه عادةً باسم أدوات أدوات التنسيق التي تدير تشغيل مثيلات متعددة من الحاويات عبر العديد من الخوادم.

تمتلك AWS خدمة Elastic Container Service الخاصة بها ، والتي تدير تشغيل الحاويات الخاصة بك على أسطول من مثيلات EC2 ، أو على خدمة Fargate الخاصة بها. برنامج Kubernetes مفتوح المصدر ، ويقدم العديد من موفري السحابة عمليات تكامل باستخدامه.

ستكون كل خدمة تنسيق قادرة على مراقبة صحة مثيلاتك وتشغيل مثيلات جديدة عندما تكون حركة المرور عالية. يتيح ذلك التوسع الفعال ، والذي يمكن أن يوفر لك الكثير من المال على تكاليف الاستضافة (ما يصل إلى 90٪ على AWS مع التدرج التلقائي والمثيلات الموضعية) ، ويعني أنه لا داعي للقلق كثيرًا بشأن تجاوز البنية التحتية الخاصة بك.

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

استضافة الحاويات
استضافة الحاويات

وكل هذا ممكّن لطبيعة الحاويات ، دون الحاجة إلى عمل إضافي. يمكنك أن تفعل الشيء نفسه على AWS باستخدام AMIs مخصصة ، ولكن إدارتها أصعب بكثير من إدارتها من الحاويات ، وستؤدي الكثير من نفس العمل على أي حال.

إصدار الحاويات التحكم في مسؤول النظام الخاص بك

ربما تكون أروع نتيجة للحاويات هي أنها تجلب كل تكوين الخادم الخاص بك من رأس مسؤول النظام الخاص بك إلى

git، حيث يمكن إدارتها وتتبعها. نظرًا لوجود كل حزمة جديدة ، وملف تكوين ، ونص تثبيت ، وتبعية داخل مجلد الإنشاء للحاوية ، فمن السهل ربطها بالتحكم في المصدر.

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

الحاويات تمكن التعاون
الحاويات تمكن التعاون

Plus ، يعمل Docker بشكل جيد مع أنظمة التكامل المستمر. من السهل أتمتة تصميمات Docker ، خاصة إذا كنت تستخدم Azure Pipelines. يعد دفع صورة Docker إلى مجموعة الخوادم الخاصة بك أمرًا بسيطًا مثل تحديث الصورة في المستودع. يمكنك حتى نشر حاوية جديدة على مجموعة فرعية من الخوادم لمراقبة صحتها قبل النشر عبر الأسطول بأكمله ، وهو أمر لن يكون تافهًا لتنفيذه بدون حاويات.

الجانب السلبي: الصداع حقيقي

لنكن حاويات حقيقية هي بالتأكيد الحل الأكثر أناقة ، ولكن من الصعب إعدادها والعمل معها ، مقارنة بمجرد تشغيل صندوق Linux جديد وقضاء ساعة في تثبيت البرنامج.لقد فعل الجميع هذا الأخير ، لكن الأول يستغرق الكثير من الوقت في الاستثمار بشكل عام. (على الرغم من أنك إذا كنت تقوم بتشغيل عدد كبير من الخوادم ، فإن Docker يحتاج إلى التهيئة مرة واحدة فقط.)

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

nginx

و

nodeإذا كنت تقوم بتشغيله على مثيل واحد فقط.

وعلى الرغم من أن الحاويات تسهل إدارة جميع التبعيات التي قد تأتي مع تشغيل تطبيقك ، إلا أنه من الصعب أيضًا تشغيل Docker وربط المنافذ متى أردت اختبار تطبيقك ، مقارنةً بـ فقط npm ابدأ

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

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

موضوع شعبي