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