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

كيف تصبح مهندس DevOps في ستة أشهر أو حتى أسرع. الجزء 1. مقدمة
كيف تصبح مهندس DevOps في ستة أشهر أو حتى أسرع. الجزء 2. التكوين
كيف تصبح مهندس DevOps في ستة أشهر أو حتى أسرع. الجزء 3. الإصدارات
كيف تصبح مهندس DevOps في ستة أشهر أو حتى أسرع. الجزء 4.
تغليف البرمجيات كيف تصبح مهندس DevOps في ستة أشهر أو حتى أسرع. الجزء 5. النشر



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



استعداد لإطلاق؟


لذا ، لدينا كودنا مكتوب ومعبأ وموزع في مكان ما. قررت تجاهل نشر التعليمات البرمجية كقطع أثرية للآلة غير قابلة للتغيير (مثل EC2) والتركيز على الحاويات. لماذا ا؟

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

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

إذا كان لدينا حاويات معبأة بدقة ، كيف نطلقها؟

حاويات تعمل حقا


أبسط شيء يمكنك القيام به هو ببساطة تشغيل الأمر docker run myImage وإنهائه. لكن هذه ليست فكرة جيدة ، لأن مثل هذا الحل لا يعمل إذا:

  • هذه الحاوية سوف "تموت" فجأة ؛
  • يجب أن يكون لديك أكثر من حاوية للتعامل مع الحمل
  • تحتاج إلى تنفيذ عملية نشر بدون توقف ؛
  • تريد السيطرة الكاملة على الخدمات الدقيقة الخاصة بك
  • تريد استخدام ناقل CI / CD لتسليم المنتج للعملاء بسرعة
    ، وما إلى ذلك ...

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

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

لذا ، فإن تنظيم الحاويات يسرع إلى الإنقاذ!

نظرة عامة على طرق تنسيق الحاوية


كما هو الحال مع كل شيء آخر في الحياة ، هناك أكثر من طريقة لحل المشكلة. الأول والأكثر وضوحا هو Kubernetes . ولدت Kubernetes من مشروع داخلي في Google ، وهي المعيار الفعلي لتنسيق الحاويات.



أيضًا ، هذا هو الخيار الوحيد إذا قمت بتشغيل التطبيق الخاص بك في:

  • مركز البيانات الخاص ؛
  • جوجل كلاود
  • مايكروسوفت أزور
  • أي سحابة عامة أخرى.

ومع ذلك ، إذا كنت تعمل في AWS ، فلديك خيار آخر - ECS. على الرغم من أن هذا ليس صحيحًا تمامًا: لديك Nomad من Hashicorp (هؤلاء هم نفس الأشخاص الذين أعطوك Terraform) ولديك Docker Swarm من Docker. المشكلة هي أن هناك الكثير من المنصات المتخصصة مع الحد الأدنى من التنفيذ ، لذلك من أجل النمو الوظيفي السريع ، نتجاهلها.
على أي حال ، عد إلى AWS Elastic Container Services (ECS). إنها خدمة تدبير حاويات مُدارة بالكامل ، بسيطة للغاية للبدء ، ومتكاملة بإحكام مع بقية نظام AWS البيئي. يفعل أشياء قليلة ، لكنه يفعلها بشكل جيد. باختصار ، هذا عكس Kubernetes إلى حد كبير ، وإذا كانت ECS جيدة بما يكفي لماكدونالدز ، فمن المحتمل أنها جيدة بما يكفي لك أيضًا.

ومع ذلك ، من حيث التقدم المهني الفوري ، ليس هناك شك في أن Kubernetes هو الخيار الأفضل. على الرغم من أنني أراهن على أن 99 ٪ من الشركات العاملة في AWS سترضي تمامًا ECS أيضًا.

