Architektura Cosmos DB

Programowanie dla Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Programowanie dla Azure Storage

Problem

Problem z Cosmos DB

Programowanie dla Azure Storage

Czym jest Cosmos DB?

 

CosmosDB

  • Wielomodelowa, globalnie dystrybuowana baza danych NoSQL.
  • NoSQL – elastyczne przechowywanie danych.
  • Obsługuje wiele interfejsów API i typów danych.
  • Jak elastyczne menu restauracji – wybierz swój interfejs API:
    • SQL (Core) dla dokumentów JSON.
    • MongoDB dla deweloperów Mongo.
    • Cassandra dla danych szerokołańcuchowych.
    • Gremlin dla relacji grafowych.
    • Table API dla przechowywania klucz-wartość.
Programowanie dla Azure Storage

Cosmos DB dla deweloperów

  • Zaprojektowany z myślą o deweloperach.
  • Automatyczne indeksowanie – brak zarządzania schematem.
  • Szybkie zapytania.
  • Pięć poziomów spójności: od Strong do Eventual.
  • Kompromis między wydajnością a spójnością.
    • Strong – wszyscy otrzymują tę samą informację natychmiast.
    • Eventual – wszyscy synchronizują się z opóźnieniem.

 

Spójność Strong i Eventual

Programowanie dla Azure Storage

Skalowanie i przepustowość (RU/s)

Tryb aprowizowany

  • Jednostki żądań na sekundę (RU/s) = waluta wydajności Cosmos DB.
  • Każdy odczyt, zapis lub zapytanie zużywa pewną liczbę RU/s.
  • Wybór między stałą aprowizacją a skalowaniem automatycznym.
Programowanie dla Azure Storage

Skalowanie i przepustowość (RU/s)

Skalowanie

  • Jednostki żądań na sekundę (RU/s) = waluta wydajności Cosmos DB.
  • Każdy odczyt, zapis lub zapytanie zużywa pewną liczbę RU/s.
  • Wybór między stałą aprowizacją a skalowaniem automatycznym.
  • Skalowanie automatyczne dostosowuje się do obciążenia.
Programowanie dla Azure Storage

Elastyczne skalowanie i partycjonowanie

  • Cosmos DB skaluje się dzięki partycjonowaniu.
  • Każdy kontener używa klucza partycji.
  • Klucz grupuje powiązane dane.
  • Przykład: Cipher Coffee używa /customerId dla zamówień.
  • Zamówienia klienta trafiają do tej samej partycji przy użyciu /customerId.
  • Zapytania pozostają szybkie nawet przy rosnących danych.
  • Gorąca partycja: nierównomierne obciążenie partycji spowalnia wydajność.

Elastyczne skalowanie i partycjonowanie

Programowanie dla Azure Storage

Globalna dystrybucja

  • Łatwa replikacja danych do dowolnego regionu platformy Azure.
  • Wystarczy zaznaczyć pola wyboru – bez konfiguracji.
  • Gdy region ulegnie awarii, ruch jest automatycznie przekierowywany.
  • Bez przestojów i utraty danych.
  • Jak rezerwowa kawiarnia gotowa natychmiast obsłużyć klientów.

Globalna dystrybucja

Programowanie dla Azure Storage

Monitorowanie i optymalizacja kosztów

  • Śledzenie wydajności w portalu Azure.
  • Wyświetlanie metryk: RU/s, opóźnienie, koszt żądania.
  • Jak deska rozdzielcza samochodu – prędkość i zużycie paliwa.
  • Inżynierowie Cipher Coffee analizowali te metryki.
  • Obniżyli koszty, dynamicznie dostosowując przepustowość.

Monitorowanie

Programowanie dla Azure Storage

Czas na ćwiczenia!

Programowanie dla Azure Storage

Preparing Video For Download...