ممارسات هندسة البرمجيات المستدامة في خدمة Azure Kubernetes (AKS)

مبادئ هندسة البرمجيات المستدامة هي مجموعة من الكفاءات لمساعدتك في تحديد وبناء وتشغيل التطبيقات المستدامة. الهدف العام هو تقليل البصمة الكربونية في كل جانب من جوانب التطبيق الخاص بك. تتوافق إرشادات Azure Well-Architected Framework للاستدامة مع مبادئ هندسة البرمجيات المستدامة من مؤسسة البرمجيات الخضراء وتوفر نظرة عامة على مبادئ هندسة البرمجيات المستدامة.

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

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

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

المتطلبات الأساسية

  • يمكن أن يساعدك فهم إرشادات استدامة إطار العمل المصمم جيدا على إنتاج بنية سحابية عالية الجودة ومستقرة وفعالة. نوصي بالبدء بقراءة المزيد حول أحمال العمل المستدامة ومراجعة حمل العمل الخاص بك باستخدام تقييم Microsoft Azure Well-Architected Review.
  • من الأهمية بمكان أن يكون لديك متطلبات عمل محددة بوضوح عند إنشاء التطبيقات، حيث قد يكون لها تأثير مباشر على كل من بنيات وتكوينات نظام المجموعة وأحمال العمل. عند إنشاء التطبيقات الموجودة أو تحديثها، راجع مجالات تصميم استدامة إطار العمل المصمم جيدا، جنبا إلى جنب مع دورة الحياة الشاملة للتطبيق الخاص بك.

فهم نموذج المسؤولية المشتركة

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

تعرف على المزيد حول نموذج المسؤولية المشتركة للاستدامة.

مبادئ التصميم

  • كفاءة الكربون: إرسال أقل كمية ممكنة من الكربون.

    تطبيق السحابة الفعال للكربون هو أحد التطبيقات المحسنة، ونقطة البداية هي تحسين التكلفة.

  • كفاءة الطاقة: استخدم أقل قدر ممكن من الطاقة.

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

  • كفاءة الأجهزة: استخدم أقل قدر ممكن من الكربون المضمن.

    هناك نهجان رئيسيان لكفاءة الأجهزة:

    • بالنسبة لأجهزة المستخدم النهائي، فإنه يوسع عمر الأجهزة.
    • بالنسبة إلى حوسبة السحابة، فإنها تزيد من استخدام الموارد.
  • الوعي بالكربون: افعل المزيد عندما تكون الكهرباء أكثر نظافة وتفعل أقل عندما تكون الكهرباء أكثر قذارة.

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

أنماط التصميم وممارساته

قبل مراجعة التوصيات التفصيلية في كل مجال من مجالات التصميم، نوصيك بمراعاة أنماط التصميم التالية بعناية لبناء أحمال عمل مستدامة على AKS:

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

تصميم التطبيق

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

تصميم للتحجيم المستقل للمكونات المنطقية

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

تصميم التحجيم المستند إلى الحدث

عند توسيع نطاق حمل العمل استنادا إلى مقاييس الأعمال ذات الصلة، مثل طلبات HTTP وطول قائمة الانتظار والأحداث السحابية، يمكنك المساعدة في تقليل استخدام الموارد وانبعاثات الكربون.

  • استخدم Keda عند إنشاء تطبيقات تستند إلى الحدث للسماح بالتحجيم لأسفل إلى الصفر عندما لا يكون هناك طلب.

الهدف من التصميم عديم الحالة

تؤدي إزالة الحالة من التصميم إلى تقليل البيانات الموجودة في الذاكرة أو على القرص التي يتطلبها حمل العمل لتعمل.

  • ضع في اعتبارك التصميم عديم الحالة لتقليل تحميل الشبكة غير الضرورية ومعالجة البيانات وموارد الحوسبة.

النظام الأساسي للتطبيق‬

استكشف هذا القسم لمعرفة كيفية اتخاذ قرارات أكثر استنارة بشأن الاستدامة.

تمكين التحديثات التلقائية لنظام المجموعة والعقدة

يتجنب نظام المجموعة المحدث مشكلات الأداء غير الضرورية ويضمن لك الاستفادة من أحدث تحسينات الأداء وتحسينات الحساب.

