أفضل الممارسات وأفضل الممارسات لتشغيل الحاويات و Kubernetes في بيئات الإنتاج

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

فريق Kubernetes aaS من Mail.ru تم جمع التوقعات والنصائح وأفضل الممارسات لقادة السوق من Gartner و451 Research وStacxRox وغيرها. وسوف تعمل على تمكين وتسريع نشر الحاويات في بيئات الإنتاج.

كيفية معرفة ما إذا كانت شركتك جاهزة لنشر الحاويات في بيئة الإنتاج

بحسب جارتنروفي عام 2022، ستستخدم أكثر من 75% من المؤسسات التطبيقات المعبأة في حاويات في الإنتاج. وهذا الرقم أكبر بكثير مما هو عليه حاليًا، حيث تستخدم أقل من 30% من الشركات مثل هذه التطبيقات. 

وفق البحث 451ومن المتوقع أن يصل حجم السوق المتوقع لتطبيقات تكنولوجيا الحاويات إلى 2022 مليار دولار أمريكي في عام 4,3. وهذا أكثر من ضعف المبلغ المتوقع في عام 2019، بمعدل نمو في السوق يبلغ 30%.

В استطلاع Portworx وAqua Security قال 87% من المشاركين أنهم يستخدمون حاليًا تقنيات الحاويات. للمقارنة، في عام 2017 كان هناك 55٪ من هؤلاء المجيبين. 

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

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

أفضل الممارسات وأفضل الممارسات لتشغيل الحاويات و Kubernetes في بيئات الإنتاج

الأخطاء الأكثر شيوعًا عند استخدام الحاويات في الإنتاج

غالبًا ما تقلل المنظمات من تقدير الجهد المطلوب لتشغيل الحاويات في الإنتاج. اكتشف جارتنر بعض الأخطاء الشائعة في سيناريوهات العملاء عند استخدام الحاويات في بيئات الإنتاج:

أفضل الممارسات وأفضل الممارسات لتشغيل الحاويات و Kubernetes في بيئات الإنتاج

كيفية الحفاظ على الحاويات آمنة

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

توصيات من جارتنر

  1. قم بدمج عملية فحص صور التطبيق بحثًا عن نقاط الضعف في مسار التكامل المستمر/التسليم المستمر (CI/CD). يتم فحص التطبيقات في مراحل إنشاء البرنامج وإطلاقه. التأكيد على الحاجة إلى فحص وتحديد المكونات والمكتبات والأطر مفتوحة المصدر. يعد استخدام المطورين للإصدارات القديمة والضعيفة أحد الأسباب الرئيسية لثغرات أمنية في الحاوية.
  2. قم بتحسين التكوين الخاص بك باستخدام اختبارات مركز أمان الإنترنت (رابطة الدول المستقلة)، وهي متاحة لكل من Docker وKubernetes.
  3. تأكد من فرض ضوابط الوصول، وضمان فصل الواجبات، وتنفيذ سياسة إدارة الأسرار. يتم تشفير المعلومات الحساسة، مثل مفاتيح طبقة المقابس الآمنة (SSL) أو بيانات اعتماد قاعدة البيانات، بواسطة المنسق أو خدمات إدارة الطرف الثالث ويتم عرضها في وقت التشغيل
  4. تجنب الحاويات المرتفعة من خلال إدارة السياسات الأمنية لتقليل مخاطر الاختراق المحتملة.
  5. استخدم أدوات الأمان التي توفر القائمة البيضاء ومراقبة السلوك والكشف عن الحالات الشاذة لمنع الأنشطة الضارة.

توصيات من StacxRox:

  1. الاستفادة من القدرات المضمنة في Kubernetes. قم بإعداد الوصول للمستخدمين الذين يستخدمون الأدوار. تأكد من عدم منح أذونات غير ضرورية للكيانات الفردية، على الرغم من أن الأمر قد يستغرق بعض الوقت للتفكير في الحد الأدنى من الأذونات المطلوبة. قد يكون من المغري منح امتيازات واسعة لمسؤول المجموعة لأن ذلك يوفر الوقت في البداية. ومع ذلك، فإن أي تسوية أو أخطاء في الحساب يمكن أن تؤدي إلى عواقب مدمرة لاحقًا. 
  2. تجنب أذونات الوصول المكررة. قد يكون من المفيد في بعض الأحيان أن تتداخل الأدوار المختلفة، لكن هذا قد يؤدي إلى مشكلات تشغيلية ويؤدي أيضًا إلى إنشاء نقاط عمياء عند إزالة الأذونات. من المهم أيضًا إزالة الأدوار غير المستخدمة وغير النشطة.
  3. تعيين سياسات الشبكة: عزل الوحدات لتقييد الوصول إليها؛ السماح صراحةً بالوصول إلى الإنترنت لتلك الوحدات التي تحتاج إليها باستخدام العلامات؛ السماح بشكل صريح بالاتصال بين تلك الوحدات التي تحتاج إلى التواصل مع بعضها البعض. 

