Wszystkiego najlepszego DynamoDB!

1 marca 2022

18 stycznia 2012 r. Jeff i Werner ogłosili ogólną dostępność Amazon DynamoDB, w pełni zarządzanej, elastycznej usługi bazy danych NoSQL zapewniającej jednocyfrową wydajność w milisekundach w dowolnej skali.

W ciągu ostatnich 10 lat setki tysięcy klientów przyjęło DynamoDB, które regularnie osiąga nowe szczyty wydajności i skalowalności. Na przykład podczas ostatniej sprzedaży Prime Day w czerwcu 2021 r. obsłużyła biliony żądań w ciągu 66 godzin, zachowując jednocyfrową wydajność w milisekundach i osiągnęła najwyższy poziom 89,2 miliona żądań na sekundę. Disney+ używa DynamoDB do pobierania treści, metadanych i miliardów działań każdego dnia. Nawet podczas bezprecedensowych żądań spowodowanych pandemią, DynamoDB było w stanie pomóc klientom na całym świecie, którzy musieli zmienić swój sposób pracy, musząc spotykać się i prowadzić biznes wirtualnie. Na przykład Zoom był w stanie skalować się od 10 milionów do 300 milionów uczestników codziennych spotkań, kiedy wszyscy zaczęliśmy prowadzić rozmowy wideo na początku 2020 roku.

W tę wyjątkową rocznicę dołącz do twórców i weź udział w wyjątkowym wydarzeniu online na Twitchu, które odbędzie się 1 marca. Więcej informacji na ten temat znajdziesz na końcu tego artykułu. Zanim jednak autorzy przejdą do samego wydarzenia, warto skorzystać z okazji, aby zastanowić się nad genezą tej usługi i głównymi możliwościami, które dodano od czasu pierwotnego uruchomienia 10 lat temu.

Historia DynamoDB

Historia DynamoDB zaczęła się na długo przed jego premierą 10 lat temu. Zaczęło się od serii awarii platformy e-commerce Amazona w okresie świątecznych zakupów w 2004 roku. W tym czasie Amazon przechodził z architektury monolitycznej na mikroserwisy. Zasadą projektowania było (i nadal jest), że każda mikrousługa stanowa korzysta z własnego magazynu danych, a inne usługi są wymagane do uzyskania dostępu do danych mikrousługi za pośrednictwem publicznie dostępnego interfejsu API. Bezpośredni dostęp do bazy danych nie był już możliwy. W tamtym czasie większość mikroserwisów korzystała z relacyjnej bazy danych dostarczonej przez zewnętrznego dostawcę. Biorąc pod uwagę natężenie ruchu w okresie świątecznym 2004 r., system bazy danych doświadczył pewnych trudnych do debugowania i do odtworzenia zakleszczeń. Platforma e-commerce przesuwała relacyjne bazy danych do granic możliwości, mimo że wykorzystywano proste wzorce użycia, takie jak zapytania tylko według kluczy podstawowych. Te wzorce użycia nie wymagają złożoności relacyjnej bazy danych.

W Amazonie i AWS, po wystąpieniu awarii, rozpoczyna się proces zwany korektą błędu (COE), aby udokumentować główną przyczynę problemu, opisać, w jaki sposób go naprawiono i szczegółowo opisać zmiany, które wprowadzono, aby uniknąć ponownego wystąpienia. Podczas COE dla tego wydania bazy danych młody, być może naiwny, 20-letni stażysta Swaminathan (Swami) Sivasubramanian (obecnie wiceprezes bazy danych, analityki i organizacji ML w AWS) zadał pytanie: „Dlaczego do tego celu wykorzystujemy relacyjną bazę danych? Te obciążenia nie wymagają poziomu złożoności SQL i gwarancji transakcyjnych”.

To skłoniło Amazon do ponownego przemyślenia architektury swoich baz danych i zbudowania oryginalnej bazy danych Dynamo. Celem było spełnienie wysokich wymagań dotyczących skalowalności i niezawodności platformy e-commerce Amazon. Ta nierelacyjna baza danych typu klucz-wartość była początkowo ukierunkowana na przypadki użycia, które były rdzeniem operacji e-commerce Amazon, takie jak koszyk zakupów i usługa sesji.

