Informations, communications, conseils en infrastructure

1.32 Azure Cosmos DB

 Présentation de la technologie

 

Azure Cosmos DB est une base de données NoSQL et multimodèle entièrement managée par Microsoft Azure. Elle est conçue pour des applications modernes nécessitant des performances élevées, une faible latence (de l’ordre de la milliseconde) et une évolutivité mondiale. Azure Cosmos DB prend en charge plusieurs modèles de données (clé-valeur, document, graphe, table) et offre des API compatibles avec MongoDB, Cassandra, Gremlin, PostgreSQL et Table.

 

 Principaux avantages :

  • Évolutivité mondiale : Réplication des données dans plusieurs régions Azure avec haute disponibilité (SLA de 99,999 %).
  • Performances garanties : Temps de réponse en millisecondes avec un débit provisionné mesuré en RU/s (Request Units per second).
  • Flexibilité : Indexation automatique sans schéma et support pour différents modèles de données.
  • Sécurité renforcée : Chiffrement des données au repos et en transit, contrôle d’accès basé sur les rôles (RBAC).
  • Intégration native : Compatible avec d’autres services Azure comme Functions, Synapse Analytics ou IoT Hub.

 

 Cas d’utilisation :

  1. Applications web et mobiles nécessitant une faible latence.
  2. Gestion de contenu généré par les utilisateurs.
  3. Architectures pilotées par événements grâce au flux de modification.
  4. Analyse en temps réel pour l’IoT ou le commerce électronique.

 

 

 Mise en place technique

 

 Étape 1 : Créer un compte Azure Cosmos DB

 Via le portail Azure :

  1. Connectez-vous au portail Azure.
  2. Recherchez « Azure Cosmos DB » dans la barre de recherche.
  3. Cliquez sur « Créer ».
  4. Configurez les paramètres suivants :
  •    API : Sélectionnez l’API adaptée à votre modèle de données (ex. NoSQL, MongoDB).
  •    Nom du compte : Fournissez un nom unique globalement.
  •    Groupe de ressources : Choisissez un groupe existant ou créez-en un nouveau.
  •    Région primaire : Sélectionnez une région proche de vos utilisateurs.

 

  1. Cliquez sur « Vérifier + créer », puis sur « Créer ».

 

 Via Azure CLI :

bash

az cosmosdb create \

  –name my-cosmosdb-account \

  –resource-group my-resource-group \

  –kind GlobalDocumentDB \

  –locations regionName=eastus failoverPriority=0 isZoneRedundant=false

 

 

 Étape 2 : Créer une base de données et un conteneur

 Via le portail Azure :

  1. Accédez à votre compte Cosmos DB créé.
  2. Sous « Explorateur de données », cliquez sur « Nouvelle base de données ».
  3. Fournissez un nom pour la base de données (ex. MyDatabase) et configurez le débit (manuel ou partagé).
  4. Ajoutez un conteneur :

   – Nom du conteneur (ex. MyContainer).

   – Clé de partition (ex. /id pour optimiser les performances).

 

 Via Azure CLI :

bash

az cosmosdb sql database create \

  –account-name my-cosmosdb-account \

  –resource-group my-resource-group \

  –name MyDatabase

 

az cosmosdb sql container create \

  –account-name my-cosmosdb-account \

  –resource-group my-resource-group \

  –database-name MyDatabase \

  –name MyContainer \

  –partition-key-path « /id » \

  –throughput 400

 

 

 Étape 3 : Insérer et interroger des données

 Utilisation du portail Azure :

  1. Accédez à l' »Explorateur de données ».
  2. Sélectionnez votre conteneur et cliquez sur « Nouvel élément ».
  3. Ajoutez un document JSON (par exemple) :

   json

   {

     « id »: « 1 »,

     « name »: « John Doe »,

     « email »: « john.doe@example.com »

   }

 

   

  1. Cliquez sur « Enregistrer ».

 

 Utilisation du SDK .NET :

csharp

var client = new CosmosClient(« <connection-string> »);

var container = client.GetContainer(« MyDatabase », « MyContainer »);

 

// Insérer un document

var item = new { id = « 1 », name = « John Doe », email = « john.doe@example.com » };

await container.CreateItemAsync(item, new PartitionKey(item.id));

 

// Interroger les documents

var query = container.GetItemQueryIterator<dynamic>(« SELECT  FROM c WHERE c.name = ‘John Doe' »);

while (query.HasMoreResults)

{

    foreach (var result in await query.ReadNextAsync())

    {

        Console.WriteLine(result);

    }

}

 

 

 Exploitation technique courante

 

 Surveillance des performances

  1. Accédez à votre compte Cosmos DB dans le portail Azure.
  2. Sous « Métriques », suivez les indicateurs clés comme :
  •    Débit consommé (RU/s).
  •    Latence des requêtes.
  •    Taux d’erreur.

 

 Gestion du débit provisionné

  • Ajustez manuellement le débit via le portail ou utilisez la mise à l’échelle automatique pour optimiser les coûts.

bash

az cosmosdb sql container throughput update \

  –account-name my-cosmosdb-account \

  –resource-group my-resource-group \

  –database-name MyDatabase \

  –name MyContainer \

  –throughput 1000

 

 Sécurisation des accès

  1. Activez le contrôle d’accès basé sur les rôles (RBAC) via Azure Active Directory.
  2. Configurez des clés d’accès ou utilisez des jetons SAS pour limiter l’accès.

 

 Flux de modification

Utilisez le flux de modification pour capturer les modifications apportées aux documents en temps réel :

csharp

ChangeFeedProcessor processor = container.GetChangeFeedProcessorBuilder(« processor », async changes =>

{

    foreach (var change in changes)

    {

        Console.WriteLine($ »Document modifié : {change} »);

    }

})

.WithInstanceName(« instance »)

.WithLeaseContainer(leaseContainer)

.Build();

 

await processor.StartAsync();

 

 

 Bonnes pratiques

 

  1. Optimisation des performances :
  •    – Utilisez une clé de partition efficace pour équilibrer la charge entre les partitions.
  •    – Exploitez les index automatiques pour accélérer les requêtes.

 

  1. Sécurité renforcée :
  •    Activez le chiffrement avec vos propres clés via Azure Key Vault.
  •    Limitez l’accès réseau avec des règles IP ou des points de terminaison privés.

 

  1. Surveillance proactive :
  •    Configurez des alertes via Azure Monitor pour détecter les anomalies.

 

  1. Gestion des coûts :
  •    Utilisez le mode sans serveur pour les charges ponctuelles ou peu fréquentes.
  •    Analysez régulièrement l’utilisation du débit pour ajuster vos besoins.

 

  1. Tests réguliers :
  •    Testez vos applications avec différentes charges pour identifier les goulots d’étranglement.

 

En suivant ces étapes et bonnes pratiques, vous serez capable d’exploiter pleinement Azure Cosmos DB pour développer des applications modernes, hautement performantes et évolutives tout en maîtrisant leur gestion et leur sécurité dans le cloud Azure.

 

Articles similaires

Rémy ACCOLEY

Consultant infrastructure

Expertise Azure, Windows serveur, Exchange, Teams, Office 365, Téléphonie…

Mes articles du moment

Sponsor

Besoin d'un support avec Keysoncloud

Offre Free

Explore

Découvrez nos formations

Offre Free

Vous voulez poster vos contenus

Offre Free