Azure Cosmos DB : Premier service de base de données multi-modèle du secteur distribué à l’échelle mondiale

Publié le 10 mai, 2017

Founder of Azure Cosmos DB, Technical Fellow, Microsoft

Aujourd’hui, nous sommes très heureux d’annoncer la disponibilité générale d’Azure Cosmos DB. Azure Cosmos DB est le premier service de base de données mondialement distribué vous permettant de mettre à l’échelle de manière élastique le débit et le stockage dans le nombre de régions de votre choix, tout en garantissant faible latence, haute disponibilité et cohérence. Le service repose sur les contrats SLA les plus complets du secteur. Azure Cosmos DB est conçu pour propulser les applications IoT et mobiles d’aujourd’hui et les nouveautés gourmandes en intelligence artificielle de demain.

Il s’agit de la première base de données cloud à prendre en charge de manière native une multitude de modèles de données et d’API de requête populaires. Elle repose sur un moteur de base de données novateur capable d’ingérer des volumes de données durables et fournit des requêtes extrêmement rapides, le tout sans avoir à gérer de schéma ni d’index. Il s’agit par ailleurs de la première base de données cloud à offrir cinq modèles de cohérence bien définis. Vous pouvez ainsi choisir celui qui convient le mieux à votre application.

Pour créer ces 5 niveaux de cohérence et renforcer de nombreuses fonctionnalités au sein d’Azure Cosmos DB, nous avons conjugué les recherches effectuées sur les systèmes distribués et les bases de données depuis plusieurs décennies avec une rigueur d’ingénierie de premier ordre. Pour en savoir plus sur les recherches implémentées dans Azure Cosmos DB, regardez cette vidéo du Dr. Leslie Lamport, membre de Microsoft Researcher, expert des systèmes distribués, lauréat du prix Turing et personnage très inspirant.

Azure Cosmos DB - Transformation du développement d’applications cloud

Nous pensons qu’Azure Cosmos DB transforme fondamentalement la manière dont les développeurs créent des applications cloud :

1. Créer plus facilement des applications distribuées à l’échelle mondiale

Azure Cosmos DB offre une distribution mondiale clé en main. En un seul clic, vous pouvez à tout moment ajouter/supprimer un nombre illimité de régions Azure dans votre base de données Azure Cosmos DB. Azure Cosmos DB réplique de manière transparente vos données où que vos utilisateurs se trouvent.

2. Mettre à l’échelle de façon élastique le débit et le stockage, à tout moment, à la demande, à l’échelle mondiale

Azure Cosmos DB permet à votre application de bénéficier d’une mise à l’échelle de façon élastique du débit et du stockage, à tout moment, à la demande et à l’échelle mondiale. Vous pouvez passer de façon élastique de 1 000 à 100 millions de demandes par seconde dans le monde, en un seul appel d’API et payer uniquement le débit (et le stockage) dont vous avez besoin.  Azure Cosmos DB est la seule base de données cloud qui vous permet de mettre à l’échelle le débit à la seconde et à la minute près. Cela vous aide à gérer de manière prédictible les pics inattendus dans vos charges de travail sans devoir effectuer un surprovisionnement.

« Nous utilisons le service Azure Cosmos DB pour nos systèmes de traitement des transactions, car il est capable de gérer un volume extrêmement élevé d’écritures par seconde avec une cohérence prédictible, ce qui confère à nos systèmes les performances et la fiabilité élevées que nos clients exigent. Notre capacité à adapter le débit de chaque collection nous donne le contrôle nécessaire pour ajuster les performances et les coûts afin d’offrir la valeur la plus élevée possible à nos clients ».

- Andrew Hochstetler, Directeur principal, Architecture des applications, Blackboard.

3. Créer des applications hautement réactives

Azure Cosmos DB garantit à votre application des latences d’une milliseconde au 99e centile, n’importe où dans le monde. Le moteur de base de données optimisé en écriture, structuré en journaux et sans verrouillage, qui est au cœur d’Azure Cosmos DB, permet une ingestion continue de données et des requêtes extrêmement rapides. Les utilisateurs vont adorer la réactivité de votre application.

