本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
部署前活動
環境設計
您測試和評估應用程式的環境會影響測試應用程式的完整程度,以及您對這些結果準確反映生產中會發生哪些情況的可信度。您可能可以使用 Amazon DynamoDB 等服務在開發人員機器上執行一些整合測試 (請參閱 DynamoDB 文件中的在本機設定 DynamoDB)。不過,在某個時間點,您需要在複寫生產環境的環境中進行測試,以對您的結果實現最高的可信度。此環境會產生成本,因此建議您採用暫存或管道化環境,在管道中稍後會出現類似生產的環境。
整合測試
整合測試是測試應用程式定義良好的元件在外部相依性操作時正確執行其函數的程序。這些外部相依性可能是其他自訂開發的元件、您用於應用程式 AWS 的服務、第三方相依性和內部部署相依性。 本指南著重於展示應用程式彈性的整合測試。它假設單元和整合測試已經存在,可證明軟體的功能準確性。
我們建議您設計整合測試,專門測試您已實作的彈性模式,例如斷路器模式或負載縮減 (請參閱階段 2:設計和實作)。復原力導向整合測試通常涉及將特定負載套用至應用程式,或使用 AWS Fault Injection Service (AWS FIS)
自動化部署管道
部署至生產前環境並在其中進行測試,是最適合自動化的重複且複雜的任務。此程序的自動化可釋放人力資源並減少發生錯誤的機會。自動化此程序的機制通常稱為管道。當您建立管道時,我們建議您設定一系列的測試環境,以更接近您的生產組態。您可以使用此系列環境重複測試您的應用程式。第一個環境提供的一組功能比生產環境更有限,但成本明顯較低。後續環境應新增 服務並擴展,以更緊密地反映生產環境。
首先在第一個環境中進行測試。部署在第一個測試環境中通過所有測試後,讓應用程式在一定的負載下執行一段時間,以查看是否隨時間發生任何問題。確認您已正確設定可觀測性 (請參閱本指南稍後的警示精確度),以便您可以偵測出現的任何問題。當此觀察期間成功完成時,請將您的應用程式部署到下一個測試環境,並重複此程序,新增環境支援的其他測試或負載。以這種方式充分測試應用程式後,您可以使用先前設定的部署方法,將應用程式部署到生產環境 (請參閱本指南稍早的定義 CI/CD 策略)。Amazon Builders' Library中的文章自動化安全、移出部署
負載測試
在表面上,負載測試類似於整合測試。您會測試應用程式及其外部相依性的離散函數,以確認其如預期般運作。然後,負載測試會超越整合測試,以專注於應用程式在定義明確的負載下的運作方式。負載測試需要驗證正確的功能,因此必須在成功整合測試後進行。請務必了解應用程式在預期負載下的回應能力,以及當負載超過預期時的行為。這可協助您確認您已實作必要的機制,以確保您的應用程式在極端負載下保持彈性。如需在 上載入測試的完整指南 AWS,請參閱 AWS 解決方案程式庫中的在 上進行分散式負載測試 AWS