يُعَد Helm مدير حِزَم لنظام Kubernetes والذي يعمل على تبسيط نشر التطبيقات وإدارتها.
بدلاً من إنشاء العشرات من ملفات التكوين المنفصلة وصيانتها يدويًا، يقوم Helm بتجميع كل ما هو مطلوب للتطبيق في حزمة واحدة قابلة لإعادة الاستخدام تُسمَّى مخطط Helm.
يساعد Helm على تقليل تعقيد العمل مع Kubernetes - وهو منصة مفتوحة المصدر تعمل على أتمتة نشر وتشغيل التطبيقات المعبأة في حاويات عبر خوادم متعددة. على الرغم من قوة Kubernetes، فإنه غالبًا ما يتطلب تكوينًا مكثفًا وتفصيليًا مكتوبًا في ملفات YAML - يحدِّد كيفية تشغيل التطبيقات، وكيفية اتصالها، والموارد التي تحتاجها.
يمكن أن تصبح الإدارة اليدوية لهذه التكوينات بواسطة المطورين ومسؤولي النظام ومهندسي عمليات التطوير -خاصةً عبر بيئات متعددة مثل التطوير والاختبار والإنتاج- مستهلكة للوقت وعرضة للأخطاء بسرعة. يتصدى Helm لهذا التحدي من خلال تقديم التوحيد القياسي وإمكانية إعادة الاستخدام والتحكم في الإصدار، مع ميزات تشمل التراجع والتخصيص الخاص بالبيئة.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.
قبل الغوص في Helm، من الضروري فهم الحاويات، وأساس Kubernetes وأدوات السحابة الأصلية الحديثة.
تقوم الحاويات بتجميع التطبيقات بكل ما يحتاجه تشغيلها -الكود والمكتبات والتكوين- في وحدة خفيفة الوزن وقابلة للنقل تُسمَّى الحاوية. تتيح هذه الإمكانية للبرامج العمل بشكل متسق عبر بيئات مختلفة، بدءًا من الكمبيوتر المحمول للمطور وحتى بيئة الإنتاج السحابية.
تعتمد الحاويات عادةً على نظام Linux وهي أسرع وأكثر كفاءة من الأجهزة الافتراضية التقليدية. كما أنها مناسبة أيضًا لهندسة الخدمات المصغرة، حيث يتم تقسيم التطبيقات إلى مكونات أصغر قابلة للنشر بشكل مستقل ويمكنها التوسع حسب الحاجة. في Kubernetes، تعمل أعباء العمل المحفوظة في حاويات على مجموعة من الأجهزة تتكون من مستوى تحكم يُدير النظام والعُقَد العاملة التي تنفِّذ التطبيقات عبر البنية التحتية.
تُعَد Docker، وهي منصة مفتوحة المصدر تم إصدارها للجمهور في عام 2013، أداة الحاويات الأكثر استخدامًا. اليوم، أصبحت الحاويات جزءًا أساسيًا من النظام البنائي السحابي مفتوح المصدر، ما يُتيح تطويرًا أسرع ونشرًا أكثر موثوقية ومرونة تشغيلية أكبر.
يقوم Kubernetes بتنظيم الحاويات على نطاق واسع من خلال أتمتة النشر والتوسع وإدارة الموارد. ومع ذلك، فإن إدارة تكوينات Kubernetes بشكل مباشر قد تكون معقدة وعرضة للأخطاء. يؤدي Helm دورًا رئيسيًا هنا من خلال تبسيط وتوحيد وتبسيط عملية نشر وصيانة التطبيقات المعبأة في الحاويات.
أنشأت شركة Deis (التي استحوذت عليها Microsoft لاحقًا) Helm في عام 2016 كإحدى الأدوات الأولى لتبسيط إدارة تطبيقات Kubernetes. في عام 2018، تبرَّع الفريق بالمشروع إلى مؤسسة الحوسبة السحابية الأصلية (CNCF)، والتي حوَّلته إلى مشروع رسمي لها بالكامل في 2020.
تتم صيانة تطوير Helm مفتوح المصدر بشكل نشط على GitHub، حيث يتعاون المساهمون من جميع أنحاء العالم على تطوره. يوفر الموقع الرسمي، helm.sh، وثائق شاملة (مستندات)، وتنزيلات، وموارد لمساعدة المستخدمين على البدء والبقاء على اطِّلاع دائم.
كان أحد المعالم الرئيسية هو إصدار Helm 3 في أواخر عام 2019. قامت هذه النسخة بإزالة مكون Tiller من Helm 2، ما أدى إلى تحسين الأمان وتبسيط التحكم في الوصول من خلال التفاعل المباشر مع واجهات برمجة تطبيقات Kubernetes.كما ساهم Helm 3 أيضًا في تعزيز عمليات الترقية وإدارة التبعيات ودعم مخططات المكتبة، ما يجعله أكثر أمانًا ومرونة وسهولة في الاستخدام في المؤسسات.
شهد Helm اعتمادًا هائلًا عبر النظام البنائي السحابي الأصلي. ووفقًا لاستطلاعات CNCF الأخيرة، يتصدر Helm باعتباره مدير حزمة Kubernetes المفضل، مع اعتماد 75% بين المؤسسات التي تُدير Kubernetes.1
يستضيف Artifact Hub (الذي حل محل Helm Hub الأصلي) آلاف المخططات البيانية، كما يقدِّم كبار مورِّدي البرامج بشكل روتيني مخططات Helm كطريقة توزيع Kubernetes الأساسية الخاصة بهم.
يعمل Helm على تبسيط إدارة تطبيقات Kubernetes من خلال تجميع بيانات Kubernetes (ملفات التكوين) وقوالب التكوين والبيانات الوصفية في حِزَم قابلة لإعادة الاستخدام تُسمَّى مخططات Helm. تحتوي هذه المخططات على جميع المواصفات اللازمة لإنشاء ملفات YAML المناسبة لموارد Kubernetes -مثل عمليات النشر والخدمات ووحدات التحكم في الدخول وpersistentVolumes وconfigMaps والأسرار- التي تشكِّل تطبيقًا.
يُعَد "YAML" اختصارًا لعبارة "YAML Ain’t Markup Language" أو "Yet Another Markup Language". وهو تنسيق بيانات سهل الاستخدام يُستخدَم لكتابة ملفات التكوين، ما يوفر طريقة واضحة ومنظمة لتمثيل المعلومات التي يمكن للأشخاص والبرامج قراءتها.
عند تثبيت مخطط، يقوم Helm تلقائيًا بتطبيق هذه الموارد على مجموعة Kubernetes المستهدفة، مع دعم الإصدارات والتراجعات وإدارة التبعيات المضمنة.
يعمل Helm في المقام الأول كأداة من جانب العميل تتفاعل مباشرة مع خادم API الخاص بنظام Kubernetes لإدارة عمليات نشر التطبيقات:
عميل Helm هو أداة سطر أوامر (CLI) تتفاعل مع مجموعات Kubernetes وتُدير المخططات والإصدارات. هذه الأداة هي ما يستخدمه المطورون والمشغِّلون على أساس يومي. على عكس kubectl، أداة الأوامر الأصلية في Kubernetes، يُدير Helm التطبيقات بأكملها بدلًا من العناصر الفردية.
مخطط Helm هو تنسيق حزمة يحتوي على جميع تعريفات الموارد اللازمة لتشغيل تطبيق على Kubernetes. تتضمن المخططات قوالب وقيم تكوين افتراضية وبيانات وصفية.
إصدار Helm هو مثال لمخطط يعمل في مجموعة Kubernetes. كل إصدار له اسم فريد ويمكن إدارته بشكل مستقل.
مستودعات Helm هي مجموعات من المخططات التي يمكن مشاركتها وتوزيعها، على غرار متاجر التطبيقات أو مكتبات الحِزَم في أنظمة بنائية أخرى.
مخطط Helm هو مجموعة من الملفات التي تَصِف مجموعة ذات صلة من موارد Kubernetes. يتضمن هيكل المخطط ما يلي:
يستخدم مطورو Kubernetes ومسؤولو النظام وغيرهم من المتخصصين في عمليات تكنولوجيا المعلومات (ITOps) في المؤسسات التجارية Helm لإنجاز مهام مثل:
يقلِّل Helm بشكل كبير من التعقيد التشغيلي المرتبط بإدارة عمليات نشر Kubernetes. من خلال أتمتة وتوحيد إدارة التكوين، يعمل Helm على تبسيط سير العمل الذي قد يتضمن عادةً تحرير YAML يدويًا معقدًا وعرضة للخطأ.
تصبح هذه الكفاءة مهمة بشكل خاص مع قيام المؤسسات بتوسيع نطاق بيئاتها السحابية الأصلية واعتماد التقنيات الناشئة، مثل أعباء عمل الذكاء الاصطناعي (AI) والتعلم الآلي (ML) وحوسبة الحافة.
توفِّر قدرات التراجع المضمَّنة في Helm شبكات أمان أساسية لعمليات نشر الإنتاج. إذا فشلت الترقية أو تسببت في حدوث مشكلات، يمكن للفرق الرجوع على الفور إلى إصدار العمل السابق باستخدام أمر واحد. تعمل هذه الميزة على تقليل متوسط وقت الاسترداد (MTTR) للحوادث المتعلقة بالنشر، وهو متطلب أساسي للتطبيقات ذات التوفر العالي وخدمات استدلال الذكاء الاصطناعي في الوقت الفعلي.
يمكن التحكم في إصدارات مخططات Helm ومراجعة الكود الخاص بها مثل أي قطعة برمجة أخرى. يوفر هذا النهج مسارات تدقيق للنشر ويضمن مرور التغييرات عبر عمليات الموافقة المناسبة. تستخدم العديد من المؤسسات Helm مع مهام سير عمل GitOps لتحسين الحوكمة، ما يُتيح للمؤسسات تلبية متطلبات الامتثال للصناعات الخاضعة للتنظيم التي تعتمد على بنى سحابية أصلية.
من خلال التخلص من تعقيد Kubernetes، يسمح Helm للمطورين بالتركيز على منطق التطبيق بدلًا من تكوين البنية التحتية. يمكن للفرق تنفيذ النشر بشكل مستقل باستخدام المخططات المعتمدة مسبقًا، مما يقلل الاعتماد على فرق المنصة ويعزز سرعة التطوير المطلوبة لمبادرات الذكاء الاصطناعي والتحول الرقمي.
تستخدم المؤسسات عادةً Helm لإدارة التطبيقات المخصصة عبر بيئات التطوير والإعداد والإنتاج. يمكن تكوين مخطط واحد بحدود موارد مختلفة ونسخ متماثلة وأعلام ميزات لكل بيئة.
يُعَد تثبيت وإدارة برامج الجهات الخارجية، مثل قواعد البيانات أو أدوات المراقبة أو عناصر CI/CD، أسهل مع Helm. بدلاً من اتباع وثائق التثبيت المعقدة، يمكن للفرق تثبيت تكوينات جاهزة للإنتاج باستخدام أمر تثبيت Helm واحد.
يتفوق Helm في السيناريوهات التي تتطلب نشر التطبيق نفسه عدة مرات باستخدام تكوينات مختلفة في مساحات أسماء منفصلة. فمنصات SaaS، على سبيل المثال، غالبًا ما تستخدم Helm لإدارة نشر التطبيقات الخاصة بالعملاء.
يتكامل Helm بسلاسة مع مسارات التكامل المستمر والنشر المستمر، ويعمل كآلية نشر في مسارات التسليم المؤتمتة. تستخدم منصات التجارة الإلكترونية Helm لإدارة التوسع الموسمي، حيث تنشر بسرعة نسخًا أخرى من التطبيقات خلال فترات الذروة وتقللها خلال أوقات الخمول، وكل ذلك يتم عبر إصدارات Helm.
يُعَد Helm حلًا مثاليًا لإدارة أعباء عمل الذكاء الاصطناعي (AI) والتعلم الآلي (ML)، والتي غالبًا ما تتطلب تكوينات معقدة، بما في ذلك موارد وحدة معالجة الرسومات (GPU) والتخزين المتخصص ومكونات خدمة النماذج وأنظمة المراقبة. تستخدم المؤسسات مخططات Helm لتوحيد معايير نشر مسارات التعلم الآلي، ما يضمن بيئات متسقة لأعباء عمل التدريب والاستدلال عبر مجموعات التطوير والإنتاج.
Kustomize هو حل آخر معتمَد على نطاق واسع لإدارة تكوينات Kubernetes، على الرغم من أنه يتخذ نهجًا مختلفًا عن Helm. ففي حين يستخدم Helm القوالب لإنشاء البيانات، يستخدم Kustomize نهجًا إعلانيًا مع التصحيحات والتراكبات لتعديل التكوينات الأساسية.
يُعَد Kustomize أبسط ويتطلب منحنى تعليميًّا أقل، ولكنه يفتقر إلى إمكانيات إدارة الحِزَم وإصداراتها وميزات التراجع التي يوفرها Helm. تستخدم العديد من المؤسسات كلتا الأداتين معًا، حيث يتولى Kustomize التعامل مع متغيرات التكوين بينما يتولى Helm إدارة دورة حياة التطبيق الإجمالية.
مشغِّلو Kubernetes هم وحدات تحكُّم خاصة بالتطبيق تعمل على توسيع واجهات برمجة تطبيقات Kubernetes لإدارة التطبيقات المعقدة. فبينما يركِّز Helm على التعبئة والنشر، يوفر المشغِّلون إدارة مستمرة لدورة الحياة. وبإمكانهم التعامل مع المهام التشغيلية الخاصة بالتطبيق، مثل النسخ الاحتياطية والتوسع والترقيات.
يُعَد Helm أكثر ملاءمة لنشر التطبيقات العامة وأعباء العمل البسيطة. وفي الوقت نفسه، يتفوق المشغِّلون في إدارة التطبيقات ذات الحالة التي تتطلب تشغيلًا معقدًا. تستخدم العديد من المؤسسات Helm لنشر المشغِّلين بأنفسهم.
تبسيط ادارة التطبيقات والحصول على رؤى تم إنشاؤها بواسطة الذكاء الاصطناعي والتي يمكنك التصرف بناء عليها باستخدام IBM Concert، وهي منصة أتمتة تقنية مستندة إلى الذكاء الاصطناعي التوليدي.
ربط Full Stack Observability بإدارة موارد التطبيقات التلقائية لمعالجة مشكلات الأداء قبل أن تؤثر في تجربة العملاء.
اكتشف الخدمات المبتكرة للغاية التي تقدمها IBM Consulting لإدارة البيئات المعقدة والهجينة والسحابة المتعددة.
1. CNCF 2023 Annual Survey, Cloud Native Computing Foundation, 2023