Projekt i wdrożenie infrastruktury chmurowej dla firmy optAd360, opartej na klastrach Kubernetes i podejściu IaC
Optad360 to dynamicznie rozwijająca się polska firma zajmująca się wdrażaniem rozwiązań wspierających i zarządzających monetyzacją stron internetowych, treści wideo i aplikacji pod kątem wyświetlanych reklam za pomocą autorskiego oprogramowania. Nowoczesne podejście do reklamy programmatic i wykorzystanie narzędzi AI sprawiło, że optAd360 odnotowuje bardzo intensywny wzrost na światowych rynkach reklamy internetowej, obsługując miesięcznie 1200 terabajtów reklam.
Jak to się zaczęło
Optad360 w ciągu niespełna 5 lat działalności pozyskał do współpracy ponad 3500 serwisów internetowych i aplikacji mobilnych, w których odnotowuje 11 miliardów odsłon miesięcznie. To daje 4200 reklam na sekundę przez 24 godziny, 7 dni w tygodniu. Skala działania jest więc ogromna, a plany na przyszłość zakładają podwojenie ilości reklam wyświetlanych na całym świecie już w 2022 roku.
Infrastruktura Klienta od momentu założenia firmy, działała w środowisku AWS, jednak niektóre systemy, takie jak Amazon Elastic Kubernetes Service (EKS), nie były aktualizowane. Niemożliwe było też podejmowanie decyzji biznesowych w oparciu o analizę danych, ponieważ stos AWS Elasticsearch, Logstash i Kibana (ELK) nie zbierał ich w sposób poprawny.
Szybkie wdrażanie kolejnych rozwiązań i systemów, wymagało do optymalnego funkcjonowania większej stabilności i zwinności. To zapoczątkowało proces wdrażania zmian.
– Musimy zarządzać ogromną ilością danych, a wraz z coraz większą liczbą klientów musieliśmy zautomatyzować naszą zdolność do skalowania i pozyskiwania nowych klientów. Szybki rozwój oznaczał, że potrzebowaliśmy lepszego środowiska testowego i DevOps. Hostersi i AWS pomogli nam zbudować systemy, które są stabilne, ale mogą też szybko się skalować – tłumaczy Jarosław Wisłocki, współzałożyciel i Head of Technology Development w optAd360.
Po przeprowadzeniu dogłębnego audytu istniejącej infrastruktury Klienta, wspólnie doszliśmy do wniosku, że najlepszym rozwiązaniem będzie stworzenie całkowicie nowego środowiska w oparciu o mikroserwisy i podejście IAC.
Wdrożenie infrastruktury
Planując wdrożenie nowej infrastruktury dla optAd360, skupiliśmy się na wykorzystaniu AWS EKS dla deploymentu wszystkich aplikacji, mi.in: Redis, MySQL/POSTgres SQL. Całą infrastrukturę stworzyliśmy w podejściu IaC, korzystając z narzędzi Terraform i Helm. Założeniem projektu, było zapewnienie separacji środowisk, zgodnie z ich przeznaczeniem – dla pracowników technicznych i handlowych.
Klaster Kubernetes uruchomiliśmy jako usługę zarządzaną przez AWS, natomiast za szyfrowanie sekretów odpowiada usługa AMAZON KMS. W clustrze z chartów Helm uruchomiliśmy m.in.:
- AWS LB controler – który tworzy loadbalancery do obsługi ruchu przychodzącego
- Metrics Server – agreguje metryki z API Clustra
- Kubernetes Dashboard – do podglądu operacji na clustrze
- Data Dog – do zbierania danych o clustrze i aplikacjach
- Cluster Autoscaler – do automatycznego skalowania node’ów w clustrze w zależności od zapotrzebowania
Infrastruktura podzielona została na trzy standardowe środowiska – dev/stage/prod. Każde środowisko posiada oddzielne, dedykowane konto AWS. Ponadto założyliśmy również środowisko tools, które zawiera bucket S3 z plikiem statfile Terraforma dla wszystkich środowisk. Skonfigurowaliśmy Open VPN, scalający wszystkie środowiska i zapewniający bezpieczny dostęp do sieci. Projekt środowiska zakładał dostęp do infrastruktury dev/stage/prod dla wielu developerów na różnym poziomie uprawnień. W tym celu wykorzystaliśmy odpowiednio skonfigurowane role IAM.
W celu zapewnienia bezpieczeństwa i gwarancji błyskawicznego dostarczania treści reklamowych na całym świecie, skonfigurowaliśmy Amazon CloudFront. Dzięki rozrzuconej po całym świecie sieci amazonowych endpointów, udało nam się niemal całkowicie zlikwidować problem opóźnień w dostarczaniu treści, miesięcznie transferując 1,2 petabajta danych do odbiorców na całym świecie.
Podsumowanie
Dla optAd360 wdrożyliśmy całkowicie nowe środowisko oparte na klastrach Kubernetes i podejściu IaC. Dzięki zastosowaniu najnowszych rozwiązań i najlepszych praktyk, udało się skrócić czas niezbędny do onboardingu nowych klientów optAd360 o 50%, tj. z 2 do 4 dni. Wykorzystując Amazon CloudFront zagwarantowaliśmy błyskawiczny i bezpieczny transfer potężnej ilości treści do odbiorców na całym świecie a zastosowane technologie, tworzą doskonały fundament do dalszego intensywnego, technologicznego rozwoju firmy w najbliższych latach.