使用完全受控的開放原始碼數據引擎進行串流處理

Azure 事件中樞
Azure Kubernetes Service (AKS)
Azure Cosmos DB
適用於 PostgreSQL 的 Azure 資料庫
Azure Cache for Redis

本文提供使用完全受控 Azure 數據服務的串流解決方案範例。

架構

顯示串流數據如何流經系統的架構圖表。Kafka、Kubernetes、Cassandra、PostgreSQL 和 Redis 元件組成系統。

下載此架構的 Visio 檔案

工作流程

  1. Apache Kafka 事件中樞功能會串流來自 Kafka 產生者的事件。

  2. Apache Spark 會取用事件。 AKS 為 Apache Spark 作業提供受控環境。

  3. 使用 Azure Cosmos DB for Apache Cassandra 的應用程式會將事件寫入 Cassandra。 此資料庫可作為事件的儲存平臺。 AKS 裝載寫入 Cassandra 的微服務。

  4. Azure Cosmos DB 的變更摘要功能會即時處理事件。

  5. 排程的應用程式會在儲存在 Cassandra 的事件上執行批次導向處理。

  6. 參考數據的儲存會擴充事件資訊。 批次導向應用程式會將擴充的事件資訊寫入 PostgreSQL。 一般參考資料存放區包括:

  7. 批次導向的應用程式會處理 Cassandra 數據。 該應用程式會將已處理的數據儲存在 適用於 PostgreSQL 的 Azure 資料庫 中。 此關係型數據存放區會將數據提供給需要擴充資訊的下游應用程式。

  8. 報告應用程式和工具會分析PostgreSQL資料庫數據。 例如,Power BI 會使用 適用於 PostgreSQL 的 Azure 資料庫 連接器連接到資料庫。 此報告服務接著會顯示數據的豐富視覺效果。

  9. Azure Cache for Redis 提供記憶體內部快取。 在此解決方案中,快取包含重要事件的數據。 應用程式會將資料儲存至快取,並從快取擷取數據。

  10. 網站和其他應用程式會使用快取的數據來改善回應時間。 有時候快取中無法使用數據。 在這些情況下,這些應用程式會使用 另行快取模式 或類似的策略,從 Azure Cosmos DB 中的 Cassandra 擷取數據。

元件

替代項目

您可以將此解決方案中的開放原始碼相容產品和服務取代為其他人。 如需 Azure 中可用開放原始碼服務的詳細資訊,請參閱 Azure 上的開放原始碼。

案例詳細資料

執行開放原始碼引擎的完全受控 Azure 資料服務組成此串流解決方案:

開放原始碼技術提供許多優點。 例如,組織可以使用開放原始碼技術來:

  • 移轉現有的工作負載。
  • 利用廣泛的開放原始碼社群。
  • 限制廠商鎖定。

藉由讓開放原始碼技術可供存取,Azure 工具和服務可協助組織利用這些優點,並開發其選擇的解決方案。

此解決方案使用完全受控 的平臺即服務 (PaaS) 服務。 因此,Microsoft 會處理修補、服務等級協定 (SLA) 維護和其他管理工作。 另一個優點是原生與 Azure 安全性基礎結構整合。

潛在的使用案例

此解決方案適用於各種案例:

  • 使用 Azure PaaS 服務建置使用開放原始碼技術的新式串流解決方案
  • 將開放原始碼串流處理解決方案遷移至 Azure

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

在設計及實作每個服務時,請記住最佳做法。 如需每個服務的指導方針,請參閱 Microsoft 文件網站。 另請檢閱下列各節中的資訊:

效能

  • 作 適用於 PostgreSQL 的 Azure 資料庫 的連接共用。 您可以在應用程式內使用連線共用連結庫。 或者,您可以使用聯機共用器,例如 PgBouncerPgpool。 建立與 PostgreSQL 的連線是一項昂貴的作業。 使用連線共用時,您可以避免降低應用程式效能。 PgBouncer 內 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。

  • 使用適當的 數據分割策略,設定適用於 Apache Cassandra 的 Azure Cosmos DB 以獲得最佳效能。 決定在分割數據表時,是否要使用單一欄位主鍵、複合主鍵或複合分割區索引鍵。

延展性

  • 選擇事件中樞層,將串流需求納入考慮:

    • 針對小於 120 MBps 的中範圍輸送量需求,請考慮 進階版 層。 此層會彈性地調整以符合串流需求。
    • 針對具有 GB 數據輸入的高階串流工作負載,請考慮 專用層。 此層是具有保證容量的單一租使用者供應專案。 您可以相應增加和減少專用叢集。
  • 如果您的工作負載無法預測且尖峰,請考慮 為 Azure Cosmos DB 自動調整布建的輸送量 。 您可以將 Azure Cosmos DB 設定為使用手動布建的輸送量或自動調整布建的輸送量。 使用自動調整時,Azure 會根據您的使用量,自動並立即調整每秒的要求單位。

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性要素概觀。

  • 使用 Azure Private Link 讓 Azure 服務成為虛擬網路的一部分。 當您使用 Private Link 時,服務與網路之間的流量會透過 Azure 骨幹流動,而不需要周遊公用因特網。 此解決方案中的 Azure 服務支援所選 SKU 的 Private Link。

  • 檢查組織的安全策略。 使用適用於 Apache Cassandra 的 Azure Cosmos DB,金鑰會提供金鑰空間和資料表等資源的存取權。 Azure Cosmos DB 實例會儲存這些密鑰。 您的安全策略可能會要求您將這些密鑰傳播至金鑰管理服務,例如 Azure 金鑰保存庫。 也請務必 根據貴組織的原則輪替密鑰

復原

請考慮使用 可用性區域 來保護業務關鍵應用程式免於資料中心失敗。 此解決方案的服務支援可用性區域在 可用性區域啟用區域中所選 SKU 的可用性區域。 如需最新資訊,請檢閱 支援可用性區域的服務清單。

成本最佳化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。

若要估計此解決方案的成本,請使用 Azure 定價計算機。 同時請記住下列幾點:

  • 事件中樞可在基本、標準、進階版和專用層中使用。 進階版 或專用層最適合大型串流工作負載。 您可以調整輸送量,因此請考慮從小型開始,然後在需求增加時相應增加。

  • Azure Cosmos DB 提供兩種模型:

    • 適用於需求工作負載的布建輸送量模型。 此模型可在兩個容量管理選項中使用:標準和自動調整。
    • 適合執行小型尖峰工作負載的無伺服器模型。
  • AKS 叢集是由在 Azure 中執行的一組節點或虛擬機(VM)所組成。 計算、記憶體和網路元件的成本構成叢集的主要成本。

  • 適用於 PostgreSQL 的 Azure 資料庫 可在單一伺服器和彈性伺服器層中使用。 不同層級迎合不同的案例,例如可述詞、高載和高效能工作負載。 成本主要取決於計算節點和記憶體容量的選擇。 針對新的工作負載,請考慮選擇彈性伺服器層,因為它在單一伺服器層上具有更廣泛的 支援功能 。 另請注意,單一伺服器位於 取代的路徑上。

  • Azure Cache for Redis 可在多層中使用。 這些層可容納從 250 MB 到數 TB 的快取。 除了大小,其他需求也會影響階層的選擇:

    • 叢集
    • 持續性
    • 作用中異地複寫

部署此案例

當您部署此解決方案時,請記住下列幾點:

參與者

本文由 Microsoft 更新及維護。 原始投稿人如下。

主體作者:

下一步

若要瞭解相關解決方案,請參閱下列資訊: