Backyards - شبكة خدمة آلية على قمة بنية تحتية متعددة السحابية ومختلطة



اختبار Backyards على مجموعات الخاصة بك: curl https://getbackyards.sh | sh && backyards install -a --run-demo curl https://getbackyards.sh | sh && backyards install -a --run-demo . إذا كانت مهتمة ، راجع تفاصيل الإصدار الأخير .

في يونيو ، قدمنا Backyards ، "شبكة خدمة" آلية أعلى مشغل Istio لدينا. إنه يبسط إدارة شبكة الخدمة بشكل كبير في بنية تحتية متعددة السحابية ومختلطة. تم دمج Backyards في نظام إدارة حاويات Pipeline على Banzai Cloud ، ولكنه متاح أيضًا كمنتج مستقل . بالطبع ، يوفر التكامل مع Pipeline العديد من الفوائد المحددة (مثل إدارة التطبيقات على السحب المتعددة ) ، لكن Backyards يعمل على أي تثبيت Kubernetes.

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

في هذه المقالة ، سنلقي نظرة فاحصة على هذه الميزة - شبكة الخدمة الآلية متعددة المجموعات .

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

حافز


تدخل الأنظمة الهجينة والسحابية المتعددة بسرعة إلى الحياة اليومية للمؤسسات. ازداد الاهتمام واتخاذ القرارات كثيرًا منذ أن قدمت Google شركة Anthos في أبريل من هذا العام.

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

مع نمو الطلب على الحلول المختلطة ومتعددة المجموعات ، بدأنا في التفكير في كيفية تلبية احتياجات عملائنا.

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


الشروط


منذ البداية ، دعمت منصة Pipeline توصيل موفري الخدمات السحابية المختلفين على مستويات مختلفة (المجموعات ، النشرات والخدمات). هذا كان دائما واحدة من أولوياتنا.

في الوقت نفسه ، كنا نعمل بنشاط على Istio. تم إصدار المشغل لأول مرة لتبسيط نشر Istio وإدارته ، ثم استكشاف قدراته متعددة المجموعات. نتيجة لذلك ، أنشأنا Backyards ، وهو منتج تلقائي للبنية التحتية متعددة السحابية والمختلطة ، مدمجة في Pipeline ، مع المشغل مفتوح المصدر Istio.

الفناء الخلفي في خط أنابيب


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

تتيح لك وظيفة تجميع الكتل (مجموعة الكتل) تشكيل مجموعات الكتل ، شريطة أن تختار مجموعة واحدة ككتلة رئيسية. يمكنك بعد ذلك ربطها بوظائف Multi-cluster Deployment ، مثل Multi-cluster Deployment أو Service Mesh .

يتيح لك Multi-cluster Deployment نشر التطبيق في وقت واحد على مجموعات متعددة. لا نركز هنا على هذه الميزة ، ولكن سيتم استخدامها لنشر التطبيق بسهولة على مجموعات متعددة. اقرأ المزيد عنها في هذا المقال .

هذه المقالة سوف نلقي نظرة فاحصة على ميزة Service Mesh . يقوم بتثبيت Istio على الكتلة الرئيسية وينضم تلقائيًا إلى جميع المجموعات في المجموعة باستخدام مشغل Istio . بعد ذلك ، يمكنك الحصول على عرض intercluster لخدماتك ، وشبكة multicluster من وجهة نظر الإدارة لا تختلف عملياً عن مجموعة واحدة التقليدية.

وظائف


إنشاء شبكة خدمة


لنبدأ بإنشاء مجموعة على AWS باستخدام توزيع Kubernetes الخفيف والموزع باستخدام CNCF - PKE . ثم قم بإنشاء شبكة خدمة Istio على هذه المجموعة.

عند إنشاء شبكة خدمة ، يتم أيضًا تشكيل مجموعة كتلة في الخلفية.

بعد بضع ثوان ، يتم تثبيت "الشبكة" وجاهزة للاستخدام.



نشر التطبيق


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

باستخدام وظيفة Multi-cluster Deployment المذكورة أعلاه ، سنقوم بنشر هذا التطبيق من خلال الانتقال إلى علامة تبويب عمليات Multi Cluster Deployments في واجهة المستخدم. أضف المستودع https://charts.banzaicloud.io/gh/spotguidetest إلى خط الأنابيب ، ثم مخطط meshdemo وانقر فوق DEPLOY (لتثبيت جميع المكونات ، تأكد من تعيين جميع القيم على true ).



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

نظرة عامة على شبكة الخدمة


إذا عدت إلى قائمة شبكة الخدمة والنقر فوق زر observe ، ستظهر لوحة التحكم. نظرًا لعدم وجود حركة مرور في تطبيق الاختبار الخاص بنا ، ولا توجد قياسات في النظام ، فلن نتمكن من رؤية أي تصور حتى الآن. تحتوي الواجهة على وظيفة test flight توجه حركة المرور إلى نقاط النهاية المحددة. إذا قمت بالنقر فوق الزر HTTP في الركن الأيمن العلوي ، فيمكنك ملء نموذج يحتوي على معلومات حول نقطة النهاية وإرسال بعض زيارات الاختبار إلى خدماتك. في مثالنا ، يجب أن تذهب حركة المرور إلى خدمة الصفحة الأولى على المنفذ 8080.

بعد بضع ثوانٍ ، سيظهر جدول خدماتك. تمثل العقد على الخدمات أو أحمال العمل ، وتمثل الأسهم اتصالات الشبكة بين الخدمات المختلفة. يعتمد الرسم البياني على مقاييس Istio التي تأتي من Prometheus.



إنشاء مجموعات إضافية


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



تمديد شبكة الخدمة


دعنا نعود إلى قائمة شبكة الخدمة ، اضغط على زر RESIZE MESH ، ثم ADD NEW CLUSTER . حدد الكتل التي تم إنشاؤها مسبقًا واضغط على زر ADD . هذا كل شيء.



قد يستغرق التوسع عدة دقائق: يجب أن تتصل كل كتلة بالوصول إلى الحالة HEALTHY .

نشر تطبيق في مجموعات متعددة


الآن لدينا شبكة خدمة على عدة مجموعات ، وقد تم تنشيط وظيفة Multi-cluster Deployment في Pipeline مسبقًا ، لذلك من السهل نشر خدماتنا التجريبية الدقيقة على هذه المجموعات. في مخطط Helm الخاص ، يمكنك تشغيل المكونات وإيقافها بسهولة. نظرًا لأن وظيفة Multi-cluster Deployment تدعم إعادة تعريف المعلمة لكل مجموعة ، فأنت تحتاج فقط إلى تحرير Multi-cluster Deployment وتحديد المكونات التي نريد تشغيلها في أي مجموعة.

بالنسبة للنشر متعدد المجموعات ، قمنا بتغيير الإعدادات بهذه الطريقة:

PKE AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true




نظرة عامة على شبكة الخدمة عبر مجموعات متعددة


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

مدهش ، أليس كذلك؟



تكوين NRA


قبل الانتهاء من هذه المقالة ، ألق نظرة على الإعداد الأخير: Horizontal Pod Autoscaler . في صفحة Single-cluster Deployment في Pipeline ، يمكنك بسهولة تكوين HPA لأي نشر (في حالتنا ، analytics-v1 ).



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



ملخص


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

جربه مجانًا !

Source: https://habr.com/ru/post/ar479742/


All Articles