解決方案
無伺服器平台在不同雲端上製造了同一個問題:每個事件都有自己的形狀。開發者必須重新學習如何消費儲存、佇列、資料庫或 SaaS 事件,而工具若沒有自訂轉接器,就無法路由或追蹤事件。
CloudEvents 避開了將每個事件主體標準化這項不可能的任務。它定義了共同的內容屬性與傳輸綁定,同時讓承載內容保持領域專屬。訣竅在於提供基礎設施足夠的中介資料以利運作,而不強迫生產者改寫其業務資料。
到了 2019 年 10 月,CloudEvents 達到 1.0 版,並從 CNCF Sandbox 晉升至 Incubation。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