4. Créer des applications toujours opérationnelles

Azure Cosmos DB garantit que votre application est toujours « active », et ce automatiquement. Nous garantissons la haute disponibilité de vos données aussi bien au sein de chaque région que dans l’ensemble des régions. Les fonctionnalités de multi-hébergement du service permettent à votre application et à vos données de rester hautement disponibles même en cas de catastrophe régionale, sans nécessiter de redéploiement complexe de votre application.

« L’équipe Xpander au sein de Microsoft développe l’un des services clés qui alimentent un certain nombre de flux critiques sur Windows et la Xbox. Ils ont donc des objectifs de disponibilité extrêmement élevés, des exigences strictes en matière de latence, répartis dans des centres de données clés du monde entier.  Depuis la migration de notre précédente solution de stockage vers Azure Cosmos DB, nous avons constaté une augmentation considérable de la fiabilité globale, une amélioration significative des performances et une réduction drastique de ce que l’on appelait auparavant « les délais d’interruption des micro-interruptions », qui affectait 0,001% des transactions pour les débits inférieurs à 1 minute un jour donné ».

- Cary Mitchell, Responsable principal Ingénierie logicielle, Xpander

5. Choisir le modèle de cohérence qui convient le mieux à votre application

Avec Azure Cosmos DB, les développeurs ne doivent pas se contenter de choix de cohérence extrêmes (cohérence forte ou éventuelle). Le service offre un choix de cohérence bien définis (fort, obsolescence limitée, session, préfixe cohérent et éventuel) qui vous permet de sélectionner le modèle de cohérence le mieux adapté à votre application.

« Johnson Controls est une société mondiale présente sur les sept continents. Le fait de disposer d’une base de données mondiale telle que Azure Cosmos DB facilite considérablement la création d’applications pour aider nos clients et nos équipements, où qu’ils soient. Azure Cosmos DB nous offre la faible latence dont nous avons besoin et, avec un contrôle précis de la cohérence, nous pouvons faire les bons choix pour notre application en termes de performances. Les membres de l’équipe Microsoft comptent parmi les meilleurs au monde et nous savons que nous pouvons compter sur eux pour respecter leurs contrats SLA très agressifs ».

- Erik Paulson, Ingénieur données, JCI Connected Offerings

6. Itérer votre application rapidement sans vous soucier des schémas ni des index

Pour les applications distribuées à l’échelle mondiale, il est particulièrement difficile de garder le schéma de la base de données et les index synchronisés avec le schéma d’une application. Avec Azure Cosmos DB, vous n’avez plus besoin de gérer les schémas ni les index. Le moteur de base de données est entièrement sans schéma.  Comme aucune gestion de schéma ni d’index n’est requise, vous n’avez pas à vous soucier des temps d’arrêt des applications lors de la migration des schémas. Nous indexons automatiquement toutes les données (aucun schéma, aucun index requis) et offrons des requêtes extrêmement rapides.

« Citrix est passé à Azure Cosmos DB pour prendre en charge la plateforme Citrix Identity, qui permet la connexion unique à plus de 400 000 organisations et 100 millions de personnes dans le monde. Azure Cosmos DB a aidé Citrix à résoudre le principal problème rencontré par l’équipe de développement : une base de données NoSQL antérieure nécessitait une indexation et des modifications constantes du code. Azure Cosmos DB indexe à présent automatiquement et par défaut toutes les propriétés de chaque enregistrement qu’il reçoit. »

- Tom Kludy, Architecte principal, Citrix

7. Utiliser le bon modèle de données pour votre application

Le moteur de base de données d’Azure Cosmos DB est conçu pour prendre en charge de manière native presque tous les modèles de données. Avec le lancement d’aujourd’hui, nous activons les modèles valeur-clé, document et graphique, mais le moteur est conçu pour être extensible et prendre en charge efficacement les nouveaux types de modèles de données. Restez connecté.

