مزايا الخدمات المصغرة وعيوبها

امرأة تقف أمام أجهزة كمبيوتر.

المؤلفون

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

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

تعتمد شركات مثل Netflix وUber وAmazon وSpotify وAirbnb على الخدمات المصغرة للتعامل مع ملايين المستخدمين والمعاملات يوميًا.

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

انتقلت الخدمات المصغرة من كونها توجُّهًا ناشئًا إلى عنصر حيوي في استراتيجية تكنولوجيا المعلومات المؤسسية. وفقًا لتقرير Gartner، تستخدم 74% من المؤسسات التي شملها الاستطلاع بنية الخدمات المصغرة حاليًا، فيما تخطط 23% أخرى لاعتمادها.1

على الرغم من أن الخدمات المصغرة تُضيف المزيد من التعقيد، إلا إن فوائدها تدفع إلى اعتمادها بشكل واسع عبر مختلف الصناعات. يُعَد فهم إيجابيات الخدمات المصغرة وسلبياتها أمرًا ضروريًا لاتخاذ قرارات مستنيرة بشأن اعتمادها.

ما المقصود بالخدمات المصغرة؟

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

يمكن تتبُّع مفهوم الخدمات المصغرة إلى العقد 2010، مع التحول بعيدًا عن البنية الموجَّهة للخدمات (SOA)، وهي نهج يتم فيه بناء تطبيقات الأعمال من عناصر برمجية قابلة لإعادة الاستخدام تُعرَف باسم الخدمات.

تعتمد الخدمات المصغرة على مبادئ البنية الموجَّهة للخدمات (SOA). أصبحت الخدمات أصغر حجمًا وتتمتع الفِرق بمزيد من الاستقلالية ، بينما يتم تقليل التحكم المركزي. اكتسبت هذه البنية شعبية بالتزامن مع ظهور الحوسبة السحابية وتطوير التطبيقات السحابية الأصلية. كانت شركات التكنولوجيا الكبرى مثل Amazon وNetflix من الشركات الرائدة في هذا النهج؛ لأنها كانت بحاجة إلى مزيد من المرونة والقدرة على توسيع أجزاء مختلفة من تطبيقاتها بشكل مستقل.

اليوم، أصبحت الخدمات المصغرة شائعة الاستخدام، مع وجود منظومة متكاملة من الأدوات والمنصات التي تجعلها متاحة للمؤسسات بجميع أحجامها. بلغت قيمة حجم سوق هندسة الخدمات المصغرة عالميًا نحو 376.08 مليار دولار أمريكي في عام 2023. ومن المتوقع أن يصل إلى 523.20 مليار دولار أمريكي بحلول عام 2030، بمعدل نمو سنوي مركَّب (CAGR) يبلغ 4.9% من 2024 حتى 2030.2

IBM DevOps

ما المقصود بعمليات التطوير؟

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

الخدمات المصغرة مقابل البنية الأحادية

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

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

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

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

على الرغم من ذلك، فإن بنية الخدمات المصغرة تُضيف مستوًى أعلى من التعقيد في إدارة الأنظمة الموزعة. تتَّبِع العديد من المؤسسات نهجًا هجينًا، يجمع بين الخدمات المصغرة والأنظمة الأحادية والوظائف دون خادم وأنماط بنائية أخرى، اعتمادًا على ما يتوافق مع أفضل الممارسات لكل حالة استخدام.

كيف تعمل الخدمات المصغرة؟

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

على سبيل المثال، عندما يطلب عميل طعامًا عبر Uber Eats، تعمل عدة خدمات معًا بالتتابع. يعمل النظام على التحقق من توفُّر المطعم ومعالجة الدفع وتعيين سائق التوصيل وإرسال التحديثات للعميل. عادةً ما تُدير بوابة واجهة برمجة التطبيقات (API Gateway) هذا التواصل، حيث تعمل كنقطة دخول واحدة توجِّه الطلبات إلى الخدمات المصغرة المناسبة.

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

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

يقدِّم مزوِّدو السحابة الرئيسيون مثل Microsoft Azure وIBM Cloud وGoogle Cloud Platform جميعهم أدوات شاملة وخدمات مُدارة لنشر الخدمات المصغرة وتنسيقها.

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

مزايا الخدمات المصغرة

تمتد فوائد تكامل بنية الخدمات المصغرة لتشمل جوانب واسعة. ومن أبرز المزايا الرئيسية ما يلي:

  • قابلية التوسع المحسّنة
  • زيادة المرونة وتسريع وقت الوصول إلى السوق.
  • عزل الأعطال ومرونة النظام.
  • فعالية التكلفة
  • تكامل عمليات التطوير والتسليم المستمر.
  • مرونة التكنولوجيا والابتكار. 

قابلية التوسع المحسّنة

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

تستخدم الخدمات المختلفة استراتيجيات متنوعة لتوسيع النطاق وفقًا لمتطلباتها. يقلل هذا النهج المعياري من تكاليف البنية التحتية ويحسِّن كفاءة استخدام الموارد مقارنةً بتوسيع التطبيقات الأحادية بالكامل.

زيادة المرونة وتسريع وقت الوصول إلى السوق

تمتلك الفِرَق الصغيرة المستقلة خدمات محددة شاملة. يختار كل فريق أفضل التقنيات المناسبة لخدمته، ويتحرك بوتيرته الخاصة دون انتظار التنسيق المؤسسي العام أو دورات إعادة النشر.

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

عزل الأعطال ومرونة النظام

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

