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

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