8. Utiliser les API de votre choix

Notre objectif est de vous aider à écrire plus facilement des applications distribuées dans le monde entier, en utilisant les outils et les API que vous connaissez déjà.  Le moteur de base de données Azure Cosmos DB prend en charge de manière native le dialecte SQL de DocumentDB, l’API Azure Cosmos DB pour MongoDB, l’API Gremlin (graphique) et les API Stockage Table Azure. À l’avenir, nous prendrons en charge d’autres API d’accès aux données populaires, ce qui vous donnera encore plus de choix et de flexibilité.

9. Contrats SLA complets à la pointe du secteur

Azure Cosmos DB est le premier et le seul service de base de données mondialement distribué du secteur à proposer des contrats SLA complets, bénéficiant d’un soutien financier. Ceux-ci couvrent la haute disponibilité, une faible latence au 99e centile, la cohérence et le débit.

« Chez ASOS, lorsque nous avons évalué le marché de notre future plateforme NoSQL, nous avons envisagé plusieurs options. Nous avons toutefois choisi Azure Cosmos DB, car nous avons été impressionnés à plusieurs niveaux. Tout d’abord, il s’agit d’une base de données managée en tant que service extrêmement attrayante. En tant que détaillant, nous pensons que la valeur réside non pas dans l’exploitation de bases de données mais dans les propositions que vous créez en les utilisant. Cela ne joue évidemment que si la disponibilité et les contrats SLA autour de ce service sont de classe Entreprise. Deuxièmement, nos clients étant présents à l’échelle mondiale, la capacité à reproduire simplement les données au niveau mondial, tant pour la performance que pour la résilience, était essentielle. Enfin, ASOS utilise une architecture de microservices et, naturellement, chaque service ayant des caractéristiques de charge de travail et de performances différentes, la possibilité de faire varier les niveaux de cohérence sans passer à une technologie différente nous confère de nombreux avantages. Azure Cosmos DB constitue déjà une partie importante de l’architecture ASOS et semble de plus en plus au cœur de notre proposition. »

- Dave Green, Architecte Applications d’entreprise, ASOS

Bref historique de Cosmos

Azure Cosmos DB a été lancé sous le nom de « Project Florence » en 2010 pour répondre aux problématiques des développeurs auxquelles font face les applications à grande échelle chez Microsoft. Constatant que les difficultés liées à la création d’applications mondialement distribuées ne sont pas un problème propre à Microsoft, en 2015 nous rendions accessible la première génération de cette technologie aux développeurs Azure sous la forme d’Azure DocumentDB. Depuis, nous avons ajouté de nouvelles fonctionnalités et introduit de nouvelles possibilités significatives.  Azure Cosmos DB en est le résultat.  Azure Cosmos DB est le prochain grand saut en matière de bases de données cloud extensibles distribuées à l’échelle mondiale. Dans le cadre de cette version d’Azure Cosmos DB, les clients DocumentDB, avec leurs données, sont automatiquement des clients Azure Cosmos DB. La transition se fait dans la continuité et ils ont à présent accès au nouveau système révolutionnaire et aux capacités offertes par Azure Cosmos DB.

Pour une vue d’ensemble technique, veuillez consulter le premier d’une série de billets de blog que mon équipe et moi-même publieront ici. Ce billet comprend également une version plus longue de l’entretien avec le Dr. Leslie Lamport intitulé Les fondements d’Azure Cosmos DB.

Avec Azure Cosmos DB, notre mission était de permettre aux développeurs du monde entier de créer plus facilement des applications incroyablement puissantes, à l’échelle du cosmos. Aujourd’hui marque l’instant du Big Bang dans l’équipe Azure Cosmos DB et nous sommes impatients de partager Azure Cosmos DB avec chacun d’entre vous, nos développeurs et clients du monde entier.
Essayez #AzureCosmosDB et donnez-nous votre avis.  Nous avons hâte de voir ce que vous allez créer.

- Vos amis de l’équipe Azure Cosmos DB (@AzureCosmosDB)