في هذه المقالة، أود أن أتحدث عن كيفية تغييرنا لمنهج التنسيق في مشروعنا الناشئة، ولماذا قمنا بذلك، وما هي المشكلات التي حللناها على طول الطريق. من الصعب أن تدعي هذه المقالة أنها فريدة من نوعها، ولكن ما زلت أعتقد أنها يمكن أن تكون مفيدة لشخص ما، لأنه في عملية حل المشكلة، تم جمع المواد من قبلنا مع صرير لائق.
ماذا لدينا وعن ماذا نتحدث؟ وكان لدينا مشروع ناشئ له تاريخ تطوير يبلغ عامين تقريبًا في مجال الإعلان. تم إنشاء المشروع في الأصل كخدمة صغيرة، وتمت كتابة جزء الخادم الخاص به بلغة Symfony + القليل من Laravel وDjango وNodeJs الأصلية. الخدمات هي في الأساس واجهة برمجة تطبيقات لعملاء الأجهزة المحمولة (يوجد 2 منها في المشروع) وSDK خاص بنا لنظام IOS (مدمج في تطبيقات عملائنا)، بالإضافة إلى واجهات الويب ولوحات المعلومات المتنوعة لهؤلاء العملاء أنفسهم. تم إرساء جميع الخدمات في البداية وإدارتها بواسطة docker-compose.
صحيح أن docker-compose لم يُستخدم في كل مكان، بل فقط في البيئة المحلية للمطورين، في بيئة الاختبار. الخادم وخلال عملية بناء واختبار الخدمات، استخدمنا محرك جوجل كوبيرنيتيس (GKE) ضمن مسار التطوير. في بيئة الإنتاج، قمنا بتهيئة GKE بالكامل عبر واجهة الويب الخاصة به عند بدء المشروع، وهو ما كان سريعًا ومريحًا للغاية كما اعتقدنا حينها. كانت العملية الآلية الوحيدة هي بناء صور Docker لتشغيل الخدمات في GKE.
