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

بنية الخدمات المصغرة هي نظام يتكون فيه تطبيق كبير من خدمات صغيرة تعمل وتتواصل مع بعضها البعض باستخدام واجهات برمجة التطبيقات.

هذه الخدمات مستقلة للغاية وغير مرتبطة بشكل وثيق. هذا يجعل من السهل اختبارها وصيانتها مما يؤدي بدوره إلى تسريع عملية التطوير.

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

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

في حين أن تطبيقات monolith سهلة التصميم والتطوير ، قد يكون من الصعب فهم الشفرة الناتجة وقياسها وصيانتها.

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

تحتوي كل خدمة أيضًا على جميع التبعيات الضرورية ولا تحتاج إلى ربطها بالموارد الخارجية.

تعد الخدمات المصغرة رائعة للتطبيقات التي طورتها المؤسسات الكبيرة. يمكن أن يعمل فريق واحد في خدمة واحدة بينما يعمل فريق آخر في خدمة أخرى. يمكنك بعد ذلك اختبار ونشر هذه الخدمات بشكل منفصل.

instagram viewer

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

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

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

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

يمكنك أيضًا تشغيل مثيلين من الخدمات المصغرة بالتوازي.

سهولة الصيانة والتحديثات

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

إمكانية التطوير والنشر بشكل أسرع

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

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

خيارات التكنولوجيا المستقلة

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

تحديات تنفيذ بنية الخدمات المصغرة

تعقيد تنسيق الخدمات المختلفة

يمكن أن يتكون التطبيق من العديد من الخدمات التي تحتاج إلى التواصل مع بعضها البعض. يجب أن تكون قنوات الاتصال هذه آمنة وقوية حتى يعمل التطبيق على النحو المنشود.

مشاكل التصحيح والاختبار

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

احتمالية زيادة النفقات العامة

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

متى تستخدم هندسة الخدمات المصغرة

بنية الخدمات المصغرة ليست مناسبة لجميع التطبيقات. يمكن أن يكون مكلفا للبناء والإدارة.

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

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