كيفية تنظيم مراقبة الحاويات والخدمات الموجودة بها

الأمن والمراقبة - المشاكل الرئيسية للشركات عند نشر مجموعات Kubernetes. يركز المطورون دائمًا بشكل أكبر على ميزات التطبيقات التي يقومون بتطويرها بدلاً من الجوانب مراقبة هذه التطبيقات

توصيات من جارتنر:

  1. حاول مراقبة حالة الحاويات أو الخدمات الموجودة فيها جنبًا إلى جنب مع مراقبة الأنظمة المضيفة.
  2. ابحث عن البائعين والأدوات ذات التكامل العميق في تنسيق الحاويات، وخاصة Kubernetes.
  3. اختر الأدوات التي توفر التسجيل التفصيلي، والاكتشاف التلقائي للخدمة، والتوصيات في الوقت الفعلي باستخدام التحليلات و/أو التعلم الآلي.

تنصح مدونة SolarWinds بذلك:

  1. استخدم الأدوات لاكتشاف مقاييس الحاوية وتتبعها تلقائيًا، وربط مقاييس الأداء مثل وحدة المعالجة المركزية والذاكرة ووقت التشغيل.
  2. ضمان التخطيط الأمثل للسعة من خلال التنبؤ بتواريخ استنفاد السعة بناءً على مقاييس مراقبة الحاويات.
  3. مراقبة التطبيقات الموجودة في حاويات للتأكد من مدى التوفر والأداء، وهو أمر مفيد لكل من تخطيط السعة واستكشاف مشكلات الأداء وإصلاحها.
  4. أتمتة سير العمل من خلال توفير دعم الإدارة والتوسع للحاويات وبيئات الاستضافة الخاصة بها.
  5. أتمتة التحكم في الوصول لمراقبة قاعدة المستخدمين الخاصة بك، وتعطيل الحسابات القديمة وحسابات الضيوف، وإزالة الامتيازات غير الضرورية.
  6. تأكد من أن مجموعة الأدوات الخاصة بك يمكنها مراقبة هذه الحاويات والتطبيقات عبر بيئات متعددة (سحابية أو محلية أو مختلطة) لتصور الأداء وقياسه عبر البنية التحتية والشبكات والأنظمة والتطبيقات.

كيفية تخزين البيانات والتأكد من أمنها

مع ظهور حاويات العمال ذات الحالة، يحتاج العملاء إلى مراعاة وجود البيانات خارج المضيف والحاجة إلى حماية تلك البيانات. 

وفق استطلاع Portworx وAqua Securityيتصدر أمن البيانات قائمة المخاوف الأمنية التي ذكرها غالبية المشاركين (61%). 

يعد تشفير البيانات استراتيجية الأمان الرئيسية (64%)، لكن المشاركين يستخدمون أيضًا مراقبة وقت التشغيل

(49%)، وفحص السجلات بحثًا عن الثغرات الأمنية (49%)، والمسح بحثًا عن الثغرات الأمنية في خطوط أنابيب CI/CD (49%)، وحظر الحالات الشاذة من خلال الحماية في وقت التشغيل (48%).

توصيات من جارتنر:

  1. اختر حلول تخزين مبنية على المبادئ بنية الخدمات الصغيرة. من الأفضل التركيز على تلك التي تلبي متطلبات تخزين البيانات لخدمات الحاويات، وتكون مستقلة عن الأجهزة، ومعتمدة على واجهة برمجة التطبيقات (API)، ولها بنية موزعة، وتدعم النشر المحلي والنشر في السحابة العامة.
  2. تجنب المكونات الإضافية والواجهات الخاصة. اختر الموردين الذين يوفرون تكامل Kubernetes ويدعمون الواجهات القياسية مثل CSI (واجهات تخزين الحاويات).

كيفية العمل مع الشبكات

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

