解决方案
无服务器平台在不同云上制造着同一个问题:每个事件都有自己的形态。开发者不得不重新学习如何消费存储、队列、数据库或 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 能够跨平台发挥作用,因为工具可以在理解负载之前先检查信封。
从这里,追溯依据
参考来源
- Serverless specification CloudEvents reaches Version 1.0 Cloud Native Computing Foundation · cncf.io ·
- CloudEvents Specification v1.0.2 CloudEvents · raw.githubusercontent.com