Un nouveau venu : Azure Cosmos DB
La conférence Build 2017 (#Build2017) en mai dernier a été l'occasion pour Microsoft de dévoiler comme à l'accoutumée bon nombre de nouveautés.
Parmi ces celles-ci, nous souhaitions revenir sur l'annonce de la disponibilité d'un nouveau service sur la plateforme Microsoft Azure, en l'occurrence Azure Cosmos DB, un service Azure de base de données NoSQL géo-distribuée sur plusieurs centres de données Microsoft, avec à la clé, plusieurs modes de synchronisation de données.
Né en 2010 sous le nom de « Projet Florence », le projet a ensuite grandi comme Azure Document DB avant d'arriver sous sa forme actuelle que nous abordons ci-après. (Le billet Azure Cosmos DB: The industry's first globally-distributed, multi-model database service vous propose une introduction complète sur ce service avec notamment une vidéo du Docteur Dr. Leslie Lamport.)
Azure Cosmos DB supporte différents modèles de données, que ce soit du NoSQL clé-valeur ou column-family, des graphes ou des documents.
Les données stockées sont répliquées puis copiées dans plusieurs emplacements dans le monde afin de garantir leur disponibilité, qui est de 99,99%.
De plus, ces mêmes données peuvent facilement être mises à l'échelle pour répondre à tous les besoins, qu'il s'agisse, pour prendre quelques illustrations en termes de cas d'utilisation :
- D'applications distribuées à l'échelle mondiale pour lesquelles il s'avère nécessaire de garantir un accès aux utilisateurs grâce à la haute disponibilité et à la faible latence des centres de données mondiaux de Microsoft
- De l'Internet de vos objets et, dans ce contexte, de vos diverses charges de travail (workload) IoT avec une mise à l'échelle élastique instantanée sans nuire aux performances d'ingestion ou de requête.
- De sites de commerce en ligne avec la prise en charge des requêtes avancées sur divers catalogues de produits, des pics de trafic et de l'inventaire des stocks en évolution constante.
- De plateformes de jeux en ligne avec une mise à l'échelle élastique de votre base de données pour faire face aux pics de trafic imprévisibles et garantir une faible latence aux joueurs du monde entier.
Azure Cosmos DB garanti au 99ème percentile une latence de moins de 10 millisecondes en lecture et de moins de 15 millisecondes en écriture.
De façon à tirer parti de ce nouveau service, différentes APIs sont proposées avec Azure Cosmos DB :
- Document DB SQL. Vous pouvez consulter les articles Présentation d'Azure Cosmos DB : API DocumentDB
et Azure Cosmos DB : Développer une application web API DocumentDB avec .NET et le portail Azure pour une illustration de mise en œuvre. - MongoDB. Vous pouvez consulter l'article Azure Cosmos DB : migrer une application web MongoDB Node.js existante pour une illustration de mise en œuvre.
- Tables du stockage Azure
(version préliminaire publique). Vous pouvez consulter l'article Azure Cosmos DB : Créer une application .NET à l'aide de l'API Table pour une illustration de mise en œuvre. - Console Gremlin(version préliminaire publique). Vous pouvez consulter l'article Azure Cosmos DB : Créer, interroger et parcourir la console Gremlin pour une illustration de mise en œuvre afin de travailler avec les données API Graphà partir d'Apache TinkerPop.
Un connecteur Spark est également disponible, permettant d'analyser les données. Cette bibliothèque cliente dont le code est disponible ici sur la forge communautaire GitHub permet à Azure Cosmos DB d'agir comme une source d'entrée ou comme entonnoir de de sortie (output sink) pour les travaux (job) Spark. L'article Accelerate real-time big-data analytics with the Spark to Azure Cosmos DB connector illustre comment utiliser ce connecteur.
Nous espérons que cette rapide présentation aura aiguisé votre curiosité. Vous pouvez la compléter par le billet A technical overview of Azure Cosmos DB qui vous donne un bon aperçu technique de ce service.