Amazon DynamoDB

La webconférence d'Amazon de ce soir a eu pour objet de nous présenter l'entrée d'Amazon dans le monde des bases NoSQL. Werner Vogel (le CTO d'Amazon) présente cette base de données comme le fruit de 15 années d'expériences en exploitation de bases de données pour des applications à grande échelle. Cette base a été utilisée pour Amazon Cloud Drive.

DynamoDB est globalement une base NoSQL dont l'architecture serait à première vue avec une réplication en "ring" assez proche de ce qu'on trouve par exemple sur Cassandra. Le modèle de donnée est finalement assez classique de la scène NoSQL, on retrouve un Key-Value store.

Les objectifs principaux sont :
  • Scalabilité : La croissance de la base ne doivent pas se faire au détriment de la performance, et surtout que cette croissance puisse ne pas être anticipée.
  • Performance : garantir une performance,et surtout rendre celle-ci prédictible. Les disques SSD ont été fortement mis à contribution dans cet objectif.
  • Pas d'administration : ce moteur de base de données est totalement totalement managé, vous avez juste à vous soucier de vos données.
  • Coût : il est indexé sur les IOPS, et le volume stocké et pour finir la bande passante. Il est encore trop tôt pour dire si ce cout est abordable ou pas.
  • Sécurité : les données sont répliquées de manière synchrone sur 3 zones de disponibilités dans les DC d'Amazon. L'accès aux données est intégré dans les outils globaux d'Amazon.
  • EMR : Elastic Map Reduce pour traiter massivement les données et faire la jonction avec S3. Cette approche permettra aussi de réaliser les tâches de maintenance, et les opérations d'ETL.
 

Cette vidéo souligne la nécessité de scalabilité, et de disponibilité des bases de données pour les applications web. Et au delà de ces points, Amazon souligne bien le fait que les taches de maintenances doivent être intégrées très tôt dans le design de l'architecture.

Un papier de Werner Vogels en octobre 2007 avait fait part de travaux sur de nouvelles architectures de stockage. je vous invite à consulter un autre post de son blog aujourd'hui dans lequel il détaille l'ensemble des caractéristiques et objectifs de DynamoDB. En outre les infos techniques et commerciales sont déjà disponibles sur la page d'Amazon DynamoDB.

Le fait que dans cette offre soient inclus des SSD permet d'avoir de bonnes espérances quand au niveau de performance, est ce que cela justifie le fait d'abandonner un MongoDB ou Cassandra pour switcher sur cette base, rien de certain de ce coté là. Par contre le fait d'avoir packagée dans une offre du hardware et un service haut de gamme présente un intérêt majeur qui est de pouvoir y accéder de manière banalisée au travers du guichet unique d'AWS.