Cosmos DB-architectuur

Ontwikkelen voor Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Ontwikkelen voor Azure Storage

Het probleem

Cosmos DB-probleem

Ontwikkelen voor Azure Storage

Wat is Cosmos DB?

 

CosmosDB

  • Multi-model, wereldwijd gedistribueerde NoSQL-database.
  • NoSQL: flexibele, map-achtige opslag.
  • Ondersteunt meerdere API’s en datatypen.
  • Als een flexibel restaurantmenu: kies je API-smaak:
    • SQL (Core) voor JSON-documenten.
    • MongoDB voor Mongo-ontwikkelaars.
    • Cassandra voor wide-column data.
    • Gremlin voor graafrelaties.
    • Table API voor key-value-opslag.
Ontwikkelen voor Azure Storage

Cosmos DB voor developers

  • Gemaakt met developers in gedachten.
  • Automatische indexering: geen schema-beheer.
  • Snelle queries.
  • Vijf consistentieniveaus: van Strong tot Eventual.
  • Afweging tussen performance en consistentie.
    • Strong: iedereen ziet direct hetzelfde.
    • Eventual: iedereen loopt later bij.

 

Sterke en eventual consistency

Ontwikkelen voor Azure Storage

Schalen en throughput (RU/s)

Voorzieningsmodus

  • Request units per second (RU/s) = prestatievaluta van Cosmos DB.
  • Elke read, write of query kost RU/s.
  • Kies vaste provisioning of autoscale.
Ontwikkelen voor Azure Storage

Schalen en throughput (RU/s)

Schalen

  • Request units per second (RU/s) = prestatievaluta van Cosmos DB.
  • Elke read, write of query kost RU/s.
  • Kies vaste provisioning of autoscale.
  • Autoscale past zich automatisch aan de vraag aan.
Ontwikkelen voor Azure Storage

Elastisch schalen en partitionering

  • Cosmos DB schaalt via partitionering.
  • Elke container heeft een partitionsleutel.
  • De sleutel groepeert gerelateerde data.
  • Voorbeeld: Cipher Coffee gebruikt /customerId voor orders.
  • Alle orders van een klant staan in dezelfde partitie met /customerId als sleutel.
  • Queries blijven snel, ook bij groei.
  • Hot partition: Oneven belasting van partities vertraagt prestaties.

Elastisch schalen en partitionering

Ontwikkelen voor Azure Storage

Wereldwijde distributie

  • Repliceer data eenvoudig naar elke Azure-regio.
  • Alleen vinkjes zetten, geen gedoe met setup.
  • Valt een regio uit, dan wordt verkeer automatisch omgeleid.
  • Geen downtime, geen dataverlies.
  • Als een reservecafé dat direct open kan.

Wereldwijde distributie

Ontwikkelen voor Azure Storage

Monitoring en kostenoptimalisatie

  • Volg prestaties in de Azure Portal.
  • Bekijk metrics zoals RU/s, latentie en request charge.
  • Als een autodashboard: zie snelheid en verbruik.
  • Engineers van Cipher Coffee analyseerden deze metrics.
  • Kosten verlaagd door throughput dynamisch aan te passen.

Monitoring

Ontwikkelen voor Azure Storage

Laten we oefenen!

Ontwikkelen voor Azure Storage

Preparing Video For Download...