أحدث الأخبار التقنية، مدعومة برؤى خبراء
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
شبكة الخدمات هي طبقة برمجية في بنية التطبيقات الحديثة تُدير الاتصال بين الخدمات المصغّرة، مما يمكّن التطبيقات من العمل بكفاءة. وتوفّر شبكات الخدمات عددًا من القدرات الأساسية، مثل الاتصال بين الخدمات، واكتشاف الخدمات، وموازنة الأحمال، والمصادقة.
ومن أكبر التحديات التي يواجهها مطوّرو التطبيقات اليوم مشكلة قابلية التوسع. فمع زيادة عدد مستخدمي التطبيق، يصبح من الصعب على مهندسي عمليات التطوير (وهي منهجية تطوير برمجيات تُسرّع تسليم التطبيقات عبر الأتمتة) مراقبة أداء الخدمات. وتقدّم شبكة الخدمات ميزات رئيسية تساعد في مراقبة وإدارة الخدمات الحساسة، مثل التسجيل، والتتبّع، والتحكّم في حركة البيانات.
ومع أن التطبيقات باتت عنصرًا أساسيًا في التحوّل الرقمي، فقد ازدادت أهمية شبكات الخدمات بدرجة كبيرة. واليوم، تُعد شبكات الخدمات عنصرًا محوريًا في تشغيل بعض أكثر التقنيات تقدّمًا في عالم التطبيقات، بما في ذلك تطبيقات السحابة الأصلية، والخدمات المصغّرة، والحاويات.
ووفقًا لمجلة Forbes، فإن 70% من المؤسسات كانت تُشغّل شبكة خدمات بالفعل في عام 2022، بينما كانت 19% أخرى في مرحلة التقييم.1
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
الخدمات المصغّرة، أو بنية الخدمات المصغّرة، هي نهج بنائي سحابي يُبنى فيه التطبيق من عدد كبير من العناصر أوالخدمات الصغيرة والمستقلة. ويتيح هذا النهج للمطورين تحديث التعليمات البرمجية بسهولة أكبر، وإضافة الميزات أو إزالتها دون التأثير في بقية التطبيق، مما يؤدي إلى مستوى عالٍ من قابلية التوسع.
وتُعد شبكات الخدمات جزءًا أساسيًا في بنية الخدمات المصغّرة، إذ توفر طبقة بنية تحتية قابلة للتكوين بدرجة عالية، تتيح لجميع الخدمات داخل التطبيق الاتصال وتبادل المعلومات بسهولة. وبالإضافة إلى شبكة الخدمات، غالبًا ما تُستخدم بنية الخدمات المصغّرة جنبًا إلى جنب مع تقنية الحاويات ومنصتها الأكثر انتشارًا: Kubernetes.
أصبحت تقنية الحاويات، إلى جانب منصّة تنسيق الحاويات الأكثر شيوعًا Kubernetes، عنصرًا لا غنى عنه في وظائف شبكة الخدمات، نظرًا لدورها في تمكين المطوّرين من إدارة التطبيقات المعقّدة المبنية على الخدمات المصغّرة.
والحاويات هي وحدات برمجية قابلة للتنفيذ تُجمّع تعليمات التطبيق البرمجية مع مكتباته واعتمادياته، بما يتيح تشغيله في أي بيئة حوسبة. ومع انتشار الحاويات في بنية التطبيقات الحديثة، أصبحت إدارة مجموعات الحاويات الكبيرة تحديًا متسارعًا.
وهنا يظهر دور Kubernetes، المعروفة أيضًا باسم k8s أو Kube، وهي منصّة تنسيق حاويات تُعد من أكثر حلول التنسيق انتشارًا في السوق اليوم. وتُدار مجموعات Kubernetes، وهي مجموعات من العُقد التي تمثّل أجهزة فعلية وأجهزة افتراضية (VMs)، من خلال مستوى التحكم.
ومن الجوانب المهمة في وظائف شبكة الخدمات طريقة إدارة الوصول إلى الخدمات داخل مجموعة معينة، وهي عملية تُعرف باسم إدارة نقاط الدخول (ingress).
وتتطلّب التطبيقات الحديثة نشر عدد كبير من أحمال التشغيل أو مهام الحوسبة والعمليات في الوقت نفسه. وتتيح بنية الخدمات المُصغَّرة للمطوّرين إنشاء كل تطبيق كمجموعة من الخدمات الصغيرة المستقلة التي يسهل إدارتها.
لكن لكي تعمل تعليمات التطبيق البرمجية بشكل صحيح، تحتاج الخدمات المُصغَّرة إلى التواصل بسرعة ودقة، وهنا تبرز أهمية بنية شبكة الخدمات. وقد صُممت شبكات الخدمات لتمنح المطوّرين تحكمًا أكبر في الاتصال بين الخدمات داخل التطبيق.
وفي جوهرها، تعتمد شبكات الخدمات على نوع من الاتصال يُعرف باسم الاتصال المستند إلى الوكيل، وذلك لتعزيز قابلية الإدارة والتحكم في التطبيقات القائمة على الخدمات المُصغَّرة. ويتميّز الاتصال المستند إلى الوكيل بخوادم وكيلة تعمل كوسطاء بين الخدمة المُصغَّرة وشبكة المؤسسة، مما يسمح بتوجيه حركة البيانات من الخدمة وإليها عبر هذه الوكلاء. تُعد هذه القدرة، المعروفة باسم اتصال وكيل الشبكة، أساسية للحفاظ على قابلية الإدارة، وقابلية الملاحظة، والأمان عبر العديد من التطبيقات.
وبالإضافة إلى الوكلاء، تعتمد بنية شبكة الخدمات على عنصرين رئيسيين يمكّنانها من العمل: مستوى التحكم ومستوى البيانات.
ومستوى التحكم هو الجزء من شبكة الكمبيوتر المسؤول عن كيفية توجيه البيانات بين المستخدمين والأجهزة (المعروفة أيضًا باسم العقد). ويستخدم مستوى التحكم قواعد وبروتوكولات التوجيه المعرَّفة بخوارزميات تُحدّد أفضل مسار لانتقال البيانات عبر الشبكة.
وفي شبكة الخدمات، يتضمّن مستوى التحكم وكلاء مصمّمين خصيصًا يُطلق عليهم “لوكلاء الجانبيون، والذين يقومون بعزل وظائف معينة، مثل المراقبة والأمان، لتحسين كفاءتها. وعندما تحتاج خدمة ما إلى التواصل مع خدمة أخرى داخل شبكة الخدمات، يقوم الوكيل الجانبي باعتراض الطلب وإنشاء قناة آمنة ومشفّرة لمرور الطلب عبرها.
ويمكّن مستوى البيانات—المعروف أيضًا باسم مستوى إعادة التوجيه، من تمرير البيانات عبر الشبكة باستخدام أجهزة مثل الموجّهات والمبدّلات.ويستخدم مستوى البيانات الوكلاء الجانبيين لإدارة المراسلة بين الخدمات، إلى جانب وظائف محورية مثل فصل الدوائر وإعادة محاولة الطلبات. وهو أيضًا المستوى الذي تُنفَّذ فيه القدرات الأساسية مثل موازنة الأحمال، واكتشاف الخدمات، والتوجيه.
وبالإضافة إلى مستوى البيانات ومستوى التحكم، تُعد بوابة واجهة برمجة التطبيقات (API gateway) جزءًا مهمًا في بنية الخدمات المُصغَّرة ومرتبطة ارتباطًا وثيقًا بوظائف شبكة الخدمات.
فواجهات برمجة التطبيقات (APIs) هي بروتوكولات تُتيح لتطبيقات البرامج التواصل وتبادل البيانات. وتعمل بوابات واجهة API وسيطًا بين عملاء واجهات برمجة التطبيقات—مثل REST API الشائعة التي تساعد المطورين في بناء التطبيقات—وبين الخدمات الخلفية الموجودة على خادم.
تتشابه بوابات واجهات برمجة التطبيقات مع شبكات الخدمات في أنها تُسهِم كلتاهما في تطوير التطبيقات بكفاءة أعلى. ومع ذلك، ففي حين تتحكم بوابة واجهة برمجة التطبيقات في الوصول إلى واجهات البرمجة، تعمل شبكة الخدمات على ربط الخدمات المُصغَّرة داخل التطبيق. وغالبًا ما تُنشَر شبكات الخدمات وبوابات واجهات برمجة التطبيقات معًا لزيادة المرونة وقابلية الملاحظة داخل النظام البنائي للتطبيق.
وتوفّر شبكات الخدمات—إلى جانب بنية الخدمات المُصغَّرة التي تمكّنها—عددًا من الفوائد الأساسية للمؤسسات. وفيما يلي بعض الفوائد الأكثر شيوعًا:
توفر شبكة الخدمات قابلية ملاحظة متكاملة تمنح فهمًا أعمق لحالة النظام المعقّد عبر بنية الخدمات المُصغَّرة بالكامل. وهذا يمكّن المطوّرين من مراقبة مقاييس مهمة مثل الاعتماديات، وزمن الانتقال، ومعدلات الأخطاء—وهي عناصر ضرورية لفهم كيفية عمل التطبيق فعليًا.
تساعد قابلية الملاحظة أيضًا في استكشاف الأخطاء وإصلاحها وتحسين الأداء والقياس عن بعد (تسجيل سلوك النظام) واستكشاف الأخطاء وإصلاحها من خلال منح المطورين رؤية شاملة وغير معوقة للعمليات الداخلية للنظام البنائي للخدمات المُصغَّرة.
لكي تعمل التطبيقات بشكل صحيح، يحتاج المطورون ومسؤولو التطبيقات إلى التحكم في كيفية التواصل بين الخدمات داخل التطبيق. تعمل شبكة الخدمات على زيادة قدرات الحوكمة للمؤسسات التي تنشر الخدمات المصغّرة - على سبيل المثال، الطريقة التي تطبق بها الفرق متطلبات الأمان والامتثال في القطاعات الخاضعة للتنظيم الصارم.
توفر شبكات الخدمات طبقة بنية تحتية مخصّصة مصمّمة للتعامل مع متطلبات الاتصال بين الخدمات في التطبيقات الموزّعة—أي التطبيقات التي تعمل في وقت واحد على أكثر من كمبيوتر متصل.
تساعد شبكات الخدمة على ضمان الاتصال الآمن بين الخدمات من خلال ميزات مثل تشفير طبقة النقل المتبادلة (mTLS) والمصادقة. وتسهم مصادقة mTLS في ضمان أن حركة البيانات داخل التطبيق آمنة وموثوقة في الاتجاهين بين العميل والخادم.
كما يوفّر تشفير mTLS سرية بيانات عالية عبر تشفير المعلومات المُتبادلة في الاتصال بين الخدمات. ويسمح أيضًا للمسؤولين بفرض سياسات الترخيص، مثل تحديد الوصول إلى نقاط نهاية معيّنة، وهي عملية تُعرف باسم أمن نقطة النهاية.
تتمتّع شبكات الخدمات بقدرة تُعرف باسم الاكتشاف التلقائي للخدمات، وهي قدرة تساعد في تقليل أحمال التشغيل المرتبطة بإدارة نقاط النهاية—وهي المواضع داخل شبكة الخدمات التي يمكن الوصول من خلالها إلى خدمة مُصغَّرة محددة. ويسمح سجلّ الخدمات للخدمات بالعثور على بعضها البعض والتواصل فيما بينها تلقائيًا، بغضّ النظر عن مواقعها، مما يمكّن المطوّرين من نشر خدمات جديدة بسرعة وسهولة.
وتُعدّ موازنة الأحمال، أي توزيع حركة بيانات الشبكة على عدة خوادم لتحسين أداء التطبيق، إحدى القدرات الأساسية لشبكات الخدمات. ومن خلال الاعتماد على الخوارزميات، تساعد شبكة الخدمات في موازنة أحمال التشغيل بين العُقد، وتحسين الموارد الحوسبية، وضمان التوفر العالي للتطبيق بصورة عامة.
وتوفّر شبكات الخدمات إمكانات متقدمة لإدارة حركة البيانات وتقسيمها، وذلك لتحسين تدفق المعلومات والموارد عبر الشبكة. وعلى الرغم من أن إدارة حركة البيانات وتقسيم حركة البيانات يُستخدمان كلاهما للتحكم في تدفق البيانات على الشبكة، فإن بينهما اختلافًا مهمًّا. تركز إدارة حركة البيانات على التغييرات المنهجية طويلة الأجل في البنية التحتية لتحسين تدفق حركة البيانات، في حين يركز تقسيم حركة البيانات على توزيع الحركة وفق أوزان محددة على الواجهات الخلفية أو إصدارات الخدمات المختلفة.
وتوفر شبكات الخدمات تحكمًا دقيقًا للغاية في التوجيه وسلوك حركة البيانات، مما يسمح بانتقالات أكثر سلاسة عند تحديث التطبيق إلى إصدار برمجي أحدث. فعلى سبيل المثال، في أسلوب النشر الكاناري الشائع، يجري إطلاق نسخة جديدة من التطبيق لمجموعة صغيرة من المستخدمين فقط، بهدف اختبار الميزات والأداء قبل طرحها لبقية المستخدمين.
أما السوق العالمية لمزوّدي شبكات الخدمات، فهي قوية بالفعل وتشهد نموًّا متسارعًا. وبحسب استطلاع حديث، بلغت قيمة السوق 0.22 مليار دولار أمريكي في عام 2023، ومن المتوقع أن ترتفع إلى 5.05 مليار دولار أمريكي بحلول عام 2032، بمعدل نمو سنوي مركّب يبلغ 41.3%.2
في صناعة تنمو بهذه الوتيرة السريعة، يمكن أن يكون اختيار حل شبكة الخدمات المناسب تحدّيًا. وتشمل بعض العوامل الأساسية التي يجب أخذها في الاعتبار: التكلفة، وسهولة التنفيذ، والتوافق مع التقنيات الحالية، والأمن، والأداء، والدعم.
وفيما يلي خمسة من أشهر حلول شبكات الخدمات المتاحة، إلى جانب نظرة عامة مختصرة عمّا يجعل كلًّا منها فريدًا:
تُعد Istio شبكة الخدمات الأكثر شيوعًا. وتجعل مجموعة ميزاتها الكبيرة منها تقنية عالية التكيّف ومناسبة تمامًا لأحمال التشغيل على مستوى المؤسسات. وتشتهر Istio بقدراتها المتقدّمة في إدارة حركة البيانات وخصائص الأمان وقابلية التوسّع، وهي قدرات تعزّزها شبكة واسعة من المساهمين.
وكغيرها من شبكات الخدمات، تُعد Istio مشروعًا مفتوح المصدر، ما يعني أنه تم تطويرها وصيانتها من خلال التعاون المفتوح ومتاحة للاستخدام من قِبل الجميع. كما تعمل بكفاءة مع Kubernetes والعديد من التقنيات المرتبطة بشبكات الخدمات.
تُعد Linkerd أخف وزنًا وأكثر بساطة من Istio، وهي شبكة خدمات بسيطة تُحسّن الأداء مع الحفاظ على زمن انتقال قصير. وتحتوي Linkerd على جميع الوظائف الأساسية المُتوقّعة في شبكات الخدمات، بما في ذلك موازنة الأحمال، واكتشاف الخدمات، والتشفير، وغيرها. ومثل Istio، فإن Linkerd أيضًا مفتوحة المصدر.
تُعد NGINX أكثر شمولًا من معظم شبكات الخدمات الأخرى. فهي تعمل كخادم ويب ووكيل عكسي في الوقت نفسه، مما يمكّنها من دعم مجموعة أوسع من البروتوكولات مقارنة بشبكات الخدمات التقليدية. كما صُممت NGINX لتحقيق أعلى مستويات الأداء والاستقرار، وتستخدمها العديد من مواقع الويب التي يزورها عدد كبير من المستخدمين. ومثل Linkerd وIstio وغيرها من حلول شبكات الخدمات، فهي مفتوحة المصدر.
Consul، التي طوّرتها شركة HashiCorp المتخصّصة في البنية التحتية السحابية، هي شبكة خدمات متعددة السحابات تقدّم العديد من الميزات التي توفرها شبكات الخدمات الشائعة الأخرى. يُعد Consul أحد أكثر حلول شبكات الخدمات مرونة، ويمكن استخدامه على العديد من أنظمة التشغيل المختلفة، مثل Windows وLinux وmacOS وFreeBSD وSolaris. كما أنّ Consul مفتوح المصدر، ويشتهر بمكوّنه الإضافي Prometheus الذي يعزّز قدرات المراقبة.
وصُممت شبكة خدمات AWS خصيصًا للاستخدام مع عمليات النشر على خدمات Amazon Web Services، وتوفّر العديد من الميزات نفسها التي تقدّمها Linkerd وIstio وغيرها، مثل الأمان المُحسّن، وإدارة حركة البيانات، وقابلية الملاحظة. ومع ذلك، فإن AWS ليست مرنة، وتُعد مناسبة فقط للمؤسسات المدمجة بالفعل في بنية AWS.
استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
عزّز مرونة أعمالك ونموها من خلال التحديث المستمر لتطبيقاتك على أي منصة، وذلك باستخدام خدمات الاستشارات السحابية التي نقدمها.
1 Service Mesh As The Bridge To App Modernization, Forbes, March 2023
2 Service Mesh Market Report, Business Research Insights, October 2024