協同運作與狀態管理 - 實作 AWS 上的微型服務

協同運作與狀態管理

在統籌工作流程時,若牽涉到多個微型服務,則微型服務的分散式特性,會使得這項任務充滿挑戰。開發人員可能會嘗試將協同運作用的程式碼,直接加到服務中。這種做法應該避免,因其會導致更緊密的耦合,而讓快速替換個別服務變得更加困難。

您可使用 AWS Step Functions,利用執行不同功能的個別元件,來建置應用程式。Step Functions 提供狀態機器,此機器會隱藏服務協同運作的複雜性,例如錯誤處理、序列化和並行化。這可讓您快速地擴展和變更應用程式,同時避免服務中加入額外的統籌程式碼。

Step Functions 是可靠的方式,可用來統籌元件,並逐步執行應用程式的函數。Step Functions 提供圖形化的主控台,可排列應用程式的元件,並將這些元件以視覺化的方式呈現為一連串的步驟,讓您輕鬆地建置和執行分散式服務。

Step Functions 會自動啟動且追蹤每個步驟,並在發生錯誤時重試,讓您的應用程式可如預期依序執行。Step Functions 會記錄每個步驟的狀態,如果有哪個環節出了差錯,您就能迅速診斷並解決問題。您甚至不需要撰寫程式碼,即可變更和新增步驟,來讓您的應用程式進化,更快速地進行創新。

Step Functions 是 AWS 無伺服器平台的一部分,可根據運算資源 (例如 Amazon EC2、Amazon EKS 和 Amazon ECS),以及 Amazon SageMakerAWS Glue 等其他服務,來協同運作 Lambda 函數與應用程式。Step Functions 會為您管理運作和底層的基礎設施,以協助確保您的應用程式無論規模皆可使用。

如要建置工作流程,Step Functions 會使用 Amazon 狀態語言。工作流程可以包含連續或並行的步驟,和分支的步驟。

下圖顯示微型服務架構的範例工作流程,此流程結合了連續和並行的步驟。此種工作流程也可以透過 Step Functions API 或 API Gateway 來叫用。

使用 Step Functions 叫用的微型服務工作流程範例