本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
内部开发平台的黄金之路示例
本节包含以下黄金路径示例:
无服务器工作负载
开发
-
使用 AWS Serverless Application Model (AWS SAM) CLI 进行本地开发和测试。
-
使用AWS 集成应用程序测试套件
进行集成测试。 -
在负载测试期间,使用 Amazon CodeGuru Profiler 对您的应用程序进行微调。
应用程序设计和部署
-
使用 fo AWS Cloud Development Kit (AWS CDK)r 基础架构即代码。
-
使用 CDK Pipelines自动部署基础架构和应用程序。
-
对于脚手架资源,请使用容器镜像创建AWS Lambda函数并将其存储在亚马逊弹性容器注册表 (Ama zon ECR) Container Registry 中。
-
使用 Lambda 图像
而不是普通图片。 -
对于联网,建议您在启用了 VPC 流日志并使用接口 VPC 终端节点访问私有资源的虚拟私有云 (VPC) 中部署 Lambda 函数。
-
使用 Amazon API Gateway 将 HTTP 请求路由到 Lambda 函数。
-
使用版本来管理您的 Lambda 函数的部署。
-
AWS AppConfig用于带有验证器的动态配置。
-
AWS Secrets Manager用于检索机密。
-
要进行灰度测试,请使用别名路由配置将部分流量发送到第二个 Lambda 函数版本。
操作
-
启用 API Gateway 访问日志。
-
记录 API Gateway 请求编号、扩展请求编号和 Lambda 请求编号。
-
对 Lambda 函数使用结构化日志,最好采用 JSON 格式。
-
将日志发送到标准输出 (stdout),而不是调用日志 API。 CloudWatch
-
使用 AWS Lambda Powertools
实施无服务器最佳实践。 -
根据贵组织的要求设置日志保留期。
-
启用 CloudWatch Lambda Insights 来收集、汇总和汇总诊断信息,例如冷启动。这可以帮助您隔离并快速解决您的 Lambda 函数的问题。
-
在 CloudWatch、中、
Errors
Throttles
ProvisionedConcurrencySpilloverInvocations
、和Duration
指标来监控您的 Lambda 函数。有关更多信息,请参阅使用 Lambda 函数指标。 -
在中 CloudWatch,使用 4xx 错误代码、5xx 错误代码和延迟指标来监控您的 API。
-
AWS X-Ray用于收集有关您的应用程序所处理的请求的数据。对于使用分布式组件和服务的应用程序,这可以帮助您快速识别问题和优化机会。
Amazon Elastic Container Service (Amazon ECS)
开发
-
遵循亚马逊弹性容器服务 (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) Block Store。
操作
-
AWS Fargate之所以使用,是因为它提供了一种托管的方式来容器化您的工作负载,而无需管理服务器或亚马逊弹性计算云 (Amazon EC2) 实例的集群。
-
将蓝/绿部署与配合使用。 AWS CodeDeploy
-
使用 Amazon CloudWatch Container Insights 收集、汇总和汇总来自容器化应用程序和微服务的指标和日志。
-
启用FireLens 适用于 Amazon ECS 的日志驱动程序,使用 for Fl uent Bit
sidecar 容器来提高性能并将日志流重定向到不同的位置,例如亚马逊简单存储服务 (Amazon S3) CloudWatch Simple Storage Service 或日志组。AWS
其他资源
-
亚马逊 ECS 蓝图
() GitHub
Amazon Elastic Kubernetes Service(Amazon EKS)
开发
-
遵循亚马逊弹性容器服务 (Amazon ECS) 容器镜像的最佳实践。
-
使用 Amazon Elastic Container Registry (Amazon ECR) 来存储容器镜像并进行持续的安全扫描。
应用程序设计和部署
-
使用 Helm
打包您的应用程序模板。 -
按照一种 GitOps 方法使用 A rgo CD
来部署您的应用程序。 -
使用 AWS Load Balancer 控制器管理 Kubernetes 集群的弹性负载平衡资源。
-
使用证书管理器和AWS Private Certificate Authority
颁发者 管理 TLS 证书。 -
使用亚马逊 Elastic Block Store (Amazon EBS) 容器存储接口 (CSI) 驱动程序或亚马逊弹性文件系统 (Amazon EFS) CSI 驱动程序获取存储选项。
-
使用 ExternalDNS
将 Kubernetes 服务与亚马逊 Route 53 集成。 -
使用外部密钥运算符
将机密存储在 AWS Secrets Manager 或 AWS Systems Manager 参数存储中。 -
使用 Crossp
lane 从你的 Kubernetes 集群管理 AWS 基础架构。
操作
-
将 Calico
用于网络策略,使用 Gatekeeper 作为策略控制器。 -
使用 Karpenter
进行集群自动扩展。 -
使用适用于 Prometheus 的亚马逊托管服务和亚马逊托管 Grafana 来提高可观察性。
-
使用 Kubecost
提供实时的基础设施成本可见性。
其他资源