القوالب لا غنى عنها لأتمتة يحركها GitOps
نشرت: 2022-05-27جدول المحتويات
أتمتة يحركها GitOps
اشتهرت Kubernetes بسهولة التوسع وإدارة التطبيقات المعبأة في حاويات. يسمح لك بفرز وإدارة العقد والقطع والحاويات والخدمات وخرائط التكوين طوال دورة حياة التطبيق بأكملها. كان من الصعب تحقيق هذه المرونة والتحكم من خلال النصوص.
ولكن بفضل نهج إعلان Kubernets بشأن البنية التحتية ، يمكنك تحديد تغييرات الدقة على أي مستوى. يمكّنك Kubernetes من دمج أدوات متعددة لتسهيل التخطيط التلقائي والنشر والمراقبة للحاويات.
إحدى هذه الأدوات هي Helm ، وهو إطار أتمتة معتمد من CNCF أصبح شائعًا ليس فقط في دوائر Kubernetes ولكن أيضًا في النظام البيئي GitOps. في هذا المنشور ، سننظر في كيفية مساعدة Helm في أتمتة التطبيقات السحابية الأصلية عبر Kubernetes و GitOps.
ما هو هيلم؟
على الرغم من وصفه بأنه مدير الحزم ، يعد Helm أداة قوية لأتمتة تثبيت تطبيقات Kubernetes ونشرها وترقيتها وإدارتها. تعتبر إدارة بيان Kubernetes مهمة تزداد تعقيدًا عبر الأنظمة. يلزم وجود ملفات YAML متعددة وقيم الكود الثابت لفرز واحد. احتاجت Kubernetes إلى طريقة أفضل لإدارة ملفات YAML من خلال تنسيق حزم بسيط ، مما أدى إلى مخططات الدفة. ومع ذلك ، فإن الغرض من Helm يتجاوز القالب.
الرسوم البيانية
مخططات Helm هي وحدات يمكن استخدامها لتطبيقات Kubernetes. يمكن أن يحتوي كل مخطط على ملفات وبيانات وصفية وبنية أساسية للتطبيق. سيتم تخزين المخططات المكتوبة في Go في أدلة قوالب محددة مع المتغيرات والإصدارات والأوصاف المرتبطة بها. من خلال تخزين هذه المخططات كأرشيفات في مستودع ، يمكنك مشاركتها عبر فريق التطوير الخاص بك لإعادة استخدامها.
بمجرد تثبيت نسخة من الرسم البياني في مجموعة Kubernetes ، يطلق عليها اسم الإخراج. يتم إنشاء إصدار جديد في كل مرة يتم فيها استخدام المخطط ، وهو ما يمكن أن يحدث عدة مرات. تساعدك المنشورات على مراقبة الرسوم البيانية وتثبيتها.
فيما يلي بعض القواعد المهمة التي يجب معرفتها عند العمل مع Helm.
Chart.YAML: الملف الرئيسي الذي يحتوي على وصف الرسم البياني الخاص بك
Values.YAML: الملف الذي يحتوي على القيم الافتراضية للمخطط الخاص بك
الرسوم البيانية: دليل يحتوي على مخططات فرعية
القوالب: تم تعريف دليل مصادر Kubernetes على أنه قوالب
القوالب
يعد مجلد القالب سمة أساسية لبرنامج Helm. يحتوي على ملفات التكوين الخاصة بالتطبيق ، والتي يتم تطبيقها بعد ذلك على الكتلة. تستدعي الملفات الموجودة في دليل القوالب قيمها من القيم.
لماذا هيلم؟
تضيف Helm قيمة كبيرة لبيئة التسليم المستمر حيث إنها تجلب الفوائد التالية.
وتحسين الإنتاجية:
يسمح لك Helm (جنبًا إلى جنب مع أدوات الفرز الأخرى مثل Flux) بفرز البرامج باستخدام زر واحد أو أمر واحد. سيسمح هذا لفريقك بالتركيز فقط على تطوير البرامج.
يجعل العملية أسهل:
يسمح لك مفهوم المخططات بنسخ نفس المخطط عبر خط الأنابيب - التطوير والاختبار والإنتاج - أو عبر سير عمل الفرق المختلفة. هذا يقلل بشكل كبير من المشكلة.
قياس:
تم تصميم المخططات بحيث تتوافق مع بنية مجموعة Kubernetes ، مما يسهل قابلية التوسع.
سحب سهل:
يدير Helm جميع الإصدارات ، مما يسهل إجراء التغييرات عند ظهور المشكلات.
تعزز GitOps كلاً من Helm و Flux
يمكن لبرنامج Helm إدارة الإصدارات المعقدة والحفاظ على بساطة الأشياء أثناء قياسك لها. ومع ذلك ، نظرًا لإدخال التغييرات تدريجيًا ، سيحتاج Helm إلى أدوات إضافية لتحديث مجموعة Kubernetes.
يعد Flux حلاً ممتازًا للحشو لشركة Helm لأنه يعمل كجسر بين Helm وجميع مستودعات Git المهمة التي يتم من خلالها تحديد مجموعة Kubernetes ومواصفات الأداة المساعدة.
Flux هو حل أتمتة للنشر يعتمد على نموذج GitOps ، مما يجعل Git نقطة البداية والمصدر الحقيقي لجميع التغييرات. يتيح لك Flux الحفاظ على التناسق بين مستودعات الكود ومجموعات Kubernetes وأتمتة الفرز عند إدخال تغييرات التعليمات البرمجية.
باختصار ، يقوم Flux Helm تلقائيًا بإصدار المخططات من خلال مزامنة المخططات من Git إلى مجموعة Kubernetes.
كيف يعمل Flux مع هيلم؟
لاستخدام Flux كمعامل GitOps ، يمكنك حفظ جميع مخططات Helm مع ملفات YAML وموارد Kubernetes المخصصة في مستودع Git. أيضًا ، يمكنك وضع صور غير متغيرة لهذه المصادر في سجل حاوية.
بمجرد إجراء تغيير على Git من خلال طلب "Pull" ، سيتحقق Flux من مستودعك ويوفر الموارد اللازمة. ثم يتم دمج التغييرات في مجموعة الإنتاج. هذا ، بالطبع ، يبسط العملية ، ويمكنك القيام بالكثير - مثل اختبارات التدخين أو الموافقة على التغييرات الخاصة بـ SRE - ولكن في الوقت الحالي ، دعنا نجعل الأمر بسيطًا.
إذا كنت ترغب في معرفة المزيد حول كيفية عمل Flux 2 و Helm معًا لزيادة السرعة والموثوقية مع تقليل وقت الخمول ، فراجع حديث YouTube هذا بواسطة Scott Rigby.
استنتاج
يقلل Helm بشكل كبير من صعوبة تشغيل Kubernetes. إنها تضيف قيمة كبيرة إلى خط أنابيب GitOps بمفهوم المخططات أو القوالب. ومع ذلك ، هناك متطلبات أخرى غير القوالب ، وهي أتمتة النشر من طرف إلى طرف. هذا هو المكان الذي تحتاج فيه أداة مثل Flux (أو Weave GitOps ، المضمنة في Flux) لاستخدام الدفة. بالإضافة إلى ذلك ، يضمن الحل الذي يشبه Magalix أن إصدارات Helm متوافقة وآمنة.
Weave KitApps هو حل تسليم مستمر يتيح لك إدارة Kubernetes على نطاق واسع. هذا يجعل من السهل على أي شركة اعتماد وتنفيذ GitOps. يبسط Weave GitOps المجموعة الوظيفية بأوامر مثل "تثبيت gitops" لتمكين GitOps و "gitops add app" للإضافة إلى تطبيقك. تلخص هذه الأوامر المهام المعقدة الأساسية التي يتم تضمينها في أتمتة النشر. تجمع Weave GitOps خط أنابيب GitOps بأكمله بما في ذلك Helm و Flux و Magalix والمزيد - حتى تتمكن من البدء في GitOps دون إضاعة أي وقت.
كيف تصبح بائعًا في أمازون بخطوات سهلة
التسويق الرقمي لتقديم الطعام