簡介

應用程式整合是一整套服務,可讓微型服務、分散式系統和無伺服器應用程式中的解耦元件互相通訊。Amazon Web Services (AWS) 提供超過 6 種應用程式整合服務,以支援在雲端執行的各種工作負載。

選擇最適合您的組織和工作負載的整合服務可能會變得困難。本決策指南將協助您提出正確的問題以探索您的需求,並提供明確指引,讓您了解如何評估並選擇適合您工作負載的整合服務。

這段八分半鐘的短片來自 Gregor Hohpe,AWS Director of Enterprise Strategy 於 AWS re:Invent 2022 上一個小時的演講錄音。短片中提供可用 AWS 應用程式整合服務的概觀。

閱讀時間

20 分鐘

作用

協助確定哪些 AWS 應用程式整合服務最適合您的工作負載。

等級

初階

上次更新日期

2023 年 5 月 31 日

關於以下內容的更多決策指南

了解

現代化的主要好處之一是能夠轉移營運責任,讓您能釋放資源去做更具增值能力和創新導向的活動。
 
在現代化的不同層級中有一系列共同責任選項,從將訊息代理程式託管在 Amazon Elastic Compute Cloud (Amazon EC2) 上 (您需要管理擴展、安全組態、佈建、修補等),到所有底層基礎設施均受管的無伺服器產品。

在您開始探索和了解 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 服務。

服務類型
您何時會使用此服務表?
此服務表針對什麼最佳化?
相關服務
當需要解耦發布者和訂閱用戶,並同時向多個訂閱用戶傳送事件時使用。
已針對發布者和訂閱用戶之間的非同步、鬆散耦合通訊最佳化。事件提供了靈活的訊息路由和傳遞,非常適合事件在起始動作或工作流程中扮演重要角色的事件驅動架構。
需要使用發布/訂閱訊息同時向多個收件人廣播訊息時,或需要在元件之間進行可靠且非同步通訊時,就使用點對點傳訊。
已針對高輸送量、可擴展和可靠的非同步發布/訂閱和點對點傳訊的分散式元件最佳化。
在涉及處理即時串流資料的案例中使用串流服務,例如 Amazon Kinesis Data Streams 和 Amazon Managed Streaming for Apache Kafka (MSK)。
已針對擷取、處理和分析大量即時串流資料最佳化,適用於需要即時分析、即時監控、資料探索和其他需要處理高速資料串流的使用案例。
需要以有組織且可擴展的方式設計、協調和管理工作流程或任務序列時使用此功能。
已針對業務流程管理、應用程式協同運作、資料管道自動化和微型服務協調等使用案例最佳化。工作流程將底層基礎設施的複雜性抽象化,讓您專注於有效地設計和管理工作流程。它們能處理相依性和定序,允許平行處理和條件分支,同時提供容錯、錯誤處理和重試,以確保可靠的工作流程執行。

使用

