Projekt nowej infrastruktury w Amazon Web Services dla Nopio
Projekt nowej infrastruktury w Amazon Web Services dla Nopio okazał się najlepszym rozwiązaniem, aby zapewnić odpowiednią dostępność aplikacji ich klienta i rozwiązać problemy z wydawaniem kolejnych wersji wspomnianej aplikacji.
Wprowadzenie
Nopio jest krakowską firmą deweloperską z ponad 8-letnim doświadczeniem w dostarczaniu stron i aplikacji internetowych dla firm i startupów na całym świecie. Poza produkcją wysokiej jakości kodu są również proaktywnymi konsultantami. Firma Nopio zwróciła się do Hostersów z projektem swojego klienta, dla którego przygotowywali część programistyczną serwisu online. Zadaniem Hostersów miało być zaprojektowanie i uporządkowanie infrastruktury w Amazon Web Services.
Problem
Dotychczasowy projekt infrastruktury chmurowej klienta w AWS zawierał komponenty nieadekwatne do jego potrzeb i skali działania. Powodowało to dwie poważne konsekwencje: czasową niedostępność aplikacji dla użytkownika końcowego oraz problemy z wydawaniem kolejnych wersji aplikacji. Źle zaprojektowane CI/CD opierało się na AWS Beanstalk (usługa automatycznego wdrażania aplikacji), przez co nie było dopasowane do wymogów klienta i wymagało zastąpienia go usługą autoskalowania. Natomiast problemy związane z wydawaniem kolejnych wersji aplikacji zostały rozwiązane poprzez wdrożenie usług AWS CodeBuild, AWS CodePipline i AWS CodeDeploy.
Rozwiązanie
W pierwszym etapie projektu dokonaliśmy analizy istniejącej architektury. Okazało się, że najlepszym rozwiązaniem będzie stworzenie i wdrożenie nowego projektu wysoce skalowalnej i niezawodnej infrastruktury, opartej o Amazon Web Services. Aby zapewnić odpowiedni poziom niezawodności, Hostersi zarządzają również stworzonym rozwiązaniem w Amazon Web Services, co pozwala zachować wysoką dostępność zasobów (HA), ich łatwą skalowalność i wysoki poziom bezpieczeństwa. W ramach prac, usprawniono również proces deploymentu i wdrażania kolejnej wersji aplikacji.
Usługi AWS:
RDS – infrastruktura korzysta z silnika baz danych MySQL
EC2 – podstawą infrastruktury są instancje WEB, serwujące aplikację
QuickSight – dodatkowa usługa BI
ElastiCache – infrastruktura korzysta z Redis'a jako system kolejek zadań dla workera oraz storage dla sesji
ElasticSearch – niezależna baza danych, wykorzystywana do przechowywania dużej liczby danych
Load Balancer – Kieruje on ruch do aplikacyjnej grupy auto skalującej
S3 – używane do przechowywania plików statycznych
CodeBuild – jest narzędziem, które przygotowuje paczkę z aplikacją (instaluje zależności) W celu odciążenia CodeDeploy i skrócienia czasu deploymentu
CodeDeploy – zarządzany jest przez terraform. Tworzy on jedną aplikację dla danego środowiska i kilka deployment grup w zależności od liczby stacków
Code Pipeline – jest punktem wejściowym i łączy ze sobą build oraz deployment
CloudWatch – w ramach Terraforma tworzone są alarmy w CloudWatch, które z kolei integrowane są z naszym Nagiosem, aby monitorować kluczowe metryki
ASG – auto skalująca grupa została wykonana w podejściu IaC z wykorzystaniem Ansible/Packer/Terraform
Usługi dodatkowe:
Jenkins - wykorzystywany jest jako mechanizm zadań wykonywanych bezpośrednio na warstwie worker danego środowiska
Packer - przygotowuje obraz dockerowy używany przy budowie aplikacji
CloudFlare - warstwa CDN dla infrastruktury
MongoDB – klient korzysta z NoSQL'owej bazy MongoDB
Rezultaty
Klient zyskał elastyczność – zarówno w skalowaniu serwerów produkcyjnych, jak i w kontekście testowania aplikacji i nowych rozwiązań. Teraz, możliwe jest szybkie i wygodne skalowanie na wielu poziomach – od uruchomienia nowych serwerów wirtualnych, zmiany ich parametrów, dostosowywaniu konfiguracji usług AWS do bieżącego obciążenia, czy wreszcie gotowości do skalowania geograficznego do innych regionów świata. Dzięki wdrożonym narzędziom, związanym z deploymentem, proces publikacji nowej wersji aplikacji jest szybszy i bardziej bezpieczny.
Pytania? Skontaktuj się z nami
Zobacz również:
Infrastruktura hybrydowa dla Open’er Festival
Projekt infrastruktury chmurowej i migracja do AWS Livespace CRM
Opieka administracyjna i zwiększenie wydajności platformy Webankieta.pl
Testy wydajnościowe i opieka administracyjna dla AleRabat.com
Nowa infrastruktura AWS dla Geek Soft
Projekt i wdrożenie infrastruktury chmurowej AWS dla Cleeng
Chmura AWS na czas sprzedaży biletów na koncert Justina Biebera