Service Mesh
هنتكلم فى مقالنا هذا عن اداه مهمه جدا مع ال Microservice and Container Technology
هى يمكن تكون غريبه ومش مألوفه وصعبه بعض الشئ ومن ناحيه تانيه يمكن الغالبيه لم يصل لمستوى انه يستخدمها او يحتاجها فى الواقع
لذلك يمكن يكون مقالنا هذا سابق لوقته بعض الشئ ويمكن تكون مستخدم لل Container Technology ولم تسمع او تستخدم هذا الاداه حتى الان لانك لم تصل للحجم او المستوى الذى نحتاج فيه ان نستخدمها
لذلك اعتبر المقاله دة مرجع وتذكر وافهم بشكل مبدئى هذة التكنولوجيا حتى تحتاجها فى الواقع فهى مسأله وقت فقط
فكرة ال Service Mesh
كما نعرف اننا عندما نقوم بعمل APP بال Container ففى اغلب الاحوال اننا بنقوم بعمل العديد من النسخ منه تعمل فى نفس الوقت لاسباب ال HA, LB وغيرها
وممكن ان هذا ال APP يعمل مع بعض ال another APP or Database فبيكون عندنا App Stack وهى عبارة عن مجموعه من التطبيقات تعمل مع بعضها وكل تطبيق منهم له عدد من النسخ تعمل فى نفس الوقت
هذا ياتى دور ال Service Mesh وهى انها بتقوم بعمل ربط وتحكم وادارة العلاقه بين ال هذة ال APP ولان العلاقه هنا متشعبه بمعنى ان كل App ممكن يتكون من 20 Containers هما عليهم نفس ال App لكن التحكم هنا بيقدر يعطينى انى اتصل باى واحد فيهم
وانه فى حاله لو اللى بتصل بيه دة توقع اتصل بواحد تانى ويكون الاتصال مشفر ب SSL واتحكم فى الترافيك بينا وغيرها من الادوات التى بتحكم بيها وبنظم العلاقه بين بعض ال App المختلفه والتى تتكون من العديد من ال Container
يمكن فى المؤسسات والشركات الصغير او فى الاحجام الصغيره من ال APPs لا احتاج الى هذا المستوى من التحكم
لكن مع كبر حجم التطبيقات والعلاقات المتشعبه بينهم وبين بعض بحتاج هنا ال Service Mesh
زى ما انت شايف فى الصورة الموجودة فى الاسفل تنظيم العلاقه بين التطبيقات وتحديدا بين ال Containers بينها وبين بعض
فوائد ال Services Mesh
طبعا هنا عدة فوائد تعطيها لنا ال Service Mesh
Encryption traffic
Reties when connection Fails with container
Load balance between Container Apps
Tracing the logs and connections between container
Access Control between Container
كل هذه الفوائد والمميزات لا نستطيع ان نتحكم فيها بين ال Container وبدون ال Service Mesh بيكون الاتصال بينهم بيتم بشكل عشوائى وبدون تحكم مننا ولا يمكن مراقبته
افضل الشركات التى تقدم ادوات ال Service Mesh
هناك العديد من التطبيقات التى تقوم بدور ال Service Mesh واغلبها مجانى و Opensource واشهرهم ال Linkerd and Istio
Linkerd يعتبر هو التطبيق الرسمى الذى ترعاه مؤسسه ال CNCF ويوجد نسخه منه بمقابل مادى اللدعم الفنى
لكن فى الحقيقه الاتجاه والدعم الاكبر يأتى ل Istio لان كل الشركات الكبيرة بتدعمه بشدة وعلى راسهم Google, VMware, IBM وغيرها – فبرائى البسيط ال Istio هو الذى سوف يكون له مستقبل افضل من Linkerd
وهو مجانى تماما
طبعا هناك اخرين يقدوم نفس الخدمه مثل Vamp and Netflix OSS Zuul وهم ايضا Opensource لكن ليس لهم نفس الدعم مثل الاخرين
يمكن مشاهدة هذا الفيديو للتوضيح اكتر وان شاء الله سوف نقوم بعمل فيديو على ال Light Board نشرح فيه الموضوع بشكل افضل
الخطوه القادمة:
لو فهمت الفكرة والفوائد من ال Service Mesh فلا يوجد فعليا مانع سواء Technical or Financial لبدء تطبيقه واستخدامه لانه يعمل مع جميع الاحجام وايضا مجانى
ولن يضرك بشئ حاليا او مستقبلا انك لو استخدمته حتى ولو كانت حجم استخدامك لل Container قليل ويمكن لست بحاجه ملحه له حاليا لكن فى النهايه هو لن يضر لو استخدمته وبالعكس هو سوف يعطيك خبرة جيدة بالاضافه انه هيساعدك بشكل كبير فى عمليات ال Troubleshooting
فالطريق مفتوح لك لاستخدامه فى اى وقت من الان
للمزيد من المعلومات:
https://www.nginx.com/blog/what-is-a-service-mesh/
https://www.zdnet.com/article/what-is-a-service-mesh-and-why-would-it-matter-so-much-now/
https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56