تثبيت الوظائف الإضافية والملحقات المدعومة

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

  • تثبيت KEDA كوظيفة إضافية.
  • تثبيت GitOps وDpr كملحقات.

تعبئة حمل العمل الخاص بك في حاويات حيثما ينطبق ذلك

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

  • استخدم مسودة لتبسيط تعبئة التطبيقات في حاويات عن طريق إنشاء ملفات Dockerfiles وبيانات Kubernetes.

استخدام أجهزة فعالة في استخدام الطاقة

تم تصميم معالجات السحابة الأصلية من Ampere بشكل فريد لتلبية كل من الأداء العالي واحتياجات كفاءة الطاقة للسحابة.

  • تقييم ما إذا كانت العقد مع المعالجات المستندة إلى Ampere Altra Arm خيارا جيدا لأحمال العمل الخاصة بك.

مطابقة احتياجات قابلية التوسع واستخدام إمكانات التحجيم التلقائي والاندفاع

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

إيقاف تشغيل أحمال العمل وتجمعات العقد خارج ساعات العمل

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

الإجراءات التشغيلية

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

حذف الموارد غير المستخدمة

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

  • استخدم Azure Advisor لتحديد الموارد غير المستخدمة.
  • استخدم ImageCleaner لتنظيف الصور القديمة وإزالة منطقة الخطر في مجموعتك.

ضع علامة على مواردك

يعد الحصول على المعلومات والرؤى الصحيحة في الوقت المناسب أمرا مهما لإنتاج تقارير حول الأداء واستخدام الموارد.

التخزين

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

تحسين استخدام التخزين

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

الشبكة والاتصال

استكشف هذا القسم لمعرفة كيفية تحسين كفاءة الشبكة وتحسينها للحد من انبعاثات الكربون غير الضرورية.

اختيار منطقة الأقرب إلى المستخدمين

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

  • راجع متطلبات التطبيق والمناطق الجغرافية ل Azure لاختيار منطقة أقرب إلى المكان الذي تنتقل إليه معظم حزم الشبكة.

تقليل اجتياز الشبكة بين العقد

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

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

تقييم باستخدام شبكة خدمة

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

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

تحسين مجموعة السجلات

يمكن أن يؤدي إرسال جميع السجلات وتخزينها من جميع المصادر الممكنة (أحمال العمل والخدمات والتشخيص ونشاط النظام الأساسي) إلى زيادة التخزين وحركة مرور الشبكة، ما يؤثر على التكاليف وانبعاثات الكربون.

تخزين البيانات الثابتة مؤقتا

يعد استخدام شبكة تسليم المحتوى (CDN) نهجا مستداما لتحسين نسبة استخدام الشبكة لأنه يقلل من حركة البيانات عبر الشبكة. فهو يقلل من زمن الانتقال من خلال تخزين البيانات الثابتة المقروءة بشكل متكرر بالقرب من المستخدمين، ويساعد على تقليل نسبة استخدام الشبكة وتحميل الخادم.

الأمان

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

تقييم ما إذا كان يجب استخدام إنهاء TLS

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

  • راجع المعلومات حول إنهاء TLS عند استخدام Application Gateway أو Azure Front Door. حدد ما إذا كان يمكنك إنهاء TLS في بوابة الحدود الخاصة بك، ومتابعة عدم TLS إلى موازن تحميل حمل العمل وحمل العمل.

استخدام أدوات وعناصر تحكم أمان الشبكة الأصلية على السحابة

تساعد Azure Front Door وApplication Gateway في إدارة نسبة استخدام الشبكة من تطبيقات الويب، بينما يوفر Azure Web Application Firewall الحماية ضد هجمات OWASP الأعلى 10 وتحميل الروبوتات السيئة في حافة الشبكة. تساعد هذه الإمكانات في إزالة نقل البيانات غير الضروري وتقليل العبء على البنية الأساسية السحابية ذات النطاق الترددي المنخفض ومتطلبات البنية الأساسية الأقل.

مسح ضوئي بحثاً عن الثغرات الأمنية

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

  • اتبع التوصيات من Microsoft Defender for Cloud.
  • قم بتشغيل أدوات فحص الثغرات الأمنية التلقائية، مثل Defender for Containers، لتجنب استخدام الموارد غير الضرورية. تساعد هذه الأدوات في تحديد الثغرات الأمنية في صورك وتقليل نافذة الفرصة للمهاجمين.

الخطوات التالية