В بلوق Magalix التي تم جمعها القواعد عالية المستوى التي يجب أن يلتزم بها تنفيذ حل الشبكة العنقودية:

  1. يجب أن تكون البودات المجدولة على نفس العقدة قادرة على التواصل مع البودات الأخرى دون استخدام NAT (ترجمة عنوان الشبكة).
  2. يمكن لجميع برامج النظام (عمليات الخلفية مثل kubelet) التي تعمل على عقدة معينة التواصل مع القرون التي تعمل على نفس العقدة.
  3. القرون باستخدام الشبكة المضيفة, ينبغي أن يكون قادراً على التواصل مع جميع وحدات التشغيل الأخرى على جميع العقد الأخرى دون استخدام NAT. لاحظ أن شبكة المضيف مدعومة فقط على المضيفين. Linux.

يجب أن تكون حلول الشبكات متكاملة بشكل وثيق مع أساسيات وسياسات Kubernetes. يجب أن يسعى قادة تكنولوجيا المعلومات إلى تحقيق درجة عالية من أتمتة الشبكة وتزويد المطورين بالأدوات المناسبة والمرونة الكافية.

توصيات من جارتنر:

  1. اكتشف ما إذا كانت CaaS (الحاوية كخدمة) أو SDN (الشبكة المحددة بالبرمجيات) تدعم شبكات Kubernetes. إذا لم يكن الأمر كذلك أو كان الدعم غير كافٍ، فاستخدم واجهة شبكة CNI (واجهة شبكة الحاويات) للحاويات الخاصة بك، والتي تدعم الوظائف والسياسات الضرورية.
  2. تأكد من أن CaaS أو PaaS (النظام الأساسي كخدمة) يدعم إنشاء وحدات تحكم الدخول و/أو موازنات التحميل التي توزع حركة المرور الواردة بين عقد المجموعة. إذا لم يكن هذا خيارًا، فاستكشف استخدام وكلاء الطرف الثالث أو شبكات الخدمة.
  3. درّب مهندسي الشبكات لديك على الشبكات Linux وأدوات أتمتة الشبكات لتقليل فجوة المهارات وزيادة المرونة.

كيفية إدارة دورة حياة التطبيق

من أجل التسليم الآلي والسلس للتطبيقات، تحتاج إلى استكمال تنسيق الحاويات بأدوات التشغيل الآلي الأخرى، مثل البنية التحتية كمنتجات التعليمات البرمجية (IaC). وتشمل هذه المنتجات Chef وPuppet وAnsible وTerraform. 

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

توصيات من جارتنر:

  1. قم بتعيين معايير لصور الحاوية الأساسية بناءً على الحجم والترخيص والمرونة للمطورين لإضافة المكونات.
  2. استخدم أنظمة إدارة التكوين لإدارة دورة حياة الحاويات التي تقوم بتكوين الطبقات بناءً على الصور الأساسية الموجودة في المستودعات العامة أو الخاصة.
  3. قم بدمج نظام CaaS الخاص بك مع أدوات التشغيل الآلي لأتمتة سير عمل التطبيق بالكامل.

كيفية إدارة الحاويات مع المنسقين

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

أصبح Kubernetes هو المعيار الفعلي لتنسيق الحاويات مع مجتمع نشط ويدعمه معظم البائعين التجاريين الرائدين. 

توصيات من جارتنر:

  1. تحديد المتطلبات الأساسية لضوابط الأمان والمراقبة وإدارة السياسات واستمرارية البيانات والشبكات وإدارة دورة حياة الحاويات.
  2. بناءً على هذه المتطلبات، حدد الأداة التي تناسب متطلباتك وحالات الاستخدام الخاصة بك.
  3. استخدم أبحاث Gartner (راجع "كيفية اختيار نموذج نشر Kubernetes") لفهم إيجابيات وسلبيات نماذج نشر Kubernetes المختلفة واختيار أفضلها لتطبيقك.
  4. حدد موفرًا يمكنه توفير تنسيق مختلط لحاويات العمل عبر بيئات متعددة مع تكامل خلفي محكم وخطط إدارة مشتركة ونماذج تسعير متسقة.

كيفية استخدام قدرات مقدمي الخدمات السحابية

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

توفر سحابات IaaS استهلاكًا للموارد عند الطلب وقابلية للتوسعة السريعة و إدارة الخدماتمما سيساعد على تجنب الحاجة إلى معرفة متعمقة بالبنية التحتية وصيانتها. يقدم معظم موفري الخدمات السحابية خدمة إدارة الحاويات، ويقدم بعضهم خيارات تنسيق متعددة. 

يتم عرض موفري الخدمات السحابية الرئيسيين في الجدول: 