AWS opublikował artykuł Dynamo w 2007 roku, trzy lata później, aby opisać zasady projektowania i przedstawić wnioski wyciągnięte z prowadzenia tej bazy danych w celu wsparcia podstawowych operacji e-commerce Amazon. Z biegiem lat pojawiło się kilka klonów Dynamo, co udowodniło, że inne firmy, podobnie jak Amazon, szukały skalowalnych rozwiązań.

Po kilku latach Dynamo zostało przyjęte przez kilka głównych zespołów serwisowych w Amazon. Ich inżynierowie byli bardzo zadowoleni z wydajności i skalowalności. Zaczęto jednak przeprowadzać wywiady z inżynierami, aby zrozumieć, dlaczego nie został on szerzej przyjęty w Amazonie. Dowiedziano się, że Dynamo zapewnia zespołom niezawodność, wydajność i skalowalność, których potrzebowali, ale nie uprościło to złożoności operacyjnej obsługi systemu. Wciąż potrzebne były zespoły do instalacji, konfiguracji i obsługi systemu w centrach danych Amazona.

W tym czasie AWS proponował Amazon SimpleDB jako usługę NoSQL. Wiele zespołów preferowało prostotę operacyjną SimpleDB, pomimo trudności ze skalowaniem domeny powyżej 10 GB, jej nieprzewidywalnego opóźnienia (wpływał na to rozmiar bazy danych i jej indeksów) oraz jej ostateczny model spójności.

Twórcy doszli do wniosku, że idealne rozwiązanie łączyłoby mocne strony Dynamo – skalowalność i przewidywalne niskie opóźnienia w pobieraniu danych – z operacyjną prostotą SimpleDB – po prostu posiadanie tabeli do zadeklarowania i umożliwienie systemowi przejrzystej obsługi niskopoziomowej złożoności.

Tak powstał DynamoDB.

DynamoDB uwalnia programistów od złożoności zarządzania sprzętem i oprogramowaniem. Obsługuje całą złożoność skalowania partycji i ponownego partycjonowania danych w celu spełnienia wymagań dotyczących przepustowości. Skaluje się bezproblemowo bez potrzeby ręcznego ponownego partycjonowania tabel i zapewnia przewidywalny dostęp do danych z małymi opóźnieniami (jednocyfrowe milisekundy).

W AWS moment uruchomienia nowej usługi to nie koniec projektu. To właściwie początek. Przez ostatnie 10 lat nieustannie słuchano opinii użytkowników i wprowadzono do DynamoDB nowe możliwości. Oprócz setek przyrostowych ulepszeń dodano:

  • Obsługę lokalnych i globalnych indeksów pomocniczych w celu umożliwienia bardziej złożonych zapytań bez uszczerbku dla skali lub dostępności (grudzień 2013 r.)
  • Możliwość przechwytywania zmian na dużą skalę za pomocą DynamoDB Streams (listopad 2014 r.), a później za pomocą Amazon Kinesis Data Streams dla DynamoDB (listopad 2020 r.)
  • Możliwość tworzenia globalnych tabel i replikowania danych w regionach AWS (listopad 2017). Umożliwiło to tworzenie aktywnych-aktywnych aplikacji hostowanych w wielu Regionach. Globalna tabela DynamoDB składa się z wielu replik w wielu regionach. Gdy aplikacja zapisuje dane w tabeli replik w jednym regionie, DynamoDB automatycznie propaguje zapis do innych tabel replik w innych regionach.
  • Możliwość tworzenia kopii zapasowych i przywracania dla DynamoDB w celu długoterminowego przechowywania i archiwizacji na potrzeby zgodności z przepisami. (listopad 2017)
  • Odzyskiwanie punktu w czasie (PITR). Umożliwia wykonanie kopii zapasowej tabeli z możliwością przywrócenia w dowolnym momencie z w pełni spójną wersją danych (marzec 2018)
  • Zdolność adaptacyjną umożliwiającą uruchamianie niezrównoważonych obciążeń w nieskończoność (sierpień 2018 r.)
  • Obsługę transakcji ACID (listopad 2018)
  • Integrację z AWS Backup (listopad 2021)