تُعَد هذه المرونة ضرورية للشركات التي تصل فيها تكلفة التوقف عن العمل إلى آلاف الدولارات في الدقيقة الواحدة. نادرًا ما يتوقف التطبيق بأكمله عن العمل، حتى عند فشل عناصر فردية، لأن الأعطال تظل معزولة.

فعالية التكلفة

توفِّر المؤسسات المال من خلال إدارة الموارد بكفاءة، حيث يتم توسيع الخدمات التي تحتاج إلى سعة أكبر فقط بدلًا من توسيع التطبيقات بالكامل. يمكن لفِرق التطوير تحسين التكاليف باختيار أنسب مجموعة تقنيات للمتطلبات المحددة لكل خدمة، مع تجنُّب تكاليف الإفراط في الهندسة أو تطبيق الحلول المؤسسية بشكل موحَّد. يعمل نموذج الدفع حسب الاستخدام في الخدمات المصغرة السحابية على ربط التكاليف مباشرةً بالاستخدام الفعلي.

وجد استطلاع أجرته IBM حول الخدمات المصغرة في المؤسسات لعام 2021 أن 87% من أكثر من 1,200 من المديرين التنفيذيين في مجال تكنولوجيا المعلومات والتنفيذيين المطورين والمطورين اتفقوا على أن اعتماد الخدمات المصغرة يستحق التكلفة والجهد.

تكامل عمليات التطوير والتسليم المستمر

يمكن لفِرق عمليات التطوير إدخال عناصر جديدة بسلاسة دون التسبب في تعطُّل النظام، وذلك بفضل التشغيل المستقل لكل خدمة.

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

مرونة التكنولوجيا والابتكار

يمكن لكل خدمة مصغرة استخدام تقنيات مختلفة، بما في ذلك لغات البرمجة (مثل Java وPython) وأطر العمل وقواعد البيانات الأنسب لوظيفتها المحددة. لا يتم تقييد الفِرق باستخدام مجموعة تقنيات واحدة للتطبيق بأكمله.

يمكن للمؤسسات تبنّي التقنيات الجديدة تدريجيًا، وتجربة الأدوات الناشئة، والاستفادة من الحلول المتخصصة حيث توفِّر أكبر قيمة. 

عيوب الخدمات المصغرة

على الرغم من الفوائد الكبيرة، هناك بعض السلبيات المرتبطة بالخدمات المصغرة التي يجب على المؤسسات معالجتها:

  • تعقيد الاختبار
  • اعتبارات الأمان
  • تنسيق التواصل
  • إدارة البيانات

تعقيد الاختبار

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

مع نمو الخدمات، تتوسَّع سيناريوهات الاختبار. يتطلب الحفاظ على اتساق بيانات الاختبار وسلامة البيانات عبر الخدمات تخطيطًا استراتيجيًا.

اعتبارات الأمان

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

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

تنسيق التواصل

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

تصبح ميزات مرونة الشبكة مثل منطق إعادة المحاولة، وانتهاء المهلات، وإدارة الأعطال ممارسة معيارية. تتطلب إدارة إصدارات واجهات برمجة التطبيقات تخطيطًا دقيقًا مع تطوُّر الخدمات بشكل مستقل.

إدارة البيانات

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

أفضل ممارسات الخدمات المصغرة

تتطلب بنية الخدمات المصغرة تخطيطًا مدروسًا وتنفيذًا دقيقًا. وتتضمن أفضل الممارسات الاستراتيجيات الرئيسية التالية:

  • تحديد حدود واضحة لكل خدمة.
  • تنفيذ قابلية ملاحظة شاملة.
  • التخطيط للمرونة.
  • أتمتة إدارة البنية التحتية.

تحديد حدود واضحة لكل خدمة.

يجب أن تتوافق حدود الخدمة مع قدرات الأعمال بدلًا من الوظائف التقنية. وتحتاج كل خدمة إلى ملكية واضحة ومسؤولية مركَّزة.

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

تنفيذ قابلية ملاحظة شاملة.

يُعَد تتبُّع العمليات الموزعة والتسجيل المركزي وجمع المقاييس عبر جميع الخدمات أمرًا أساسيًا. عندما تظهر مشكلات، يصبح تصحيح الأخطاء عبر عدة خدمات شبه مستحيل دون توفُّر هذه الرؤية.

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

التخطيط للمرونة.

دمج مفاتيح الدوائر (circuit breakers)، ومنطق إعادة المحاولة، واستراتيجيات النسخ الاحتياطي في تصميم الخدمات. توفِّر هذه الأنماط وغيرها من أنماط تصميم الخدمات المصغرة أساليب موثوقًا بها للتعامل مع التحديات الشائعة.

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

أتمتة إدارة البنية التحتية

تصبح أتمتة البنية التحتية ضرورية مع تزايد عدد الخدمات. ويتعين تنفيذ تنسيق الحاويات وأتمتة النشر وإدارة التكوين مبكرًا؛ لتجنُّب العوائق التشغيلية.

حلول ذات صلة
IBM® Instana® Observability

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

استكشف IBM Instana Observability
حلول عمليات التطوير

استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.

استكشف حلول عمليات التطوير
الخدمات الاستشارية ذات الصلة بالتقنيات السحابية

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

استكشِف الخدمات الاستشارية ذات الصلة بتقنيات السحابة
اتخِذ الخطوة التالية

من اكتشاف المشكلات بشكل استباقي مع IBM Instana إلى الحصول على رؤى في الوقت الفعلي عبر مجموعتك بأكملها، يمكنك الحفاظ على تشغيل التطبيقات السحابية الأصلية بشكل موثوق به.

  1. اكتشِف IBM Instana
  2. استكشف حلول عمليات التطوير