Як один стартап від docker-compose до Kubernetes діставався

У цій статті я хотів би розповісти про те, як ми змінювали підхід до оркестрації на нашому стартап-проекті, навіщо ми це робили і які проблеми вирішували по дорозі. Претендувати на унікальність ця стаття навряд чи може, але все ж таки думаю, що вона може бути комусь корисна, тому що в процесі вирішення завдання матеріал збирався нами з пристойним скрипом.  

Що ми мали і про що взагалі йдеться? Та мали ми стартап-проект з приблизно 2-річною історією розробки з advertisement області. Проект спочатку будувався як мікросервісний, і серверна його частина написана на Symfony + трохи Laravel, Django та нативного NodeJs. Сервіси являють собою в основному API для мобільних клієнтів (їх у проекті 3) і нашого власного SDK для IOS (вбудовується в додатки наших кастомірів), а також веб-інтерфейси та різні дашборди цих кастомірів. Усі сервіси були спочатку докеризовані та працювали під управлінням docker-compose.

Правда, docker-compose використовувався не скрізь, а тільки в локальному оточенні у розробників, на тестовому сервері та всередині pipeline при складанні та тестуванні сервісів. А ось у production оточенні використовувався Google Kubernetes Engine (GKE). Причому налаштування GKE на старті проекту ми робили повністю через його web-інтерфейс, що було досить швидко і, як тоді здавалося, зручно. Автоматизований тут був лише процес збирання docker images для запуску сервісів у GKE.

Читати далі