邁出第一步
簡介
應用程式整合是一整套服務,可讓微型服務、分散式系統和無伺服器應用程式中的解耦元件互相通訊。Amazon Web Services (AWS) 提供超過 6 種應用程式整合服務,以支援在雲端執行的各種工作負載。
選擇最適合您的組織和工作負載的整合服務可能會變得困難。本決策指南將協助您提出正確的問題以探索您的需求,並提供明確指引,讓您了解如何評估並選擇適合您工作負載的整合服務。
這段八分半鐘的短片來自 Gregor Hohpe,AWS Director of Enterprise Strategy 於 AWS re:Invent 2022 上一個小時的演講錄音。短片中提供可用 AWS 應用程式整合服務的概觀。
閱讀時間
20 分鐘
作用
協助確定哪些 AWS 應用程式整合服務最適合您的工作負載。
等級
初階
上次更新日期
2023 年 5 月 31 日
涵蓋的服務
了解
在您開始探索和了解 AWS 提供的準則、環境和整合服務套件時,建議您檢閱一些最佳實務。無論您選擇哪種服務 (或服務套件),這些最佳實務都適用。
了解您環境中的整合
有些組織在維護開放原始碼整合方面花費的時間比他們希望的要多,這是很常見的。建議您在進行這些投資時,考慮社群來源和/或企業或基金會的支援。對這些專案的投資,不僅是財務上的投入,還包括對知識資本和潛在技術債務的投資,因為這些元件及相關整合通常需要更新。如需詳細資訊,請參閱 AWS 開放原始碼部落格。
瞭解您的架構特性
支援各種架構的能力非常重要。建議您利用 AWS Well-Architected Framework 做為指南,以協助您了解在 AWS 上建置架構時所做的決策。此外,使用 Well-Architected Framework 可讓您學習設計和操作可靠、可擴展、安全、高效且具成本效益之雲端系統的架構最佳實務。
使用整合服務的組合
如果您使用專門建置的服務,多種服務的組合可能最適合您的使用案例。以下列出了 AWS 客戶使用服務組合的幾種常見方式。
- 將 Amazon EventBridge 或 Amazon Simple Notification Service (Amazon SNS) 事件路由至 Amazon Simple Queue Service (Amazon SQS) 佇列,做為為下游取用者緩衝區。
- 使用 EventBridge Pipes 直接從串流 (Kinesis Data Streams 或 Amazon Managed Streaming for Apache Kafka (Amazon MSK)) 或佇列 (SQS 或 Amazon MQ) 提取事件,並傳送事件至 EventBridge 匯流排以推送給取用者。
- 將 EventBridge 或 SNS 事件路由至 Kinesis Data Streams 或 Amazon MSK 以收集和檢視分析。
定義
一旦您更清楚了解準則、環境、策略方向和可用服務 (包括部署託管和受管模式) 後,就必須確定整合需求。如果您正在遷移至現有整合平台或訊息代理程式,您可能已知道一些您的需求。然而,您需要確定,如果您遷移至雲端環境 (如果有的話),這些需求將如何改變。
訊息傳送或串流平台
這些平台預計將實現特定業務功能。考慮需要哪些功能時,請使用下列範例使用案例。
範例 1:
想像這樣一家保險公司,它會收到不同類型的理賠訊息 (汽車、房屋或人壽),而且可能有不同的業務規則。這可能意味著,訊息取用者應具有根據訊息上的標題屬性將理賠路由到不同目的地的功能。
範例 2:
想像這樣一家航空公司,其航班狀態更新需要使用像進階訊息傳送佇列協定 (AMQP) 這樣的協定來通知所有連線的系統,例如行李或登機門操作。在原始功能和商業使用案例中,最大的問題是構成最適合的訊息傳遞平台的要素有哪些。我們有多種選擇,可以根據使用案例確定平台的適合性。
市場採用:此平台已獲大量客戶群廣泛採用,且非常適合大部分使用案例。它經過反覆測試,並擁有充滿活力的支援社群,以解決可能遇到的任何問題。這是低風險的決策,並可為開發資源提供足夠培訓。
最適合的使用案例:這些平台將針對特定產業使用案例量身定製,例如航空公司、物流或醫療保健業。它們最適合那些具有現成範本可供採用的使用案例。這些平台很容易開始使用,但市場的採用程度和靈活性較低。採用這類平台可能需要大量時間和資源來進行驗證和建立內部專業知識。
現代:這些使用新一代架構建置的平台,可處理雲端規模部署、多租用戶、災難復原和無伺服器類型的定價。使用此類平台可能需要重構工作負載,以獲得長期可行性。它採用雲端
原生平台,並專注於使用現代應用程式的良好架構原則。
範例 3︰
如果傳訊平台是更大貸款處理流程的一環,且需在多個區域進行,則傳訊平台也需要支援相同的業務需求。如果企業需要在不利情況下復原並轉返至先前狀態的能力,則底層傳訊或串流平台也需要具備某種快照或重播功能,以重建系統的狀態。
您選擇的整合平台應促進貸款申請的非同步處理,或做為多步驟媒體處理工作流程的儲存和轉發通道。訊息或串流平台所需功能將由業務流程的重要性決定。
考慮
考慮雲端中的主要整合架構時,可採用不同的方法來確定每個整合點的需求。
以下是選擇應用程式整合服務時需考慮的一些標準。
-
受管服務和營運開銷
-
開放原始碼
-
工作負載特性
-
快速疊代與功能速度
-
應用程式可攜性
-
自動化可攜性
-
組織規模與技能
-
考慮移至雲端,透過標準化受管服務將營運負擔轉移至 AWS,以降低營運成本。較高層次的抽象化讓開發者和操作者得以專注於自己獨特的增值活動,而不用面對許多未加區分的任務。
-
在開放原始碼生態系統中做出錯誤選擇,可能會困於抽象概念和自製的整合中。此外,確保不同開放原始碼元件共同運作的責任通常由選擇使用它們的組織承擔。這可能導致組織花費大量時間維護開放原始碼整合。
-
要選擇正確的整合服務,了解需在應用程序之間傳送的訊息特性非常重要。訊息格式、大小、保留時間和優先順序等關鍵特性可推動整合服務的決策。
有些整合服務較適合用於小型文字訊息,有些則支援多種格式,如文字和二進制,並提供較大的訊息大小。在某些案例下,具備重播功能的需求也可能是與訊息排序同等重要的因素。
例如,可以使用 Amazon SNS 和 Amazon SQS 提供的 FIFO 功能來實作訊息排序。也要考慮擁有提取或推送型架構,例如 EventBridge 或 SNS 非同步調用 Lambda 函數。
提取式架構可使用 SQS 或 Kinesis Data Streams 之類的服務,其中訊息儲存在佇列或串流上,然後可由取用的系統擷取。Amazon MQ 等訊息服務提供針對較大訊息承載的功能,並具有無限的保留時間。然而,它們並不提供重播功能。 -
如果您的主要焦點是快速建置和疊代,無伺服器服務可能提供最佳價值。無伺服器服務能讓您在不管理基礎設施的情況下建置應用程式。它們提供管理功能和整合,以減少撰寫樣板程式碼所花費的時間。
另一個使用無伺服器測試新想法的好處是,這些服務依用量定價。您的程式碼僅會調用服務時執行,因此實驗不需要前期投資。
-
許多應用程式使用特定通訊協定,例如進階訊息佇列通訊協定 (AMQP) 或 MQ 遙測傳輸 (MQTT) 連線至傳訊服務。或者,它們有一些使用特定傳訊通訊協定的程式庫相依性。這類程式庫或框架包括 Spring Boot、Celery 或 MassTransit。
您可能因為各種原因想要保留這些應用程式。在這些情況下,您整合服務的選擇也取決於所需通訊協定的支援,以便讓您的應用程式具有可攜性。 -
您可能需要與您的基礎設施和部署工具相容的服務,並執行與您在內部部署託管相同的整合系統 (例如 Apache ActiveMQ、RabbitMQ 和 Apache Kafka)。
受管開放原始碼服務 (例如 Amazon MQ 和 Amazon MSK) 可提供雲端的優點,同時與許多用於內部部署的熱門部署工具相容。
如果重構應用程式是可行選項,您可以受益於使用無伺服器服務以原生方式提供此功能,以及與各種 AWS 服務的豐富整合。 -
選擇合適的整合服務時,貴組織的技能是重要因素。如果您的團隊熟悉自我管理的產品,且符合您的需求,則為相同產品提供受管服務可提供最小影響的路徑。如此一來,可協助您套用服務的最佳實務,並專注於增值活動。
選擇
現在您已了解要用於評估應用程式整合需求的準則,那麼您可隨時選擇適合您環境中工作負載的 AWS 服務。
串流資料是由數千個資料來源持續產生的資料,通常會同時傳入資料記錄,且大小不大 (約幾 KB)。它包含各式各樣的資料,例如客戶使用您的行動或 Web 應用程式產生的日誌檔、電子商務採購、遊戲中的玩家活動、來自社交網路、金融交易所或地理空間服務的資訊,以及來自連線裝置或資料中心儀器的遙測結果。
AWS Step Functions 是無伺服器協同運作服務,讓您可以與 AWS Lambda 函數和其他 AWS 服務整合,以建立業務關鍵應用程式。使用 Step Functions 的圖形化主控台,您可以將應用程式工作流程視為一系列事件驅動的步驟。
Amazon Managed Workflows for Apache Airflow
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 是適用於 Apache Airflow 的受管協同運作服務,可用於在雲端進行大規模設定以及操作資料管道。Apache Airflow 是一種開放原始碼工具,能以程式設計的方式編寫、排程和監控稱為工作流程的流程與任務序列。
使用
您現在應已清楚了解每個 AWS 應用程式整合服務的功能,以及哪個服務可能最適合您。若要探索如何使用並了解有關每個可用 AWS 應用程式整合服務的更多資訊,我們提供了探索每個服務運作方式的途徑。下一節提供助您開始使用的深入說明文件、實作教學和資源的連結。
-
Amazon SNS
-
Amazon SQS
-
Amazon EventBridge
-
Amazon MQ
-
Amazon Kinesis Data Streams
-
Amazon MSK
-
AWS Step Functions
-
Amazon MWAA
-
Amazon SNS
-
-
Amazon SQS
-
-
Amazon EventBridge
-
-
Amazon MQ
-
-
Amazon Kinesis Data Streams
-
開始使用 Amazon Kinesis Data Streams
了解基本的 Kinesis Data Streams 資料流原理,以及從 Kinesis 資料串流中放置和取取資料所需步驟。
使用 Amazon Kinesis Data Streams 建立高可用性串流
我們比較並對照不同策略,以便在主要營運區域出現服務中斷、延遲或停機時,建立高可用性 Kinesis 資料串流。
-
Amazon MSK
-
AWS Step Functions
-
使用 AWS Step Functions 和 Amazon EventBridge 排程器排程無伺服器工作流程
我們將展示如何根據您定義的排程,使用 EventBridge 排程器調用狀態機器。
-
Amazon MWAA
-
設定 CD 管道中的 aws-mwaa-local-runner
本教學將引導您使用 Amazon Managed Workflows for Apache Airflow 的 aws-mwaa-local-runner,在 GitHub 中建置持續交付 (CD) 管道,以便在本機測試 Apache Airflow 程式碼。
適用於 Analytics 的 Amazon MWAA 研討會
了解如何建立和協調包含上述眾多服務的資料和機器學習管道,如此一來,您就能熟悉並更清楚了解 Airflow 中可用的勾點和運算子,以便在 AWS 上管理管道/工作流程。