Projekt i wdrożenie środowiska w chmurze AWS dla aplikacji mobilnej Droids on Roids
Droids On Roids to polska firma programistyczna dostarczająca natywne i wieloplatformowe aplikacje dla startupów i przedsiębiorstw. Dotychczas firma współpracowała z takimi markami jak Walt Disney, CCC, LiveChat, NCC, Giphy Cam czy Safesize.
Dla Droids on Roids przygotowaliśmy infrastrukturę obsługującą aplikację przygotowaną dla dużego klienta z sektora FMCG, której przeznaczeniem była obsługa promocji lojalnościowej dla klientów marki. W momencie nawiązania współpracy, Klient posiadał już gotową aplikację zbudowaną w oparciu o kontenery, a jej testowa wersja funkcjonowała w ramach AWS Elastic Beanstalk. Naszą rolą było stworzenie docelowej infrastruktury, która obsłuży aplikację, niezależnie od skali wygenerowanego ruchu.
Infrastruktura
Jednym z założeń projektu było przygotowanie dwóch takich samych środowisk - testowego oraz produkcyjnego. W związku z tym postanowiliśmy zastosować podejście IaC (Infrastructure as Code), budując całą infrastrukturę z wykorzystaniem narzędzia Terraform, co znacząco przyśpieszyło cały proces przygotowania obu środowisk. Infrastrukturę projektowaliśmy z myślą o zapewnieniu pełnego HA (High Availability) usług.
Zaproponowaliśmy Klientowi wdrożenie aplikacji w ramach usługi Amazon ECS (Elastic Container Service), która umożliwia jej skalowanie i charakteryzuje się tzw. niskim narzutem administracyjnym, co pozwala skoncentrować się developerom na tworzeniu i wdrażaniu nowych funkcjonalności aplikacji.
W momencie nawiązania współpracy, Klient posiadał już samodzielnie zbudowany proces CI/CD, który był oparty na narzędziu Semaphor. Naszym zadaniem było przeprowadzenie jego migracji do GitHub Actions wraz z dostosowaniem go do nowej infrastruktury, czyli dodaniem automatycznego deploymentu do Amazon ECS.
W celu zabezpieczania środowiska cały ruch do aplikacji poprowadziliśmy przez AWS WAF (Web Application Firewall), natomiast do wysyłki wewnętrznych powiadomień PUSH wykorzystaliśmy usługę Amazon SNS (Simple Notification Service). W związku z automatycznym skalowaniem zasobów do efektywnej dystrybucji ruchu wykorzystaliśmy AWS Load Balancer. Landing page promocji został zbudowany na usługach AWS S3 i Cloudfront. Bazę danych na potrzeby aplikacji uruchomiliśmy na usłudze Amazon RDS for PostgreSQL.
Testy wydajnościowe
Ze względu na to, że promocja, na potrzeby której stworzony była aplikacja dopiero startowała, ciężko było przewidzieć ruch, który będzie musiała obsłużyć. W związku z tym, wszystko w ramach Amazon ECS musiało skalować się wg aktualnego obciążenia. Po zakończeniu prac nad infrastrukturą przygotowaliśmy wspólnie z Klientem kilkanaście złożonych scenariuszy, według których przeprowadziliśmy testy wydajnościowe. Wynikiem testów było wskazanie optymalnej konfiguracji środowiska (CPU i RAM vs koszty zasobów) oraz szereg wskazówek dotyczących możliwości wdrożenia poprawek po stronie aplikacji. Po wyeliminowaniu wąskich gardeł, przeprowadziliśmy powtórne testy na wybranej konfiguracji, które potwierdziły wybór optymalnego środowiska, zarówno pod kątem wydajności jak i kosztów.
Podsumowanie
Dla Droids on Roids przygotowaliśmy wysokowydajne i auto skalujące środowisko w HA dla aplikacji mobilnej, oparte na Amazon ECS. Zmigrowaliśmy i rozbudowaliśmy pipeline CI/CD oraz wykonaliśmy szereg testów wydajnościowych, które pozwoliły nam na uzyskanie optymalnej wydajności środowiska i aplikacji. Cały ten proces zajął nam mniej niż miesiąc, a środowisko, które przygotowaliśmy bez awarii obsługuje pracę aplikacji niezależnie od generowanego ruchu. Na sam koniec przeszkoliliśmy zespół Droids on Roids z podstawowego zakresu obsługi infrastruktury oraz rozwiazywania najczęściej występujących, potencjalnych problemów. Najlepszym potwierdzeniem zadowolenia ze współpracy z nami są kolejne zlecenia, które po zakończeniu, mamy nadzieję również dla was opisać.
PYTANIA? SKONTAKTUJ SIĘ Z NAMI
Zobacz również:
Opieka i monitoring infrastruktury w OVHcloud dla firmy Zamel
Przejęcie opieki i projekt infrastruktury w chmurze AWS dla ZTM Warszawa