多云平臺環境集成方案
?在我們進入細節之前,讓我們回答這個問題:“什么是云集成架構?” 云集成架構是云組件和多個云提供商的組合,允許跨多個數據中心交換數據。
例如,假設我們有一個大型銀行解決方案。一些銀行不想遷移他們的核心和安全數據。他們希望將其保存在本地數據中心。但是,他們無法避免使用云。他們將現有項目、正在啟動的新項目,甚至整個呼叫中心和后臺辦公室遷移到云端。構建這種復雜的架構需要了解云提供的集成服務和工具。
讓我們看看 AWS、Google Cloud 和 Azure 提供了哪些組件。
通用集成服務
了解一般的云集成最佳實踐和模式至關重要。但是,了解每個云提供商提供的具體內容也很重要。在這里,我們將深入了解 AWS、Google Cloud 和 Azure 提供的頂級集成服務。此外,我們還會了解每項服務的優點和缺點。
AWS
AWS 有多種集成服務,提供強大的功能和簡單性。
SQS(簡單隊列服務)
SQS是一種簡單的查詢服務或分布式排隊系統。它是一個隊列,用于存儲應稍后處理的消息。SQS 是一種基于拉取的服務,允許云組件和微服務解耦。
優點:
- 包括死信隊列:自動分離未處理的消息并推入死信隊列
- 標準隊列和 FIFO 之間的選擇
- 自動重復刪除:SQS 會自動檢測并刪除重復的消息。
缺點:
- 不支持一對多消息廣播
SWF(簡單工作流服務)
SWF是一種任務協調和工作流服務。它允許構建并行和順序工作流。它允許構建一個可靠的分布式系統,其中任務是應用程序的邏輯單元或功能。SWF 適用于處理基于人工的操作,如訂單工作流或程序請求。
優點:
- 可靠性:工作流和狀態跟蹤在高可用性數據中心運行時是可靠的
- 靈活性和邏輯分離:SWF 允許架構師和用戶輕松修改工作流元素。此外,SWF 將后臺作業的控制流分開
缺點:
- AWS 管理控制臺中存在很多錯誤,并且缺乏一般支持
- 設置過程很困難,需要很多時間
- 缺乏限制控制跟蹤:可能導致節流問題
AWS 步驟功能
AWS 步驟函數允許我們創建無服務器工作流或狀態機;例如,自動化呼叫中心任務。Step Functions 是一種編排其他 Lambda 函數的編排函數。
優點:
- 通過將工作流邏輯與業務邏輯分離來降低應用程序的復雜性
缺點:
- Step Functions 使用特定的狀態機來定義工作流,僅對 Step Functions 服務有幫助。這可能會導致供應商鎖定。
谷歌云(GC)
GC 有一個集成生態系統,一個集成平臺即服務 (iPaaS)。它提供了一組工具和服務來管理和連接應用程序。Google Cloud iPaaS 包含以下服務:
Integration designer
Integration designer是一種無代碼 UI 工具,能夠構建由觸發器和任務組成的工作流(見下文)。任務和觸發器通過邊和fork 和 join連接。該服務看起來與 SWF 非常相似。
觸發器Triggers
觸發器Triggers是必不可少的工作流元素。觸發器通常是工作流的入口點,代表啟動任務的事件。例如,API 觸發器或發布/訂閱觸發器。
任務Tasks
任務Tasks是觸發器之后的工作單元(或函數)。一個例子是數據映射,您可以在其中將一個數據模型集成到另一個數據模型中。一些預定義任務包括Call Integration任務、For Each Parallel任務、For Each Loop任務、Timer任務等等。
除了許多優點外,Google Cloud 也有一些缺點:
- 與 Azure 和 AWS 相比缺乏數據中心
- 這是一個相對較新的框架。某些功能可能處于預覽版(或測試版)并包含一些錯誤。
Azure
Azure 提供了一個 Azure 集成服務集。它包含多種服務以在應用程序之間建立強大的集成。以下是 Azure 提供的一組最強大的集成服務。
API管理
API 管理是一種 API 網關服務,它集成了多個 API 并連接 Azure Functions、邏輯應用程序和服務總線。
優點:
- API 管理提供許多功能,如身份驗證、授權、緩存響應以及細粒度配額和限制。
- 通過 API 策略靈活定制
缺點:
- 開發人員門戶包含許多可用性問題和錯誤。
- 擴展成本可能太高。API管理自動擴展;但是,在縮放成本方面沒有很好的透明度。
邏輯應用
Logic Apps是一種無服務器、低代碼的工作流集成工具(類似于 GC Integration designer 和 AWS SWF)。
優點:
- 該服務可以連接 SQL Server、Event Grid、Oracle、ServiceNow 和 Office 365。我們可以選擇 200 多個連接器。
- 能夠在本地托管地圖和模式
缺點:
- 難以管理和維護復雜的集成工作流
- 用戶界面問題,尤其是復雜的工作流程
服務總線
服務總線是實現事件總線模式的服務。當一個組件產生一條消息,而其他組件使用它時,它提供了一種基于隊列和發布/訂閱集成原理的事件總線。
優點:
- 該服務還支持翻譯、死信、多消費者基于主題的邏輯和其他功能。
- 強大的消息路由和過濾功能
缺點:
- HTTPs 連接性能緩慢
- 監控消息、隊列和主題的選項非常有限
- 沒有用于調試消息、查詢和過濾器的集成 UI 工具
事件網格
通過事件網格,您可以加入產生事件的云資源(發布者)和處理事件的資源(訂閱者)。事件網格看起來類似于AWS SNS。它也是基于推送方法。事件網格偵聽來自一個組件的事件,并可以在保留消息時觸發其他組件。例如,一個應用程序可以向 Azure 隊列發送消息和電子郵件通知。
優點:
- 企業集成:支持幾乎所有的Azure事件源;例如,函數、事件/IoT 中心、邏輯應用程序、服務總線、SignalR 等等
- 包含用于監視和調試消息的選項
- 包括自動死信隊列
- 成本更低:按事件付費的價格模型導致成本非常低。
缺點:
- 可以提高有關如何存儲和啟用死信的透明度。
Azure Arc
Azure Arc是一項服務,它允許我們連接來自不同云提供商的服務并實現多云集成。該服務將作為銀行多云應用程序的主要集成服務。
優點:
- 支持 SQL Server 和 Kubernetes 等服務
- 支持Windows和Linux操作系統
缺點:
- 有時,代理連接可能不穩定且難以調試。
結論
在本文中,我們介紹了用于構建云集成的頂級組件。然而,集成解決方案不必是企業級的:它們可以是多管齊下甚至是小型的。例如,我們的應用程序 A 需要在應用程序 B 之間交換數據。我們可以使用Azure Durable Functions或 AWS Step Functions 創建集成中間件。通過這些服務,我們可以為數據映射、通知甚至一些簡單的分析創建工作流。