AWS rapproche officiellement DynamoDB et Lambda
Avec la mise à disposition de la fonction Streams de DynamoDB, AWS connecte directement sa base NoSQL à son service cloud de gestion d’événement. Ouvrant sur des usages attendus par les entreprises.
Etendre les usages de Lambda et de DynamoDB. C’est ainsi que pourrait être vue la disponibilité de la fonction Streams chez AWS, un outil, jusqu’alors en version de test et déjà présentée lors de la conférence Re : Invent il y a plusieurs mois. Cette fonction a pour vocation de créer un lien concret entre la base de données NoSQL de la marque, DynamoDB, et Lambda, un moteur d’exécution de code automatique et contextualisé (le code s’exécute en réponse à des événements).
Streams pour DynamoDB fournit un log des modifications opérées dans le temps de chaque table de la base - et ce à partir de tous les éléments – exposée via l’interface d’Amazon Kinesis, la solution de traitement des données en temps réel d’AWS.
Cette fonction résout un problème clé de la base de données NoSQL, souvent remonté par les utilisateurs : la difficulté de conserver les données de DynamoDB synchronisées avec d’autres sources de données, comme les entrepôts de données, explique Werner Vogels, le CTO d’AWS dans un billet de blog. Elle permet également la réplication de ces modifications entre plusieurs régions. Une première.
Toutefois, ce qui risque d’intéresser davantage les experts est la capacité de DynamoDB Streams à pouvoir cibler des fonctions d’AWS Lambda, traduisant ainsi la fonction connue du monde relationnel, « TRIGGER », pour le monde NoSQL. Autrement dit, AWS Lambda peut désormais observer les modifications des tables de DynamoDB exposées via Kinesis et déclencher des processus en fonction de ces modifications.
« Je leur ai demandé à multiple reprises de sortir Streams en production, car cela me permet de connecter ensemble Lambda et DynamoDB – ces deux services sont plus puissants ensemble que séparés », explique Jason McMunn, architecte Cloud au sein de la société américaine Ditech Mortgage. Son équipe a par exemple dédié une table de DynamoDB pour capter les données d’un système de gestion de modifications, et ainsi suivre à la trace les assets du datacenter. Aujourd’hui avec Streams, Lambda peut observer cela et déclencher des actions, comme la mise à jour des rapports de production, par exemple.
Simplifier l’intégration des flux
Autre usage possible, l’analyse de données, soutient encore Jason McMunn. Actuellement, Ditech extrait des données de sources tierces, les connectent à ses APIs internes et stocke le rendu dans une table DynamoDB. Avec une connexion directe à Lambda, il n’est plus nécessaire d’avoir recours à un middleware externe pour prendre en charge la connectivité entre les différentes APIs.
De son côté, Dan Sullivan, un architecte système et chroniqueur chez TechTarget (propriétaire du MagIT) voit également une utilisation de Streams dans la synchronisation de fichiers entre plusieurs régions AWS. Un mécanisme exploitable dans des environnements collaboratifs, dans le suivi de données issus de capteurs ou encore la synchronisation d’applications mobiles.
Même si les Triggers des bases de données ne sont pas réservées au monde des bases de données relationnelles ou NoSQL - des outils comme ActiveMQ peuvent être utiliser pour cela –,la plateforme d’AWS est différente. « Je ne vois pas d’autres outils qui puisse proposer une plateforme simple à utiliser, permettant de déployer du code et de l’exécuter en réponse à des événements données », assure-t-il. Ce qui selon lui devrait attirer l’attention des utilisateurs vers DynamoDB. « DynamoDB est positionnée sur une niche. Elle ne va pas remplacer les bases de données relationnelles, mais elle est là pour durer. »
Ce que semblent également confirmer les résultats financiers du groupe. Le catalogue très fourni de services Cloud de la division Amazon Web Services profite à plein au spécialiste de l’ecommerce Amazon. Au second trimestre, les activités Cloud du groupe ont progressé de 81% en un an pour atteindre un chiffre d’affaires de 1,824 Md$.
Traduit et adapté par la rédaction