نقدم خدمات برمجية B2B لوكالات الخدمات اللوجستية في الولايات المتحدة. لدينا تطبيق أساسي موحد (Monolith) تم تطويره عام 2014 وكبر بمرور الوقت عبر إضافات متتالية. يدخل النظام يومياً حوالي 1,200 مستخدم نشط من الشركات لإدخال البيانات. صيانة النظام أصبحت صعبة جداً لدرجة أن مجرد تعديل بسيط على الفواتير قد يُعطل أجزاء غير متوقعة. لذلك خصصنا ميزانية قدرها 70,000 دولار لتجديد النظام من الصفر ببنية تحتية حديثة.
المبرمج الخبير (Senior) الذي انضم إلينا مؤخراً يصر على ضرورة تقسيم النظام إلى معمارية الخدمات المصغرة (مايكروسيرفس)، وإنشاء خدمات منفصلة للمصادقة والفواتير والعمليات والتقارير. لكن فريقنا يتكون من 3 مطورين فقط ولا يوجد لدينا متخصص مستقل في البنية التحتية السحابية.
لنظام بهذا الحجم وفريق من 3 أشخاص، هل التوجه نحو المايكروسيرفس خطوة صحيحة أم سنحمّل أنفسنا عبئاً تشغيلياً يفوق طاقتنا؟ في عملية تجديد البرمجيات القديمة، كيف ينبغي أن نوازن بين المايكروسيرفس والبنية الأحادية (Monolith) النظيفة؟