SlideShare a Scribd company logo
Jak migrować dane pomiędzy dwoma systemami z pomocą AWS?
Migracje danych serverless
Jakub Cała
Senior Node.js Developer
jakub.cala@tsh.io
Niewspierany system
Nowy system
Wyzwania
Liczba danych
Prawie 24 240 000 operacji sumarycznie
Wydajność systemu
API nowego systemu miało swój limit procesowania
Działające środowisko
Migracja na środowisko, na którym pracował klient
Czas migracji
Migracja mogła najdłużej zajmować niecałe 40 godzin
Różne rozmiary danych
Każda migracja miała inny rozmiar danych do zmigrowania
Różne zasady migracji
Pojedynczych migracji było wiele i różniły się, były praktycznie osobnymi
projektami w kontekście mapowania danych
E T L
Extract Transform Load
Migracje danych serverless
AWS SQS FIFO
Usługa kolejki wiadomości, która zapewnia przetwarzanie
wiadomości w kolejności ich wysyłania, co umożliwia
skuteczne zarządzanie przepływem danych w systemach
rozproszonych.
AWS Lambda
AWS Lambda może wykorzystać MessageGroup w
kolejce SQS FIFO do kontrolowania ilości
przetwarzanych wiadomości w jednostce czasu, co jest
potrzebne w rate limitingu.
Sleep time
x = (60000 / y) * z
y - liczba requestów / min dla 1 lambdy
z - liczba requestów do zewnętrznego
API
x = y / z
y - liczba requestów na minutę
z - liczba współbieżnych lambd
Migracje danych serverless
Migracje danych serverless
Migracje danych serverless
AWS SQS
W 2023 roku została dodana możliwość ustawiania
Maximum Concurrency dla lambdy, gdy źródłem
zdarzenia jest AWS SQS. Pozwala to na implementacje
rate limitingu przy pomocy zwykłych kolejek SQS.
AWS Step Functions
Narzędzie do koordynacji procesów w AWS. Posiada limit
historii zdarzeń wynoszący 25 tysięcy rekordów per jedno
wywołanie.
Migracje danych serverless
Migracje danych serverless
Migracje danych serverless
Migracje danych serverless
AWS Step Functions
Istnieje możliwość wykorzystania Distributed Map w celu
przetwarzania wielkiej ilości danych w tym samym czasie.
Zwykły krok typu Map pozwala na 40 współbieżnych
wywołań, kiedy Distributed Map wspiera do 10 tysięcy
wywołań jednocześnie.
Migracje danych serverless
Migracje danych serverless
Jeden rekord = Jedna operacja
Resource może być zmigrowany tylko raz
AWS DynamoDB
Baza danych NoSQL udostępniona przez AWS. Na
podstawie tej bazy został opracowany koncept Single
Table Design pozwalający na przechowywanie danych o
różnych strukturach w pojedynczej tabeli.
Migracje danych serverless
Czemu nie użyć getItem bez
Single Table Design?
Raporty :)
Liczba
zmigrowanych
rekordów
Liczba
zmigrowanych
rekordów
Liczba
nieobsłużonych
rekordów
Liczba
zmigrowanych
rekordów
Liczba
nieobsłużonych
rekordów
Lista wszystkich
błędów podczas
migracji
Liczba
zmigrowanych
rekordów
Liczba
nieobsłużonych
rekordów
Lista wszystkich
błędów podczas
migracji
I to wszystko z podziałem na
grupy
Migracje danych serverless
Migracje danych serverless
Migracje danych serverless
Migracje danych serverless
Podsumowanie
Opieramy migracje na
producencie i konsumencie
Przechowujemy aktualny stan
migracji
Duże zbiory danych dzielimy
na mniejsze
Tworzymy wynik migracji w
postaci raportu
Link do artykułu:
https://tsh.io/blog/data-migration-plan/

More Related Content

PDF
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
The Software House
 
PDF
Uszanowanko Podsumowanko
The Software House
 
PDF
Jak efektywnie podejść do certyfikacji w AWS?
The Software House
 
PDF
O co chodzi z tą dostępnością cyfrową?
The Software House
 
PDF
Chat tekstowy z użyciem Amazon Chime
The Software House
 
PDF
Jak nie zwariować z architekturą Serverless?
The Software House
 
PDF
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
The Software House
 
PDF
Feature flags na ratunek projektu w JavaScript
The Software House
 
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
The Software House
 
Uszanowanko Podsumowanko
The Software House
 
Jak efektywnie podejść do certyfikacji w AWS?
The Software House
 
O co chodzi z tą dostępnością cyfrową?
The Software House
 
Chat tekstowy z użyciem Amazon Chime
The Software House
 
Jak nie zwariować z architekturą Serverless?
The Software House
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
The Software House
 
Feature flags na ratunek projektu w JavaScript
The Software House
 

More from The Software House (20)

PDF
Typowanie nominalne w TypeScript
The Software House
 
PDF
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
The Software House
 
PDF
Serverless Compose vs hurtownia danych
The Software House
 
PDF
Testy API: połączenie z bazą danych czy implementacja w pamięci
The Software House
 
PDF
Jak skutecznie read model. Case study
The Software House
 
PDF
Firestore czyli ognista baza od giganta z Doliny Krzemowej
The Software House
 
PDF
Jak utrzymać stado Lambd w ryzach
The Software House
 
PDF
Jak poskromić AWS?
The Software House
 
PDF
O łączeniu Storyblok i Next.js
The Software House
 
PDF
Amazon Step Functions. Sposób na implementację procesów w chmurze
The Software House
 
PDF
Od Figmy do gotowej aplikacji bez linijki kodu
The Software House
 
PDF
Co QA może i czego nie powinien się bać?
The Software House
 
PDF
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
The Software House
 
PDF
Pierwsza wycieczka nad jezioro (danych)
The Software House
 
PDF
A w więc chcesz zostać frontend developerem?
The Software House
 
PDF
DynamoDB – podstawy modelowania danych dla opornych
The Software House
 
PDF
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
The Software House
 
PDF
DIY: React.js od zera
The Software House
 
PDF
Jak poprawić Core Web Vitals w aplikacji Next.js
The Software House
 
PDF
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 
Typowanie nominalne w TypeScript
The Software House
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
The Software House
 
Serverless Compose vs hurtownia danych
The Software House
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
The Software House
 
Jak skutecznie read model. Case study
The Software House
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
The Software House
 
Jak utrzymać stado Lambd w ryzach
The Software House
 
Jak poskromić AWS?
The Software House
 
O łączeniu Storyblok i Next.js
The Software House
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
The Software House
 
Od Figmy do gotowej aplikacji bez linijki kodu
The Software House
 
Co QA może i czego nie powinien się bać?
The Software House
 
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
The Software House
 
Pierwsza wycieczka nad jezioro (danych)
The Software House
 
A w więc chcesz zostać frontend developerem?
The Software House
 
DynamoDB – podstawy modelowania danych dla opornych
The Software House
 
Komunikacja oparta o zdarzenia z wykorzystaniem AWS Event Bridge
The Software House
 
DIY: React.js od zera
The Software House
 
Jak poprawić Core Web Vitals w aplikacji Next.js
The Software House
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 

Migracje danych serverless