حتى الآن يمكنك الاختيار. إذا كنت مستجدًا تمامًا في هذا المجال ، فيمكنك تخفيف نفسك مع Kubernetes ، لأنه خارج فريق مهندسي DevOps ذوي التفكير المماثل الذين يمكنهم دعمك في رحلتك ليست مهمة سهلة! تُظهر الصورة أدناه كيف يستكشف مهندس DevOps المستقبلي نظام وصول يعتمد على أدوار Kubernetes.



ومع ذلك ، فإن هذا ممكن بالتأكيد ، خاصة مع العروض المجانية من Google و AWS ، والبرامج التعليمية على YouTube / Udemy ، والأسعار الفورية لـ AWS. إذا اخترت هذا المسار ، فإنني أوصيك بأن تبدأ بمستوى Google Cloud Platform المجاني أو مستوى kops ، الذي يطلق حالات AWS الفورية. يكلف Kubernetes (EKS) الذي يعمل على Amazon الأموال ، وعلى الرغم من أنه مناسب لأحمال عمل المنتج ، فإنه ليس طريقة جيدة لبدء تعلم كيفية تشغيل التطبيقات بشكل صحيح. ولا أعرف ما يكفي عن Azure للتوصية به.
ومع ذلك ، إذا لم تكن جديدًا في هذا المجال وتعمل حقًا ضمن نظام AWS البيئي ، فإن نصيحتي هي على النحو التالي. اجعل خدماتك الصغيرة في حاوية وانشرها في ECS للنوم بهدوء في الليل والعمل بالتوازي لإنشاء منصة Kubernetes عالمية المستوى. الحقيقة هي أن الانغماس في Kubernetes يشبه "حلاقة الياك" ، والتي لا يمكنك حتى تخيلها ، وسوف تشتت انتباهك حتمًا عن مهمتك الحقيقية - لتقديم المنتجات بسرعة وكفاءة للعملاء.

ملاحظة: "Yak shaving" هو مصطلح برمجة يعني سلسلة من المهام التي يجب إكمالها قبل أن يتمكن المشروع من التقدم إلى معلمه التالي. صاغها كارلين فييري ، مستوحاة من حلقة "The Ren & Stimpy Show". يشير اسم المصطلح إلى عدم جدوى المهام المنجزة ، حتى لو كانت ضرورية لحل مشكلة أكبر.

هل تحتاج حقا Kubernetis؟ لا. وإذا كنت ترغب حقًا في العمل معه؟ ثم نعم ". واضح؟ يقول السوق: "إما Kubernetes أو العودة إلى ديارهم." لذلك دعونا نلقي نظرة سريعة على ما تشترك فيه من خلال الاتصال بهذا الشيء.

أولاً ، على الرغم من الانطباع عن أحدث التقنيات ، فإن فكرة Kubernetes قديمة نسبيًا. عندما قامت Google بإزالة الأغلفة من Borg (سلف Kubernetes) في عام 2015 ، كانت فكرة قديمة جدًا في ذلك الوقت.

اقرأ هذا: "نقدم وصفًا موجزًا ​​للهندسة المعمارية وميزات نظام برج ، وقرارات التصميم المهمة ، والتحليل الكمي لبعض قراراته السياسية ، والتحليل النوعي للدروس المستفادة من عشر سنوات من الخبرة في العمل معه". أعد قرائتها! في عام 2015 (!) ، شاركت Google تفاصيل إطلاق نظام مشابه لـ Kubernetes ، والذي كان في ذلك الوقت يزيد عن عشر سنوات.



ومع ذلك ، هم أنفسهم ليسوا خجولين. فيما يلي الجملة الأولى على الصفحة الرئيسية لـ Kubernetes: "Kubernetes (K8s) هو نظام مفتوح المصدر لأتمتة نشر التطبيقات المعبأة في حاوية ، وتوسيع نطاقها وإدارتها. يقوم بتجميع الحاويات التي تشكل التطبيق في كتل منطقية لسهولة الإدارة والاكتشاف. تعتمد Kubernetes على خبرتها التي تبلغ 15 عامًا في أعباء عمل Google ، جنبًا إلى جنب مع أفضل الأفكار والممارسات في المجتمع ".