… i wiele więcej.

Na koniec, podczas ostatniej konferencji AWS re:Invent, ogłoszono Amazon DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA). Ta nowa klasa tabel DynamoDB pozwala obniżyć koszty przechowywania danych rzadko używanych o 60%. Idealnym przypadkiem użycia są dane, które należy przechowywać przez długi czas i do których aplikacja musi od czasu do czasu uzyskiwać dostęp, bez uszczerbku dla opóźnień dostępu. W przeszłości, aby obniżyć koszty przechowywania takich danych, tworzyłeś kod, który przenosił rzadko używane dane do tańszych alternatyw, takich jak Amazon Simple Storage Service (Amazon S3). Teraz możesz przełączyć się na klasę tabeli DynamoDB Standard-IA, aby przechowywać rzadko używane dane, zachowując jednocześnie wysoką dostępność i wydajność DynamoDB.

Jak zacząć

Aby rozpocząć pracę z DynamoDB jako programista, możesz zapoznać się z przewodnikiem „Pierwsze kroki” dostępnym w dokumentacji lub przeczytać doskonałą „DynamoDB, Explained”, napisaną przez Alexa DeBrie, jednego z bohaterów AWS i autora książki DynamoDB. Aby zagłębić się w modelowanie danych DynamoDB, AWS Hero Jeremy Daly przygotowuje kurs wideo „Modelowanie DynamoDB dla reszty z nas”.

Klienci korzystają teraz z DynamoDB niezależnie od branży, obszaru geograficznego i wielkości firmy. Nieustannie zaskakują autorów tym, w jaki sposób wprowadzają innowacje w DynamoDB i nieustannie motywują ich do dalszego rozwijania DynamoDB, aby ułatwić tworzenie nowej generacji aplikacji. Twórcy zamierzają kontynuować pracę, aby sprostać stale zmieniającym się potrzebom użytkowników i umożliwić im wprowadzanie innowacji i skalowanie w nadchodzących dziesięcioleciach.

Dekada innowacji z DynamoDB – wirtualny event

Jak wspomniano na początku, twórcy chcieliby wspólnie z Wami świętować tę rocznicę. Przygotowali wydarzenie na żywo na Twitchu, aby poznać najlepsze praktyki, zobaczyć prezentacje techniczne i wziąć udział w Q&A na żywo. Usłyszysz tam historie dwóch wieloletnich klientów: dyrektora generalnego SmugMug, Dona MacAskilla, oraz inżynierów z Dropbox. Ponadto będziesz miał okazję zadać pytania i porozmawiać z legendą bloga AWS, Jeffem Barrem oraz menedżerami produktów i inżynierami DynamoDB. Na koniec bohaterowie AWS, Alex DeBrie i Jeremy Daly, poprowadzą dwie sesje techniczne. Informacje na temat pełnego programu znajdziesz tutaj.

Jak już wspomniano, event będzie dostępny na Twitchu 1 marca, a Ty możesz się zarejestrować już dziś. Pierwszych 1000 rejestrujących się z USA otrzyma bezpłatną cyfrową kopię książki DynamoDB (o wartości detalicznej 79 USD).

Za kolejne dziesięć lat DynamoDB. Cheers!

źródło: AWS

 

Case Studies
Referencje

Jesteśmy ogromnie zadowoleni ze współpracy z firmą Hostersi. Ich specjaliści bardzo nam pomogli w procesie migracji oraz zaprojektowania infrastruktury hybrydowej (Amazon Web Services i on-premise). Polecamy zespół Hostersi jako rzetelnego i profesjonalnego partnera o ogromnych kompetencjach w obszarze DevOps i Cloud Computingu.

Zbigniew Ćwikliński
Director of the Customer Relationship and Technology Development Department
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.