Jak jeden startup przeszedł od docker-compose do Kubernetes

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.

To prawda, że ​​​​docker-compose nie był używany wszędzie, ale tylko w lokalnym środowisku programistów, na serwerze testowym i wewnątrz potoku podczas budowania i testowania usług. Ale w środowisku produkcyjnym wykorzystano Google Kubernetes Engine (GKE). Co więcej, konfigurację GKE na początku projektu wykonaliśmy całkowicie przez jego interfejs WWW, co było dość szybkie i, jak nam się wtedy wydawało, wygodne. Tutaj zautomatyzowano jedynie proces budowania obrazów docker do uruchamiania usług w GKE.

Czytaj więcej