您現在應已清楚了解每個 AWS 應用程式整合服務的功能,以及哪個服務可能最適合您。若要探索如何使用並了解有關每個可用 AWS 應用程式整合服務的更多資訊,我們提供了探索每個服務運作方式的途徑。下一節提供助您開始使用的深入說明文件、實作教學和資源的連結。

  • Amazon SNS
  • 開始使用 Amazon SNS



    我們將示範如何使用 Amazon SNS 主控台管理主題、訂閱和訊息。

    探索指南 »

    Amazon SNS

    使用 Amazon SNS 和 Amazon SQS 篩選發布到主題的訊息

    了解如何使用 Amazon SNS 的訊息篩選功能。 


    立即開始本教學 »

    Amazon SNS

    Amazon SNS 的訊息資料保護簡介


    這篇部落格文章說明什麼是訊息資料保護及其運作方式。   

     閱讀部落格文章 »

    Amazon SNS – 疑難排解



    了解如何檢視組態資訊、監控程序以及收集有關 Amazon SNS 的診斷資料。


    探索指南 »

    使用 Amazon DynamoDB 和 Amazon SNS 建置回合制遊戲

    了解如何使用 Amazon DynamoDB 和 Amazon SNS 建置多人回合制遊戲。


     立即開始本教學 »

    建立事件驅動架構


    了解如何使用 Amazon SNS 作為發布服務,並使用 Amazon SQS 作為訂閱用戶,在簡易發布/訂閱實作上進行建置。

    探索指南 »

  • Amazon SQS
  • Amazon SQS

    Amazon SQS 簡介

    Amazon Simple Queue Service (SQS) 的高階概觀及使用鬆散耦合系統的優點。

    探索指南 »

    Amazon SQS

    開始使用 Amazon SQS

    本指南說明如何使用 Amazon SQS 主控台管理佇列和訊息。


    探索指南 »

    Amazon SQS

    傳送扇出事件通知

    了解如何使用 Amazon SNS 和 Amazon SQS 實作扇出訊息案例。


     立即開始本教學 »

    Amazon SQS

    協調佇列型微型服務

    了解如何設計和執行無伺服器工作流程,以協調訊息佇列型微型服務。


    立即開始本教學 »

    Amazon SQS

    在分散式應用程式之間傳送訊息

    使用 Amazon SQS 主控台建立和設定訊息佇列、傳送訊息、接收和刪除該訊息,然後刪除佇列。

    立即開始本教學 »

  • Amazon EventBridge
  • 開始使用 Amazon EventBridge

    EventBridge 的基礎是建立將事件路由至目標的規則。在本指南中,您會建立基本規則。

    探索指南 »

    Amazon EventBridge

    Amazon EventBridge 開始使用教學

    這些教學將協助您探索 EventBridge 的功能及如何使用這些功能。


     立即開始本教學 »

    Amazon EventBridge

    與其他 AWS 服務整合

    以下教學將展示如何將 EventBridge 與其他 AWS 服務整合。


     立即開始本教學 »

    建立事件驅動架構



    了解事件驅動設計的基礎知識,如何選擇適合任務的 AWS 服務,以及如何在成本和效能方面最佳化。



    立即開始本教學 »

    使用 Amazon EventBridge 建立事件驅動應用程式

    了解如何使用 Amazon EventBridge 提供的無伺服器事件匯流排,連接多個應用程式 (包括 SaaS 應用程式和 AWS 服務) 來建置事件驅動應用程式。

    立即開始本教學 »

  • Amazon MQ
  • Amazon MQ

    加速傳訊現代化

    我們向您介紹 Amazon MQ,您可以參加幾個實作實驗室,以進一步了解 Amazon MQ。


     立即開始本教學 »

    Amazon MQ

    建立連線的訊息代理程式

    學習如何設定 Amazon MQ 訊息代理程式和連接 Java 應用程式,無須重寫程式碼。


     立即開始本教學 »

    Amazon MQ

    建立並連線至 RabbitMQ 代理程式

    了解如何使用 AWS 管理主控台建立 RabbitMQ 代理程式,並將應用程式連線至該代理程式。


     立即開始本教學 »

    Amazon MQ

    建立並連線至 ActiveMQ 代理程式

    了解如何使用 AWS 管理主控台建立基本代理程式。


    立即開始本教學 »

    Amazon MQ

    ActiveMQ 研討會


    探索傳訊概念,例如佇列、主題及 Amazon MQ 的功能 (如容錯移轉、代理程式網路)。

    立即開始本研討會 »

    Amazon MQ

    使用 AWS 無伺服器部署並發布至 Amazon MQ 代理程式

    我們會引導您使用 AWS SAM 一步部署無伺服器後端和 Amazon MQ 代理程式。

    閱讀部落格文章 »

  • Amazon Kinesis Data Streams
  • Amazon Kinesis Data Streams

    Amazon Kinesis Data Streams 簡介


    我們會說明如何使用 Amazon Kinesis Streams 來收集、處理和分析即時資料串流,以建立有價值的洞察。 



     探索指南 »

    Amazon Kinesis Data Streams

    開始使用 Amazon Kinesis Data Streams


    了解基本的 Kinesis Data Streams 資料流原理,以及從 Kinesis 資料串流中放置和取取資料所需步驟。



     探索指南 »

    Amazon Kinesis Data Streams

    使用 Amazon Kinesis Data Streams 建立高可用性串流

    我們比較並對照不同策略,以便在主要營運區域出現服務中斷、延遲或停機時,建立高可用性 Kinesis 資料串流。

     閱讀部落格文章 »

    Amazon Kinesis Data Streams

    Amazon Kinesis Data Streams 範例教學

    這些教學旨在進一步協助您了解 Amazon Kinesis Data Streams 的概念和功能。

     立即開始本教學 »

    Amazon Kinesis Data Streams

    使用 AWS Lambda 搭配 Amazon Kinesis

    了解如何建立 Lambda 函數以從 Kinesis 串流中使用事件。


     立即開始本教學 »

    Amazon Kinesis Data Streams

    使用 Amazon Kinesis 進行即時串流

    探索一系列可協助使用者在 AWS 上建立串流分析應用程式的實驗室練習。


     立即開始本教學 »

  • Amazon MSK
  • Amazon MSK

    開始使用 Amazon MSK

    本教學展示如何建立 MSK 叢集、生產和取用資料,以及使用指標監控叢集運作狀況的範例。



     立即開始本教學 »

    Amazon MSK

    開始使用 MSK 無伺服器叢集

    本教學示範如何建立 MSK 無伺服器叢集、建立可存取該叢集的用戶端機器,並使用用戶端在該叢集上建立主題及將資料寫入這些主題。

     立即開始本教學 »

    Amazon MSK

    Amazon MSK 實驗室


    這些實驗室可在個人或公司的 AWS 帳戶上執行,或者在 AWS 帳戶團隊針對使用研討會工作室之事件佈建的帳戶上執行。



     立即開始本教學 »

  • AWS Step Functions
  • Amazon MSK

    開始使用 AWS Step Functions

    這些教學將引導您逐步建立處理信用卡申請的基本工作流程。


     立即開始本教學 »

    Amazon MSK

    Step Functions 簡介


    本課程介紹 Step Functions 的主要元件,以協助您開始在應用程式中管理工作流程。

     立即開始本教學 »

    Amazon MSK

    建立「率先回應」任務請求扇出模式

    了解如何協調一群為您的電子商務公司提供送貨服務的司機。


     立即開始本教學 »

    Amazon MSK

    AWS Step Functions 設計模式


    了解如何在 Step Functions 狀態機器中實作設計模式,以及使用每個模式的原因。

    立即開始本教學 »

    Amazon MSK

    使用 AWS Step Functions 和 Amazon EventBridge 排程器排程無伺服器工作流程

    我們將展示如何根據您定義的排程,使用 EventBridge 排程器調用狀態機器。

     立即開始本教學 »

    Amazon MSK

    AWS Step Functions 研討會



    了解如何透過一系列互動模組使用 AWS Step Functions 的主要功能。

     立即開始本研討會 »

  • Amazon MWAA
  • Amazon MSK

    開始使用 Amazon Managed Workflows for Apache Airflow

    本指南說明開始使用 Amazon MWAA 所需的先決條件和 AWS 資源。



     探索指南 »

    Amazon MSK

    設定 CD 管道中的 aws-mwaa-local-runner

    本教學將引導您使用 Amazon Managed Workflows for Apache Airflow 的 aws-mwaa-local-runner,在 GitHub 中建置持續交付 (CD) 管道,以便在本機測試 Apache Airflow 程式碼。

     立即開始本教學 »

    Amazon MSK

    限制 Amazon MWAA 使用者對 DAG 子集的存取權

    我們會展示如何限制個別 Amazon MWAA 使用者僅能檢視特定 DAG 或一組 DAG,並與其互動。



     
    立即開始本教學 »

    Amazon MSK

    適用於 Analytics 的 Amazon MWAA 研討會

    了解如何建立和協調包含上述眾多服務的資料和機器學習管道,如此一來,您就能熟悉並更清楚了解 Airflow 中可用的勾點和運算子,以便在 AWS 上管理管道/工作流程。

    立即開始本研討會 »

探索

一旦您已確定哪種方法最適合您的環境工作負載,建議您檢閱這些資源,這有助於開始實作您的方法。您可以在上一節找到特定服務的資源,下一節則有一般事件驅動型架構的資源。

架構圖

探索參考架構圖有助於您建立高可用性、安全、靈活且具成本效益的架構。

建置架構圖 »

白皮書

探索白皮書以協助您開始使用,並學習有關事件驅動架構的最佳實務。


探索白皮書 »

部落格

探索部落格有助於您了解最新技術,並將應用程式現代化。


探索部落格 »

本頁對您是否有幫助?