لذا في المرة القادمة التي تسمع فيها شخصًا يقدم Kubernetes على أنها فكرة "ساخنة" جديدة ، ومستعدة للسيطرة على العالم ، تذكر فقط أنه يمثل التكنولوجيا التي يبلغ عمرها الآن خمسة عشر عامًا على الأقل. أليس هذا مبتكرًا بعض الشيء؟
ثانيًا ، فكر في الجمهور المستهدف. تنشئ Google أدوات لحل مشاكل Google و Google. مرة أخرى ، تقول الصفحة الرئيسية لـ Kubernetes بوضوح تام حول هذا: "مقياس الكواكب: مصمم وفقًا لنفس المبادئ التي تسمح لـ Google بإطلاق مليارات الحاويات في الأسبوع ، يمكن لـ Kubernetes التوسع دون زيادة فريق العمليات الخاص بك."

أخيرًا ، يسلط أحد مطوري Kubernetes الأصلي ومؤيده الأكثر نشاطًا ، Kelsey Hightower ، الضوء أيضًا على هذه النقطة: "Kubernetes مخصص للأشخاص الذين يبنون منصات كاملة. إذا كنت مطورًا يقوم بإنشاء نظامك الأساسي (AppEngine أو Cloud Foundry أو استنساخ Heroku) ، فإن Kubernetes هو ما تحتاجه ".

وبالتالي ، إذا كنت تعمل على نطاق كوكبي ، أو تطلق مليارات الحاويات في الأسبوع ، أو تنشئ سحابة للمستخدمين الآخرين ، فإن Kubernetes هو الخيار الصحيح. وإذا لم يكن الأمر كذلك ، فهذه ليست نهاية القصة. ولا يهمني أن تقرأ جدتك مجموعة من تغريدات Kelsey خلال استراحة الغداء ، ثم حولت موقع متجر الزهور الخاص بها إلى Kubernetes في أسبوع باستخدام CI / CD و Automated Canary Analysis. هذه ليست الأداة المناسبة لك ، ما لم تتطلب طبيعة منتجك استخدامها.

ولكن هل يهم حقا؟ Kubernetes = $$$. ارتقِ إلى مستوى أعلى ، واستمتع برحلتك إلى عالم DevOps وشارك تجاربك معي.
ملاحظة المترجم: لم يتم نشر المقالة رقم 7 حول مراقبة التطبيقات القائمة على ELK Stack.

يتبع قريبا جدا ...

القليل من الدعاية :)


أشكركم على البقاء معنا. هل تحب مقالاتنا؟ هل تريد رؤية مواد أكثر إثارة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية لأصدقائك VPS القائم على السحابة للمطورين من $ 4.99 ، وهو نظير فريد من نوعه لخوادم مستوى الدخول التي اخترعناها لك: الحقيقة الكاملة عن VPS (KVM) E5-2697 v3 (6 نوى) 10GB DDR4 480GB SSD 1Gbps من $ 19 أو كيفية تقسيم الخادم؟ (تتوفر الخيارات مع RAID1 و RAID10 ، حتى 24 مركزًا و 40 جيجابايت DDR4).

Dell R730xd أرخص مرتين في مركز بيانات Equinix Tier IV في أمستردام؟ فقط لدينا 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV من 199 دولارًا في هولندا!Dell R420 - 2x E5-2430 2.2 جيجا هرتز 6C 128 جيجا بايت DDR3 2x960GB SSD 1Gbps 100TB - من 99 دولار! اقرأ عن كيفية بناء مبنى البنية التحتية الفئة c باستخدام خوادم Dell R730xd E5-2650 v4 بتكلفة 9000 يورو مقابل سنت واحد؟

All Articles