Les plateformes serverless créaient le même problème dans différents clouds : chaque événement avait sa propre forme. Les développeurs devaient réapprendre à consommer les événements de stockage, de file d'attente, de base de données ou de SaaS, et les outils ne pouvaient pas router ni tracer les événements sans adaptateurs personnalisés.

CloudEvents a évité la tâche impossible de standardiser chaque corps d'événement. Il a défini des attributs de contexte communs et des liaisons de transport, tout en gardant la charge utile spécifique au domaine. L'astuce consistait à donner à l'infrastructure suffisamment de métadonnées pour fonctionner sans forcer les producteurs à réécrire leurs données métier.

En octobre 2019, CloudEvents a atteint la version 1.0 et est passé du Sandbox CNCF à l'Incubation. La CNCF a cité le soutien et la contribution d'AWS, Google, Microsoft, IBM, SAP, Red Hat et VMware, et a listé des implémentations incluant Knative Eventing, Debezium, Kyma et Azure Event Grid.

Standardiser l'enveloppe, pas l'événement

Les attributs de base obligatoires ont rendu le routage et la déduplication portables entre fournisseurs.

Laisser les données d'événement intactes a maintenu l'adoption peu coûteuse pour les producteurs existants.

Les liaisons de protocole ont permis au même modèle d'événement de voyager sur HTTP, Kafka, MQTT et d'autres transports.

Un foyer neutre à la CNCF a réduit la crainte des fournisseurs qu'un cloud possède la grammaire des événements.

Lorsque les charges utiles sont trop diverses pour être standardisées, standardisez la plus petite enveloppe qui permet à l'infrastructure de les router et de les inspecter.

CloudEvents est devenu la couche de métadonnées commune pour les systèmes serverless et événementiels, atteignant plus tard la graduation CNCF. Sa conception a rendu les adaptateurs et les SDK utiles sur toutes les plateformes, car les outils pouvaient inspecter l'enveloppe avant de comprendre la charge utile.

VÉRIFIEZ LES SOURCES

Les sources

  1. Serverless specification CloudEvents reaches Version 1.0 Cloud Native Computing Foundation · cncf.io ·
  2. CloudEvents Specification v1.0.2 CloudEvents · raw.githubusercontent.com