SUS03-BP01 最佳化非同步與排程任務的軟體和架構
使用有效率的軟體和架構模式 (例如佇列驅動),讓所部署的資源一直保持高使用率。
常見的反模式:
-
在雲端工作負載中過度佈建資源以滿足未預料到的突增需求。
-
您的架構未透過傳訊元件將非同步訊息的傳送者與接受者分離。
建立此最佳實務的優勢:
-
有效率的軟體和架構模式可盡量減少工作負載中的未使用資源,並改善整體效率。
-
您可以將非同步訊息的處理與接收分開擴展。
-
透過傳訊元件,可用性要求會比較寬鬆,不用太多資源即可滿足。
未建立此最佳實務時的風險暴露等級:中
實作指引
使用有效率的架構模式 (例如事件驅動架構
了解工作負載元件的要求,並採用能夠提升整體資源使用率的架構模式。淘汰不再需要的元件。
實作步驟
-
分析工作負載需求以判斷如何回應。
-
如果請求或作業不需要同步回應,請使用佇列驅動的架構和 Auto Scaling 工作節點,以將使用率最大化。以下是您可能會考慮使用佇列驅動架構的一些範例:
Queuing mechanism Description AWS Batch 作業會提交至作業佇列並停留其中,直到能夠排定在運算環境中執行為止。
搭配使用 Amazon SQS 與 Spot 執行個體即可建置能容錯且有效率的架構。
-
對於可以隨時處理的佇列或作業,請使用排程機制來批次處理作業,以提升效率。以下是 AWS 上排程機制的幾個範例:
Scheduling mechanism Description 這是 Amazon EventBridge
的一項功能,可讓您大規模地建立、執行和管理已排定的任務。 在 AWS Glue 中定義爬蟲程式和作業的時間型排程。
Amazon ECS 支援建立排定的任務排定的任務會使用 Amazon EventBridge 規則,依排程執行任務或是在 EventBridge 事件的回應中執行任務。
設定 Amazon EC2 和 Amazon Relational Database Service 執行個體的開始和停止排程。
-
如果您的架構中使用輪詢和 Webhook 機制,請將其更換為事件。使用事件驅動的架構可建置高效率的工作負載。
-
利用 AWS 上的無伺服器
來消除過度佈建的基礎設施。 -
將架構的個別元件調整為適當大小,避免閒置資源等待輸入。
資源
相關文件:
相關影片: