Przeniesienie infrastruktury z USA do UE

Nasz ostatni projekt z startupem EdTech Sumdog rozpoczął się jako standardowa aktualizacja i refaktoryzacja kodu Infrastructure as Code (IaC), ale w związku z Brexitem i obowiązującymi w Wielkiej Brytanii przepisami dotyczącymi prywatności danych, przerodził się w pełną migrację aplikacji i danych przez ocean - z USA do regionu AWS w UE.

Branża

EdTech

Lokalizacja

Szkocja

Czas

03.2022 - 04.2023

Firma

Sumdog

Wykorzystane technologie

AWS Terraform Docker

Przegląd

Sumdog to platforma edukacyjna oferująca gry edukacyjne online dla dzieci w szkołach podstawowych. Ponad 7 500 szkół w Wielkiej Brytanii korzysta z ich platformy, a Sumdog jest zaangażowany w zapewnienie najlepszych możliwych doświadczeń użytkownikom. Aby osiągnąć ten cel, firma postanowiła zrefaktoryzować swój kod Terraform, przenieść dane do Amazon RDS wykorzystując najnowsze procesory Graviton oraz przenieść infrastrukturę do europejskiego regionu AWS z powodów zgodności z przepisami. Celem projektu było poprawienie wydajności platformy, zapewnienie zgodności z europejskimi przepisami o ochronie danych, zwiększenie bezpieczeństwa i niezawodności danych oraz obniżenie kosztów.

Wyzwania

Sumdog napotkał kilka wyzwań podczas realizacji projektu. Po pierwsze, konieczna była aktualizacja kodu Terraform do najnowszej wersji, co wymagało znacznych zmian w istniejącym kodzie, które mogły potencjalnie wprowadzić błędy i wpłynąć na stabilność platformy. Po drugie, migracja danych z EC2 do RDS była skomplikowanym zadaniem, wymagającym starannego planowania i wykonania, aby zapewnić bezpieczny i bezstratny transfer danych. Wreszcie, przeniesienie infrastruktury do regionu UE wymagało koordynacji z wieloma zespołami oraz dogłębnej znajomości europejskich przepisów dotyczących ochrony danych.

Rozwiązanie

Gdy Sumdog zdecydował się na współpracę z Devopsity (po rekomendacji naszego partnera), nasz zespół rozpoczął od stworzenia szczegółowego planu projektu, obejmującego harmonogram i listę kamieni milowych. Przeprowadziliśmy także dokładną analizę istniejącej infrastruktury w celu identyfikacji potencjalnych problemów.

Pierwszym i najtrudniejszym krokiem była aktualizacja kodu Terraform do najnowszej wersji. Problemy wynikały przede wszystkim z faktu, że a) próby tej podejmowało wcześniej kilku inżynierów wielokrotnie, b) baza kodu łączyła różne wersje Terraform oraz narzędzia towarzyszące takie jak CloudFormation, Ansible i Packer. Zespół Sumdog nie miał jasno określonego planu na ten proces, dlatego Devopsity ściśle współpracowało z programistami, identyfikując niezbędne zmiany w kodzie. Przeprowadzono również szerokie testy, aby upewnić się, że nowy kod jest stabilny i nie wpływa negatywnie na wydajność platformy.

Kolejnym krokiem była migracja danych z EC2 do RDS za pomocą usługi AWS DMS (Database Migration Service). Zespół zoptymalizował ustawienia bazy danych, aby wykorzystać najnowsze procesory Graviton, co poprawiło wydajność platformy i obniżyło jej koszty. Aby zapewnić bezpieczeństwo danych, wykorzystano zarządzaną usługę AWS DMS do migracji i replikacji danych pomiędzy systemami EC2 i RDS. Usługa ta umożliwiła szybki, bezpieczny transfer z minimalnym czasem przestoju i bez utraty danych.

Ostatnim krokiem było przeniesienie infrastruktury do konta w regionie UE. Wymagało to koordynacji z wieloma zespołami oraz dogłębnej znajomości unijnych przepisów dotyczących ochrony danych. Zespół rozwinął istniejące rozwiązania Terraform oraz konteneryzowane aplikacje, aby działały w natywnym klastrze AWS Elastic Container Service (ECS). W trakcie prac szczególną uwagę poświęcono stworzeniu w pełni zautomatyzowanego procesu wdrożeń z kompletnym pokryciem infrastruktury jako kodu.

Ostatecznie Devopsity stworzyło dedykowane, zautomatyzowane rozwiązanie do tworzenia kopii zapasowych, pozwalające klientowi na wykonywanie i przywracanie pełnych oraz częściowych kopii danych. Stworzone rozwiązanie backupowe wraz z kompletnym pokryciem IaC umożliwia szybkie odzyskiwanie w większości typowych scenariuszy Disaster Recovery, bez konieczności inwestowania w droższe rozwiązania multi-regionowe.

Podsumowanie

Dzięki regularnym cotygodniowym spotkaniom z kluczowymi interesariuszami z Devopsity oraz skutecznemu planowaniu zadań, projekt został ukończony na czas. Sumdog osiągnął swoje cele, pozostając w ramach ustalonego harmonogramu i budżetu. Najważniejszym i wymiernym efektem tych działań była poprawa wydajności platformy oraz szybsza dostawa dla zespołu deweloperskiego. W trakcie realizacji zespół znacząco ograniczył techniczny dług, przede wszystkim poprzez usunięcie przestarzałych narzędzi i technologii, takich jak Ansible i Packer, oraz przeniesienie krytycznych baz danych do zarządzanej i łatwej w utrzymaniu usługi AWS RDS. Przy tym udało się również osiągnąć drugi cel, jakim było znaczące obniżenie kosztów hostingu. Wykorzystanie Terraform i Dockera do tworzenia infrastruktury jako kodu usprawniło proces wdrożeń, zminimalizowało błędy ludzkie oraz zapewniło spójność środowisk. Wdrożenie Terraform, Docker oraz usług AWS takich jak ECS, RDS, DMS, Lambda, Batch i S3 uprościło proces migracji, zautomatyzowało zadania oraz zwiększyło niezawodność platformy. Takie podejście ułatwiło zarządzanie infrastrukturą Sumdog, a konfiguracja systemu kopii zapasowych dała dodatkowe poczucie bezpieczeństwa.