本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
內部開發平台的黃金路徑範例
本節包含下列黃金路徑的範例:
無伺服器工作負載
開發
-
使用 AWS Serverless Application Model (AWS SAM) CLI 進行本機開發和測試。
-
使用AWS 整合式應用程式測試套件
進行整合測試。 -
在負載測試期間,使用 Amazon CodeGuru Profiler 微調您的應用程式。
應用程式設計和部署
-
使用AWS Cloud Development Kit (AWS CDK)適用於基礎設施的 做為程式碼。
-
使用 CDK Pipelines 自動化基礎設施和應用程式部署。
-
對於堆疊資源,請使用容器映像建立AWS Lambda函數,並將其存放在 Amazon Elastic Container Registry (Amazon ECR) 中。
-
在一般映像上使用 Lambda
映像。 -
對於聯網,建議您在已啟用 VPC 流程日誌的虛擬私有雲端 (VPCs) 中部署 Lambda 函數,並使用介面 VPC 端點存取私有資源。
-
使用 Amazon API Gateway 將 HTTP 請求路由到 Lambda 函數。
-
使用 版本來管理 Lambda 函數的部署。
-
AWS AppConfig 用於具有驗證器的動態組態。
-
使用 AWS Secrets Manager 擷取秘密。
-
針對 Canary 測試,請使用別名路由組態,將一部分流量傳送至第二個 Lambda 函數版本。
操作
-
啟用 API Gateway 存取日誌。
-
記錄 API Gateway 請求 ID、延伸請求 ID 和 Lambda 請求 ID。
-
使用 Lambda 函數的結構化日誌,最好使用 JSON 格式。
-
將日誌傳送至標準輸出 (stdout),而不是呼叫 CloudWatch Logs API。
-
使用 AWS Lambda Powertools
實作無伺服器最佳實務。 -
根據您的組織需求設定日誌保留期間。
-
讓 CloudWatch Lambda Insights 收集、彙總和摘要診斷資訊,例如冷啟動。這可協助您隔離並快速解決 Lambda 函數的問題。
-
在 CloudWatch 中,使用
Errors、ProvisionedConcurrencySpilloverInvocations、Throttles和Duration指標來監控 Lambda 函數。如需詳細資訊,請參閱使用 Lambda 函數指標。 -
在 CloudWatch 中,使用 4xx 錯誤代碼、5xx 錯誤代碼和延遲指標來監控您的 APIs。
-
使用 AWS X-Ray 來收集應用程式提供的請求資料。對於使用分散式元件和服務的應用程式,這可協助您快速識別問題和最佳化的機會。
Amazon Elastic Container Service (Amazon ECS)
開發
-
遵循 Amazon Elastic Container Service (Amazon ECS) 容器映像的最佳實務。
-
使用 Amazon Elastic Container Registry (Amazon ECR) 來存放容器映像,並持續進行安全性掃描。
應用程式設計和部署
-
遵循最佳實務,在 Amazon ECS 上架構您的應用程式。
-
使用 AWS Cloud Development Kit (AWS CDK) 做為基礎設施和應用程式部署的程式碼和 CI/CD 管道。
-
使用 Amazon ECS Service Connect 來管理 Amazon ECS 組態,以進行服務探索、連線能力和流量監控。
-
將 Amazon Elastic File System (Amazon EFS) 用於水平擴展的容器化應用程式。如果您的應用程式需要低於毫秒的延遲,且不需要共用的檔案系統,請使用 Amazon Elastic Block Store (Amazon EBS)。
操作
-
使用 ,AWS Fargate因為它提供一種受管方法來容器化工作負載,而不必管理 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的伺服器或叢集。
-
搭配 使用藍/綠部署 AWS CodeDeploy。
-
使用 Amazon CloudWatch Container Insights 從您的容器化應用程式和微服務收集、彙總和摘要指標和日誌。
-
啟用 FireLens for Amazon ECS 日誌驅動程式,並使用 AWS for Fluent Bit
附屬容器來改善效能,並將日誌串流重新導向至不同的位置,例如 Amazon Simple Storage Service (Amazon S3) 或 CloudWatch 日誌群組。
其他資源
-
Amazon ECS 藍圖
(GitHub)
Amazon Elastic Kubernetes Service (Amazon EKS)
開發
-
遵循 Amazon Elastic Container Service (Amazon ECS) 容器映像的最佳實務。
-
使用 Amazon Elastic Container Registry (Amazon ECR) 來存放容器映像,以及用於持續安全性掃描。
應用程式設計和部署
-
使用 Helm
封裝您的應用程式範本。 -
遵循 GitOps 方法,使用 Argo CD
部署您的應用程式。 -
使用AWS Load Balancer控制器來管理 Kubernetes 叢集的 Elastic Load Balancing 資源。
-
使用 cert-manager
和 AWS 私有憑證授權單位 Issuer 來管理 TLS 憑證。 -
使用 Amazon Elastic Block Store (Amazon EBS) 容器儲存介面 (CSI) 驅動程式或 Amazon Elastic File System (Amazon EFS) CSI 驅動程式作為儲存選項。
-
使用 ExternalDNS
將 Kubernetes 服務與 Amazon Route 53 整合。 -
使用外部秘密運算子
將秘密存放在 AWS Secrets Manager 或 AWS Systems Manager 參數存放區中。 -
使用 Crossplane
從 Kubernetes 叢集管理 AWS 基礎設施。
操作
-
使用 Calico
做為網路政策和 Gatekeeper 做為政策控制站。 -
使用 Karpenter
進行叢集自動擴展。 -
使用 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 以獲得可觀測性。
-
使用 Kubecost
提供即時基礎設施成本可見性。
其他資源