مزود السحابة
نوع الخدمة
المنتج/الخدمة

علي بابا
الخدمة السحابية الأصلية
خدمة حاوية علي بابا السحابية، خدمة حاوية علي بابا السحابية لـ Kubernetes

أمازون ويب سيرفيسز (أوس)
الخدمة السحابية الأصلية
Amazon Elastic Container Services (ECS)، وAmazon ECS for Kubernetes (EKS)، وAWS Fargate

سرب عملاق
MSP
البنية التحتية المدارة لـ Kubernetes بواسطة سرب عملاق

جوجل
الخدمة السحابية الأصلية
محرك حاوية جوجل (GKE)

IBM
الخدمة السحابية الأصلية
خدمة IBM Cloud Kubernetes

Microsoft
الخدمة السحابية الأصلية
خدمة Azure Kubernetes، نسيج خدمة Azure

Oracle
الخدمة السحابية الأصلية
محرك حاوية OCI لـ Kubernetes

Platform9
MSP
Kubernetes المُدارة

ريد هات
الخدمة المستضافة
OpenShift مخصص وعبر الإنترنت

في إم وير
الخدمة المستضافة
Cloud PKS (إصدار تجريبي)

حلول Mail.ru السحابية*
الخدمة السحابية الأصلية
حاويات Mail.ru السحابية

* لن نخفي ذلك، أضفنا أنفسنا هنا أثناء الترجمة :)

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

توصيات جارتنر:

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

بعض النصائح لاختيار موفر Kubernetes aaS من مدونة Replex:

  1. يجدر البحث عن التوزيعات التي تدعم التوفر العالي خارج الصندوق. يتضمن ذلك دعم العديد من البنى الرئيسية والمكونات المتوفرة بشكل كبير والنسخ الاحتياطي والاسترداد.
  2. لضمان إمكانية التنقل في بيئات Kubernetes الخاصة بك، من الأفضل اختيار موفري الخدمات السحابية الذين يدعمون نطاقًا واسعًا من نماذج النشر، بدءًا من نماذج النشر المحلية وحتى الهجينة وحتى السحابية المتعددة. 
  3. يجب أيضًا تقييم عروض الموفرين بناءً على سهولة الإعداد والتثبيت وإنشاء المجموعة، بالإضافة إلى التحديثات والمراقبة واستكشاف الأخطاء وإصلاحها. الشرط الأساسي هو دعم تحديثات المجموعة المؤتمتة بالكامل دون توقف. يجب أن يسمح لك الحل الذي تختاره أيضًا بتشغيل التحديثات يدويًا. 
  4. تعد إدارة الهوية والوصول أمرًا مهمًا من منظور الأمان والحوكمة. تأكد من أن توزيع Kubernetes الذي تختاره يدعم التكامل مع أدوات المصادقة والترخيص التي تستخدمها داخليًا. تعد RBAC والتحكم في الوصول الدقيق أيضًا من مجموعات الميزات المهمة.
  5. يجب أن يحتوي التوزيع الذي تختاره إما على حل شبكات أصلي محدد بالبرمجيات يغطي نطاقًا واسعًا من التطبيقات المختلفة أو متطلبات البنية التحتية، أو يدعم أحد تطبيقات الشبكات الشائعة المستندة إلى CNI، بما في ذلك Flannel، أو Calico، أو kube-router، أو OVN.

أصبح إدخال الحاويات في الإنتاج هو الاتجاه الرئيسي، كما يتضح من نتائج المسح الذي أجري جلسات جارتنر بشأن البنية التحتية والعمليات واستراتيجيات السحابة (IOCS) في ديسمبر 2018:

أفضل الممارسات وأفضل الممارسات لتشغيل الحاويات و Kubernetes في بيئات الإنتاج
كما ترون، 27% من المشاركين يستخدمون الحاويات بالفعل في عملهم، و63% يخططون للقيام بذلك.

В استطلاع Portworx وAqua Security وأفاد 24% من المشاركين باستثمار أكثر من نصف مليون دولار سنوياً في تقنيات الحاويات، كما أن 17% من المشاركين أنفقوا أكثر من مليون دولار سنوياً عليها. 

مقال من إعداد فريق المنصة السحابية حلول سحابة Mail.ru.

ماذا تقرأ عن الموضوع:

  1. أفضل ممارسات DevOps: تقرير DORA.
  2. Kubernetes بروح القرصنة مع نموذج للتنفيذ.
  3. 25 أداة مفيدة لنشر واعتماد Kubernetes.

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster