Migracja na AWS topowej platformy edukacyjnej obsługującej ponad 120 tys. aktywnych użytkowników
Case Study

Migracja na AWS topowej platformy edukacyjnej obsługującej ponad 120 tys. aktywnych użytkowników

Bez nazwy-1
Technologie
AWS ElastiCache
AWS RDS Aurora
AWS ECS
AWS S3
AWS EC2
Technologie
AWS ElastiCache
AWS RDS Aurora
AWS ECS
AWS S3
AWS EC2
Kompleksowe przeniesienie platformy z DigitalOcean na AWS

Nasz zespół stworzył największą w Polsce platformę edukacyjną, która obsługuje obecnie ok. 120 tys. użytkowników. Obecnie jesteśmy odpowiedzialni za dalszy rozwój systemu i prace utrzymaniowe.

Platforma naszego klienta (NDA) nieustannie się rozwija i przyciąga coraz więcej nowych użytkowników. Prawidłowe zarządzanie tak potężnym ruchem jest niezbędne, aby rozwiązanie spełniało swoją funkcję i sprostało oczekiwaniom użytkowników. Aby zapewnić możliwość skalowania oraz poprawić wydajność aplikacji, zajęliśmy się kompleksowym przeniesieniem systemu z DigitalOcean na AWS.

Nasze rozwiązanie

Jak pomogliśmy klientowi osiągnąć cele biznesowe?

W ramach przeniesienia aplikacji na AWS wykonaliśmy szereg zadań przygotowawczych. Jednym z nich było udoskonalenie sposobu konteneryzacji aplikacji oraz przygotowanie bezpiecznej struktury dostępów AWS (stworzenie użytkowników i konfiguracja poszczególnych dostępów). Kolejnym krokiem była aktualizacja CI/CD w celu przeniesienia z On-Premise (DigitalOcean) na AWS.

Konieczne było również produkcyjne skonfigurowanie narzędzi takich jak Redis Elasticsearch, a także konfiguracja Load Balancera pozwalająca na odpowiednie sterowanie ruchem do clustrów aplikacji. Nasz zespół zajął się przygotowaniem całej infrastruktury AWS Elastic Container Service wraz z przygotowaniem polityk skalowalności. Infrastrukturę wdrożyliśmy przy użyciu narzędzia Terraform (i Terragrunt). Dodatkowo przeprowadziliśmy testy obciążeniowe po których wykonaliśmy ponowną analizę obciążenia aplikacji na nowej infrastrukturze po czym dostosowaliśmy parametry i ustawienia do aktualnych warunków. Na końcowym etapie prac zajęliśmy się replikacją bazy danych do nowej (AWS RDS Aurora).

Zadbaliśmy również o wysokiej jakości zabezpieczenia. Zasoby bazy danych osadziliśmy w prywatnych podsieciach, a dostęp zdalny do kontenerów aplikacji jest ograniczony.

Kluczowe rezultaty

Zobrazowanie działania aplikacji po migracji przy wzrastającym ruchu

Liczba requestów obsługiwanych przez Load Balancer

Bez nazwy-4

Wykres przedstawiający rozkład ruchu na przestrzeni dni tygodnia oraz porach dnia.

Maksymalne, minimalne i średnie zużycie zasobów CPU na utworzonych clustrach aplikacji

Bez nazwy-5

Wykres przedstawia zużycie zasobów CPU przez aplikacje w ciągu tygodnia. Można na nim zaobserwować reakcję aplikacji na zmienność obciążenia w różnych dniach oraz godzinach i reakcje w postaci szybkiego autoprzeskalowania w momencie zwiększonego ruchu. Pozwala to szybko przywrócić średnie zużycie CPU na wymagany poziom. W zależności od ustawionych alarmów, ilość zadań w clustrze odpowiednio dostosowuje się do obciążenia i pozwala obsłużyć dynamiczny ruch.

Stabilna obsługa żądań aplikacji do bazy danych

Bez nazwy-6

Podczas migracji zadbaliśmy o skalowalność bazy danych dzięki czemu ten obszar jest również  zabezpieczony przed wzrastającym ruchem użytkowników.

Wykres zużycia zasobów bazy danych

Bez nazwy-7

Widoczne na powyższym wykresie spadki, to moment automatycznego przeskalowania ilości instancji w celu spokojniejszej obsługi ruchu. Po odpowiednim uspokojeniu, automatycznie zmniejszamy ilość instancji w celu  ograniczenia kosztów oraz wykorzystaniu w jak największym zakresie instancji podstawowych.

Nasze rozwiązanie

Cel migracji

Celem migracji było utrzymanie szybkich czasów odpowiedzi serwera do użytkownika niezależnie od dnia i godziny oraz aktualnego obciążenia.

Bez nazwy-8

Efekt potwierdza wykres powyżej, na którym widać, że czasy odpowiedzi (mimo ciągle rosnącego ruchu) są w dużej stabilne.

Potrzebujesz darmowej konsultacji?
Napisz do nas, a my za darmo oszacujemy Twój projekt.