Architecture de Cosmos DB

Développer pour Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Développer pour Azure Storage

Le problème

Problème Cosmos DB

Développer pour Azure Storage

Qu'est-ce que Cosmos DB ?

 

CosmosDB

  • Base de données NoSQL multimodèle, distribuée mondialement.
  • NoSQL : stockage souple, type dossiers.
  • Prend en charge plusieurs API et types de données.
  • Comme un menu flexible : choisissez votre saveur d'API :
    • SQL (Core) pour les documents JSON.
    • MongoDB pour les développeurs Mongo.
    • Cassandra pour les données en larges colonnes.
    • Gremlin pour les relations de graphe.
    • Table API pour le stockage clé‑valeur.
Développer pour Azure Storage

Cosmos DB pour les développeurs

  • Conçu pour les développeurs.
  • Indexation automatique : pas de gestion de schéma.
  • Requêtes rapides.
  • Cinq niveaux de cohérence : de Strong à Eventual.
  • Compromis performance vs cohérence.
    • Strong : tout le monde reçoit le même message instantanément.
    • Eventual : tout le monde rattrape plus tard.

 

Cohérence forte et éventuelle

Développer pour Azure Storage

Montée en charge et débit (RU/s)

Mode provisionné

  • Unités de demande par seconde (RU/s) = devises de performance de Cosmos DB.
  • Chaque lecture, écriture ou requête consomme des RU/s.
  • Choisissez un débit fixe ou l'autoajustement.
Développer pour Azure Storage

Montée en charge et débit (RU/s)

Montée en charge

  • Unités de demande par seconde (RU/s) = devises de performance de Cosmos DB.
  • Chaque lecture, écriture ou requête consomme des RU/s.
  • Choisissez un débit fixe ou l'autoajustement.
  • L'autoajustement s'adapte automatiquement à la demande.
Développer pour Azure Storage

Échelle élastique et partitionnement

  • Cosmos DB monte en charge par partitionnement.
  • Chaque conteneur utilise une clé de partition.
  • La clé regroupe les données liées.
  • Exemple : Cipher Coffee utilise /customerId pour les commandes.
  • Toutes les commandes d'un client sont dans la même partition avec /customerId comme clé.
  • Les requêtes restent rapides même avec la croissance des données.
  • Hot partition : charge de partition inégale qui ralentit les performances.

Montée élastique et partitionnement

Développer pour Azure Storage

Distribution mondiale

  • Répliquez les données vers toute région Azure facilement.
  • Cochez des cases, sans tracas de configuration.
  • Si une région tombe, le trafic est redirigé automatiquement.
  • Aucune interruption, aucune perte de données.
  • Comme un café de secours prêt à servir instantanément.

Distribution mondiale

Développer pour Azure Storage

Surveillance et optimisation des coûts

  • Suivez la performance dans le portail Azure.
  • Consultez des mesures comme RU/s, latence et coût de requête.
  • Comme un tableau de bord d'auto : vitesse et consommation.
  • Les ingénieurs de Cipher Coffee ont analysé ces mesures.
  • Coûts réduits en ajustant le débit dynamiquement.

Surveillance

Développer pour Azure Storage

Passons à la pratique !

Développer pour Azure Storage

Preparing Video For Download...