W tym artykule chciałbym opowiedzieć o tym, jak zmieniliśmy podejście do orkiestracji w naszym startupowym projekcie, dlaczego to zrobiliśmy i jakie problemy rozwiązaliśmy po drodze. Ten artykuł nie może twierdzić, że jest wyjątkowy, ale mimo to myślę, że może się komuś przydać, ponieważ w trakcie rozwiązywania problemu materiał został przez nas zebrany z przyzwoitym skrzypnięciem.
Co mieliśmy i o czym rozmawiamy? A my mieliśmy projekt start-up z około 2-letnią historią rozwoju z obszaru reklamy. Projekt został pierwotnie zbudowany jako mikroserwis, a jego część serwerowa została napisana w Symfony + trochę Laravel, Django i natywne NodeJs. Usługi to w zasadzie API dla klientów mobilnych (jest ich 3 w projekcie) i nasze własne SDK dla IOS (wbudowane w aplikacje naszych klientów), a także interfejsy webowe i różne kokpity tych samych klientów. Wszystkie usługi były początkowo dokowane i uruchamiane przez docker-compose.
Co prawda docker-compose nie był używany wszędzie, ale tylko w lokalnym środowisku programistów, na testach serwer oraz w procesie tworzenia i testowania usług. W środowisku produkcyjnym korzystaliśmy z Google Kubernetes Engine (GKE). Co więcej, skonfigurowaliśmy GKE w całości za pośrednictwem interfejsu webowego na początku projektu, co było dość szybkie i, jak nam się wówczas wydawało, wygodne. Jedynym zautomatyzowanym procesem było tworzenie obrazów Dockera w celu uruchomienia usług w GKE.
