AI 事件驅動場景 Serverless 實踐

語言: CN / TW / HK

簡介: 事件驅動是指事件在持續事務管理過程中,進行決策的一種策略。可以通過調動可用資源執行相關任務,從而解決不斷出現的問題。通俗地說是當用戶觸發使用行為時對使用者行為的響應。在 Serverless 場景下,事件驅動完美符合其設計初衷之一:按需付費。

作者 | 李鵬(元毅)
來源 | Serverless 公眾號

一、事件驅動框架:Knative Eventing

事件驅動是指事件在持續事務管理過程中,進行決策的一種策略。可以通過調動可用資源執行相關任務,從而解決不斷出現的問題。通俗地說是當用戶觸發使用行為時對使用者行為的響應。在 Serverless 場景下,事件驅動完美符合其設計初衷之一:按需付費。

1. Knative 模型

圖:Knative 模型

Knative 主要包括兩大部分:一是用於工作負載的 Serving,包括版本管理、灰度流量、自動彈性;二是 Eventing(事件驅動框架)。

  • 核心玩家Google;IBM;Pivotal;RedHat;SAP。
  • 友商相關產品Google CloudRun;IBM;Pivotal Function Service(PFC);OpenShift。

2. 事件驅動框架:Eventing

Knative 的 Eventing 提供了一個完整的事件模型,方便接入各個外部系統的事件。事件接入以後,通過 Cloud Event 標準在內部流轉,結合 Broker-Trigger 模型進行事件處理。

從上圖可以看到,Eventing 中包含三部分內容:

  • 事件源
  • Broker-Trigger:事件驅動模型,這個模型在早期 16 年的版本開始出現,其原理是 Trigger 訂閱 Broker 資訊並過濾,最後將事件傳送到對應的服務進行消費。
  • 訊息系統:在 Eventing 中每個 Broker 下面對應一個訊息的系統,來承載對事件的整個流轉。目前社群支援的訊息系統包括 Kafka、NATS、Rocket MQ、Rabbit MQ 等。

3. 關鍵特性:事件規則

事件規則的核心是 Broker-Trigger 模型,它包含以下特性:

  • Trigger 的 filter 的作用是對 Event 進行內容過濾;
  • 支援對 Event 的 Attribute 以及 Data 的內容進行過濾;
  • 支援 Common Expression Language(CEL)表示式過濾;
  • 支援通過 SourceAndType(事件源型別)進行過濾。

二、事件驅動引擎-事件源

1. 事件源介紹

Knative 社群中提供了豐富的事件源接入,包括 Kafka、Github,也支援接入訊息雲產品的一些事件,比如 MNS、RocketMQ 等。

如上圖所示,接入事件源之後,可以通過 Broker-Trigger 模型請求相應的服務。這些服務包括一些具體場景,比如從原始碼構建映象、自動化映象釋出、AI 音影片處理、定時任務等。所有的事件都需要這樣的事件源來拉取,然後下發到 Eventing 整個事件流轉過程。

  • 事件接入接入訊息雲產品事件源;通過 MNS 接入更多雲產品的事件。
  • 事件處理Knative Eventing 內部實現事件的訂閱、過濾和路由機制;事件最終通過 Knative 管理的 Serverless 服務進行消費。
  • 典型案例AI 音影片處理;程式碼提交自動構建映象。

2. RocketMQ 事件源

訊息佇列 RocketMQ 版是阿里雲基於 Apache RocketMQ 構建的低延遲、高併發、高可用、高可靠的分散式訊息中介軟體。

訊息佇列 RocketMQ 版既可為分散式應用系統提供非同步解耦和削峰填谷的能力,同時也具備網際網路應用所需的海量訊息堆積、高吞吐、可靠重試等特性。

RocketMQSource 是 Knative 平臺的 RocketMQ 事件源。其可以將 RocketMQ 叢集的訊息以 Cloud Event 的格式實時轉發到 Knative 平臺,是 Apahe RocketMQ 和 Knative 之間的聯結器。

3. Kafka 事件源

訊息佇列 Kafka 版是阿里雲基於 Apache Kafka 構建的高吞吐量、高可擴充套件性的分散式訊息佇列服務,廣泛用於日誌收集、監控資料聚合、流式資料處理、線上和離線分析等,是大資料生態中不可或缺的產品之一,阿里雲提供全託管服務,使用者無需部署運維,更專業、更可靠、更安全。

三、AI 事件驅動場景實踐

以具體場景為例,該案例是一個直播系統,系統每天都有海量的直播訪問,訪問量根據直播熱度隨時變化,彈性有波動,同時存在不定時的增量。客戶的訴求,一是業務彈性波動,訊息併發性比較高;二是互動實時響應,要求低延遲。

為了滿足對訊息處理的彈性波動、高併發及低延遲的要求,客戶選擇阿里雲的 Knative 服務進行資料的彈性處理。阿里雲 Knative 完全契合了使用者當前的訴求,並且在接入 K8s 標準之上,提供了基於事件和訊息的彈性排程。

當應用例項數隨著業務的波峰波谷進行擴容和縮容時,真正做到了按需使用、實時彈性的能力。整個過程完全自動化,減少業務開發人員在基礎設施上的負擔。在這個案例中,Knative 主要提供了三個能力:極致彈性、事件處理、開箱即用。

下面進行示例演示,演示內容主要有:

  • 部署 Kafka 事件源
  • 部署事件閘道器
  • 部署服務
  • 模擬事件處理

演示過程觀看連結:https://developer.aliyun.com/live/246128

作者簡介:
李鵬,花名:元毅,阿里雲容器平臺高階開發工程師,2016 年加入阿里, 深度參與了阿里巴巴全面容器化、連續多年支援雙十一容器化鏈路。專注於容器、Kubernetes、Service Mesh 和 Serverless 等雲原生領域,致力於構建新一代 Serverless 平臺。當前負責阿里雲容器服務 Knative 相關工作。

https://developer.aliyun.com/article/783248?utm_content=g_1000258839

本文為阿里雲原創內容,未經允許不得轉載。

分享到: