Mysterious Code skonteneryzował środowiska programistyczne i QA na AWS, zapewniając 70% szybsze wdrożenia i obniżając koszt każdego środowiska QA o 95%.
Working with Mysterious Code has been refreshingly direct, you deal with the senior engineers who do the work, not an account manager. They got our AWS environment production-ready and keep it that way.
Sova Assessment to brytyjska firma technologiczna, której platforma do oceny kompetencji wspiera organizacje w rekrutacji i rozwoju pracowników. Za produktem stoi intensywnie pracujący zespół programistów i QA, który w pewnym momencie uderzył w ścianę: środowisk testowych było za mało, a każdy sposób na dołożenie kolejnych wyglądał na kosztowny.
Środowiska testowe Sova wiernie odwzorowywały produkcję. Przy testach end-to-end przed wydaniem to dokładnie to, czego trzeba, ale w codziennej pracy programistycznej i QA taka złożoność jest zbędna. Ponieważ każde środowisko sporo kosztowało, było ich tylko kilka. Zespoły czekały w kolejce na testy, wyniki QA wracały późno, a pętla informacji zwrotnej, która powinna zamykać się w jedno popołudnie, rozciągała się na dni.
Wymagania były konkretne. Zespół QA miał tworzyć środowiska samodzielnie, narzędziami, z których już korzystał. Programiści potrzebowali dostępu do warstwy danych na potrzeby konfiguracji i debugowania. A wiele środowisk musiało powstawać szybko, każde z konkretnej gałęzi gita.
Sova działała już na AWS, więc rozwiązanie powstało tam, gdzie żyje aplikacja. Skonteneryzowaliśmy aplikację razem z jej warstwą danych, a każde środowisko QA wdrażane jest jako pojedynczy stos AWS CloudFormation: usługi ECS na AWS Fargate za jednym wspólnym Application Load Balancerem.
Reguły host-header w load balancerze dają każdemu środowisku własną subdomenę, dostępną w przeglądarce dla całego zespołu. Priorytety reguł nadaje automatycznie niewielki CloudFormation Custom Resource oparty na AWS Lambda, który przy tworzeniu środowiska znajduje kolejny wolny priorytet. Zasoby statyczne trafiają do S3 za CloudFront, po jednym katalogu na środowisko, więc równie łatwo je usunąć, jak utworzyć.
Dla warstwy danych wykorzystaliśmy prywatną przestrzeń nazw DNS w AWS Cloud Map: każda usługa w środowisku ma przyjazną nazwę DNS, rozwiązywaną wewnątrz VPC. Programiści łączyli się z AWS przez VPN już wcześniej, więc debugowanie na danych dowolnego środowiska sprowadza się do znajomości jego nazwy. Cloud Map obsługuje też komunikację między aplikacją a usługami danych w ramach ECS.
Zespół QA tworzy środowiska w narzędziach CI/CD, które znał już wcześniej: jedno uruchomienie pipeline’u stawia środowisko z wybranej gałęzi. A ponieważ środowisko to jeden stos CloudFormation, jego usunięcie sprząta wszystko, co zawierało.
Wdrożenia są o 70% szybsze, a każde środowisko QA kosztuje mniej niż 5% pełnego środowiska o produkcyjnej wierności. Zespoły testują funkcje równolegle, zamiast czekać w kolejce. Dzięki integracji z platformą do zarządzania zadaniami środowisko usuwa się automatycznie, gdy jego zadanie zostaje oznaczone jako „Gotowe", więc nic nie stoi bezczynnie i nie generuje kosztów.
Infrastrukturą AWS firmy Sova opiekujemy się do dziś, w ramach stałego utrzymania środowiska AWS.
Zacznij od bezpłatnej drugiej opinii: 30 minut rozmowy z naszą założycielką. Bez dostępu do Twojego konta, a krótkie pisemne podsumowanie rozmowy zostaje u Ciebie.