ما هي خدمة مش؟

ومرحبا من جديد! .. تحسبا لانطلاق الدورة "مهندس برمجيات" لقد أعددنا ترجمة أخرى مفيدة.

ما هي خدمة مش؟

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

Istio ، من Google و IBM و Lyft ، هو حاليًا أشهر بنية Service Mesh. و Kubernetes ، الذي طورته Google في الأصل ، هو الآن إطار عمل تنسيق الحاويات الوحيد الذي يدعمه Istio. يحاول البائعون إنشاء إصدارات مدعومة تجاريًا من Istio. أتساءل ما الجديد الذي يمكنهم تقديمه لمشروع مفتوح المصدر.

ومع ذلك ، فإن Istio ليس هو الخيار الوحيد ، حيث يتم تطوير تطبيقات Service Mesh الأخرى. نمط sidecar proxy هو التطبيق الأكثر شيوعًا ، كما يتضح من مشاريع Buoyant و HashiCorp و Solo.io وغيرها. هناك أيضًا بنى بديلة: مجموعة أدوات تقنية Netflix هي إحدى الطرق التي يتم فيها تنفيذ وظيفة Service Mesh من خلال مكتبات Ribbon و Hysterix و Eureka و Archaius ، بالإضافة إلى الأنظمة الأساسية مثل Azure Service Fabric.

تمتلك Service Mesh أيضًا مصطلحاتها الخاصة لمكونات الخدمة ووظائفها:

  • إطار تنظيم الحاويات. مع إضافة المزيد والمزيد من الحاويات إلى البنية التحتية للتطبيق ، هناك حاجة إلى أداة منفصلة لمراقبة وإدارة الحاويات - إطار عمل تنسيق الحاوية. لقد اتخذت Kubernetes هذا المكانة بإحكام ، لدرجة أن منافسيها الرئيسيين Docker Swarm و Mesosphere DC / OS يقدمون التكامل مع Kubernetes كبديل.
  • الخدمات والحالات (Kubernetes Pods). المثيل هو نسخة واحدة قيد التشغيل من خدمة مصغرة. في بعض الأحيان يكون المثال الواحد عبارة عن حاوية واحدة. في Kubernetes ، يتكون المثيل من مجموعة صغيرة من الحاويات المستقلة تسمى Pod. نادرًا ما يصل العملاء إلى مثيل أو حجرة صغيرة مباشرة ، وغالبًا ما يصلون إلى خدمة ، وهي مجموعة من المثيلات أو البودات (النسخ المتماثلة) المتطابقة ، والقابلة للتطوير والتي تتسامح مع الأخطاء.
  • وكيل Sidecar. يعمل Sidecar Proxy مع مثيل واحد أو جراب. الغرض من Sidecar Proxy هو توجيه حركة المرور أو الوكيل القادمة من الحاوية التي يعمل بها ، وإعادة حركة المرور. يتواصل Sidecar مع وكلاء Sidecar الآخرين ويتم التحكم فيه بواسطة إطار عمل تنسيق. تستخدم العديد من تطبيقات Service Mesh وكيل Sidecar لاعتراض وإدارة كل حركة المرور داخل وخارج مثيل أو منصة.
  • اكتشاف الخدمة. عندما يحتاج مثيل إلى التفاعل مع خدمة أخرى ، فإنه يحتاج إلى إيجاد (اكتشاف) مثيل سليم ومتاح للخدمة الأخرى. عادةً ما يقوم المثيل بإجراء عمليات بحث عن DNS. يحتفظ إطار عمل تزامن الحاوية بقائمة من المثيلات الجاهزة لتلقي الاستعلامات ويوفر واجهة لاستعلامات DNS.
  • توزيع الحمل. توفر معظم أطر تنظيم الحاويات موازنة للحمل في الطبقة 4 (النقل). تنفذ شبكة الخدمة موازنة أحمال أكثر تطوراً للطبقة 7 (التطبيق) ، غنية بالخوارزميات وأكثر كفاءة من حيث إدارة حركة المرور. يمكن تغيير إعدادات موازنة التحميل باستخدام واجهة برمجة التطبيقات ، مما يسمح لك بتنظيم عملية نشر باللونين الأزرق والأخضر أو ​​نشر الكناري.
  • التشفير. يمكن لـ Service Mesh تشفير الطلبات والاستجابات وفك تشفيرها ، وإزالة هذا العبء من الخدمات. يمكن لـ Service Mesh أيضًا تحسين الأداء من خلال تحديد أولويات الاتصالات المستمرة الحالية أو إعادة استخدامها ، مما يقلل من الحاجة إلى عمليات حسابية باهظة الثمن لإنشاء اتصالات جديدة. التطبيق الأكثر شيوعًا لتشفير حركة المرور هو TLS المتبادلة (mTLS)حيث تقوم البنية التحتية للمفتاح العام (PKI) بإنشاء الشهادات والمفاتيح وتوزيعها للاستخدام بواسطة وكيل Sidecar.
  • المصادقة والتخويل. يمكن لـ Service Mesh تفويض ومصادقة الطلبات المقدمة من خارج التطبيق أو داخله ، وإرسال الطلبات التي تم التحقق من صحتها فقط إلى الطبعات.
  • دعم نمط إيقاف التشغيل التلقائي. يدعم شبكة الخدمة نمط الاغلاق التلقائي، الذي يعزل الحالات غير الصحية ثم يعيدها تدريجياً إلى مجموعة الحالات الصحية حسب الحاجة.

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

ما هي خدمة مش؟
يوزع مستوى التحكم في شبكة الخدمة التكوين بين وكيل Sidecar ومستوى البيانات.

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

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

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

وحدات متجانسة معيارية و DDD

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

إضافة تعليق