无服务器平台在不同云上制造着同一个问题:每个事件都有自己的形态。开发者不得不重新学习如何消费存储、队列、数据库或 SaaS 事件,而工具在没有自定义适配器的情况下无法路由或追踪事件。

CloudEvents 避开了标准化每一个事件体这一不可能完成的任务。它定义了通用的上下文属性和传输绑定,同时让负载保持领域特定。诀窍在于为基础设施提供足够的元数据以便其工作,而不强迫生产者重写他们的业务数据。

到 2019 年 10 月,CloudEvents 达到 1.0 版本,并从 CNCF 沙箱迁移至孵化阶段。CNCF 提到了来自 AWS、Google、Microsoft、IBM、SAP、Red Hat 和 VMware 的支持与贡献,并列举了包括 Knative Eventing、Debezium、Kyma 和 Azure Event Grid 在内的实现。

标准化信封,而非事件

必需的核心属性使路由和去重能够跨供应商移植。

不改动事件数据使现有生产者的采用成本很低。

协议绑定让同一事件模型可以通过 HTTP、Kafka、MQTT 和其他传输方式传输。

中立的 CNCF 归属减少了供应商对某一家云将拥有事件语法的担忧。

当负载过于多样而无法标准化时,就标准化能让基础设施路由和检查它们的最小信封。

CloudEvents 成为无服务器和事件驱动系统的通用元数据层,后来达到 CNCF 毕业阶段。其设计使适配器和 SDK 能够跨平台发挥作用,因为工具可以在理解负载之前先检查信封。

从这里,追溯依据

参考来源

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