AWS App Mesh 可以提供一致的可见性和网络流量控制,并帮助您交付安全服务,让您可以轻松运行服务。App Mesh 无需更新应用程序代码即可变更监控数据的收集方式或服务间流量的路由方式。App Mesh 会配置每个服务以导出监控数据,并在整个应用程序中实现一致的通信控制逻辑。

AWS App Mesh
公司介绍:
产品详情
AWS App Mesh是AWS提供的全托管服务网格,旨在帮助用户简化微服务架构下服务间通信的管理、监控与安全保障。它通过标准化的方式处理服务间的流量路由、可观测性数据收集及安全策略实施,无需修改应用代码即可实现对微服务通信的精细化控制,解决了微服务架构中常见的服务发现复杂、流量管理困难、故障排查耗时、安全合规不足等问题。App Mesh适用于运行在Amazon ECS、Amazon EKS、Amazon EC2及混合云环境中的微服务,支持多种编程语言和框架,为用户提供一致的服务通信体验。
一、核心定位与整体架构
AWS App Mesh的核心定位是作为微服务架构的通信层基础设施,专注于分离应用逻辑与服务间通信逻辑,通过统一的控制平面实现对服务通信的集中管理。它的整体架构分为控制平面和数据平面两个核心部分,两者协同工作以提供完整的服务网格功能。
- 控制平面:由AWS全托管,负责管理服务网格的配置和策略,包括资源定义、策略分发及状态监控。核心组件包括:
- App Mesh API:提供RESTful接口用于定义虚拟服务、虚拟节点、虚拟路由器等资源,支持通过AWS CLI、SDK或控制台进行操作。
- 控制平面服务:处理配置的存储、验证和分发,将用户定义的策略转换为Envoy代理可识别的配置,并实时同步到数据平面。
- IAM集成:通过AWS IAM实现对控制平面API的权限控制,确保只有授权用户才能修改服务网格配置。
- 数据平面:由部署在每个服务实例旁的Envoy代理组成,负责处理实际的服务间通信,执行控制平面下发的策略。核心组件包括:
- Envoy代理:高性能开源边缘和服务代理,支持HTTP/2、gRPC、TCP等协议,负责流量路由、负载均衡、TLS加密、指标收集等功能。
- Sidecar部署:Envoy代理以Sidecar模式与服务实例同容器或同主机部署,所有进出服务实例的流量均经过代理转发。
App Mesh的核心资源抽象包括:
- 虚拟服务:代表一个逻辑服务,对应一个或多个实际服务实例,服务消费者通过虚拟服务名称访问服务,无需关注实际部署位置。
- 虚拟节点:代表服务的一个版本或部署组,关联到具体的服务实例和Envoy代理,定义了服务的监听端口、协议及健康检查配置。
- 虚拟路由器:连接虚拟服务与虚拟节点,负责将虚拟服务的流量路由到对应的虚拟节点。
- 路由表:虚拟路由器的配置集合,包含多个路由规则,指定流量的匹配条件(路径、header、查询参数)和目标虚拟节点的权重。
- 网关:处理外部流量进入服务网格,支持HTTP、HTTPS和TCP协议,可配置TLS终止和路由规则。
二、核心功能模块详解
1. 精细化流量管理
App Mesh提供丰富的流量管理功能,帮助用户实现对服务间通信的精细化控制,支持复杂的部署策略和故障恢复机制。
- 动态路由策略:
- 基于条件的路由:支持根据HTTP路径、header、查询参数、方法等条件路由流量,例如将/api/v1/users路径的流量路由到用户服务v1版本,/api/v2/users路径的流量路由到v2版本。
- 权重分流:允许将流量按比例分配到多个虚拟节点,适用于金丝雀发布(如10%流量到新版本,90%到旧版本)和蓝绿部署(快速切换流量到新版本)。
- 优先级路由:支持为不同类型的流量设置优先级(如高、中、低),确保关键服务的流量优先被处理,提升系统的稳定性。
- 故障恢复机制:
- 自动重试:配置请求的重试次数、间隔和条件(如5xx错误、连接超时),减少因临时故障导致的请求失败。
- 超时控制:设置服务调用的超时时间,避免请求长时间阻塞,影响系统性能。
- 熔断机制:限制对故障服务的请求数量,防止故障扩散到整个系统,支持配置最大并发连接数、错误率阈值等参数。
- 流量镜像:将实际流量复制到指定的虚拟节点,用于测试新版本服务的兼容性,不影响生产流量。
- 跨环境通信:
- 跨区域通信:支持部署在不同AWS区域的服务间通信,通过虚拟服务统一入口,自动处理跨区域的流量转发。
- 跨集群通信:支持Amazon ECS、Amazon EKS、Amazon EC2等不同计算环境间的服务通信,无需手动配置跨集群的服务发现。
2. 全面的可观测性
App Mesh集成了AWS的观测工具链和开源工具,提供指标、日志、追踪三位一体的可观测性数据,帮助用户快速定位故障和优化性能。
- 指标收集:
- 核心指标:通过Envoy代理收集请求总数、成功请求数、失败请求数、延迟分布(P50、P90、P99)、吞吐量、连接数等指标。
- CloudWatch集成:自动将指标发送到Amazon CloudWatch,用户可查看预定义的App Mesh仪表板,或创建自定义仪表板监控关键指标。
- 指标自定义:支持通过Envoy的Filter配置自定义指标,满足特定业务场景的监控需求。
- 日志记录:
- 访问日志:Envoy代理记录每个请求的详细信息,包括请求方法、路径、源IP、目标IP、状态码、延迟、请求大小、响应大小等。
- 日志目的地:支持将日志发送到Amazon CloudWatch Logs、Amazon S3、Elasticsearch等,便于集中存储和分析。
- 日志格式化:允许自定义日志格式,满足不同日志分析工具的需求。
- 分布式追踪:
- X-Ray集成:自动注入AWS X-Ray追踪ID,支持在X-Ray控制台查看请求的完整调用链,了解每个服务的处理时间和状态。
- OpenTelemetry支持:兼容OpenTelemetry标准,用户可使用OpenTelemetry Collector收集追踪数据,发送到第三方追踪系统。
- 追踪采样:支持配置追踪采样率,减少不必要的性能开销。
- 健康检查:
- 主动健康检查:定期发送HTTP或TCP请求到服务实例,验证其健康状态,自动将不健康的实例从流量中移除。
- 被动健康检查:通过分析流量中的错误率(如5xx错误)判断实例健康状态,支持配置错误率阈值。
- 健康状态同步:将实例的健康状态同步到控制平面,确保流量只路由到健康的实例。
3. 端到端安全保障
App Mesh提供全面的安全功能,确保服务间通信的安全性和合规性,满足金融、医疗等行业的严格要求。
- 强制TLS加密:
- 自动加密:App Mesh使用Envoy代理的TLS功能,自动为服务间的通信启用加密,无需修改应用代码。
- 证书管理:支持使用AWS Certificate Manager(ACM)中的证书,或上传自定义证书到AWS Secrets Manager,自动分发到Envoy代理。
- TLS版本控制:支持配置TLS版本(如TLS 1.2、TLS 1.3)和加密算法,确保符合安全标准。
- 身份认证与授权:
- SPIFFE身份:基于SPIFFE(Secure Production Identity Framework For Everyone)为每个服务实例分配唯一的身份ID,用于验证通信对方的身份。
- IAM授权:通过IAM策略定义服务间的访问权限,允许或拒绝特定服务之间的通信。
- 外部身份提供商:支持集成第三方身份提供商(如Okta、Auth0),实现基于OAuth2.0或OpenID Connect的身份认证。
- 安全合规:
- 审计日志:通过AWS CloudTrail记录所有App Mesh API操作,便于审计和合规检查。
- 合规标准:满足GDPR、HIPAA、PCI DSS等合规标准,帮助用户通过行业认证。
- 网络隔离:支持与Amazon VPC的安全组和网络ACL集成,实现网络层面的访问控制。
4. 无缝集成能力
App Mesh与AWS生态系统深度集成,并支持第三方工具,便于用户快速构建完整的微服务解决方案。
- AWS服务集成:
- 计算服务:支持Amazon ECS(Fargate和EC2启动类型)、Amazon EKS、Amazon EC2、AWS Lambda等计算服务,自动注入Envoy代理。
- 观测服务:集成Amazon CloudWatch、AWS X-Ray、Amazon OpenSearch Service等,提供完整的观测能力。
- 安全服务:集成AWS IAM、AWS Certificate Manager、AWS Secrets Manager等,确保服务通信的安全性。
- 网络服务:集成Amazon VPC、AWS Direct Connect、Amazon Route 53等,支持复杂的网络拓扑。
- 跨环境支持:
- 混合云环境:支持部署在AWS Outposts、本地数据中心的服务,通过App Mesh统一管理跨环境的服务通信。
- 多云环境:支持与其他云厂商的服务网格集成,实现多云环境的服务通信管理。
- 第三方工具兼容:
- 开源观测工具:支持Prometheus、Grafana、Elasticsearch等,便于用户使用熟悉的工具进行监控和分析。
- 服务网格迁移:兼容Istio的部分概念,提供迁移工具,帮助用户从Istio等其他服务网格迁移到App Mesh。
- CI/CD集成:支持与Jenkins、GitHub Actions等CI/CD工具集成,实现服务网格配置的自动化部署。
5. 全托管与自动化运维
App Mesh的全托管特性降低了用户的运维成本,自动化运维功能确保服务网格的稳定运行。
- 无服务器控制平面:控制平面由AWS全托管,用户无需部署或维护控制平面组件,减少运维工作量。
- 自动配置分发:控制平面自动将配置更新分发到所有Envoy代理,无需手动重启服务实例,确保配置的一致性。
- 弹性扩展:数据平面的Envoy代理随服务实例自动扩展,控制平面支持大规模服务网格(数千个服务节点)的管理。
- 版本管理:
- Envoy版本更新:支持Envoy代理的自动更新,确保用户使用最新的安全补丁和功能;允许用户选择Envoy的版本,保持兼容性。
- 配置版本控制:支持配置的版本管理,允许用户回滚到之前的配置版本,避免配置错误导致的系统故障。
- 监控与告警:
- 控制平面监控:AWS自动监控控制平面的健康状态,确保其高可用性。
- 自定义告警:用户可在CloudWatch中设置告警规则,当指标超过阈值时(如请求失败率过高),通过邮件、短信或AWS SNS通知相关人员。
三、技术特点与优势
- 无侵入性设计:通过Sidecar模式部署Envoy代理,无需修改应用代码即可实现所有功能,让用户专注于应用逻辑开发,降低迁移成本。
- 跨环境一致性:无论服务运行在ECS、EKS、EC2还是混合云环境,App Mesh都提供一致的服务通信管理体验,减少跨环境管理的复杂度。
- 精细化流量控制:支持多种路由策略和故障恢复机制,满足复杂的部署场景(如金丝雀发布、蓝绿部署),提升系统的可靠性和灵活性。
- 全面的可观测性:集成AWS观测工具链和开源工具,提供完整的指标、日志和追踪数据,帮助用户快速定位故障和优化性能。
- 端到端安全保障:自动TLS加密、身份认证与授权、审计日志等功能,确保服务间通信的安全性和合规性,满足严格的行业标准。
- 全托管运维:控制平面由AWS全托管,自动化配置分发和版本更新,降低运维成本和错误风险。
- 深度集成AWS生态:与AWS的计算、观测、安全、网络服务无缝集成,快速构建完整的微服务解决方案。
- 高扩展性与性能:支持大规模服务网格,Envoy代理的高性能设计确保服务间通信的低延迟和高吞吐量。
四、典型应用场景
- 金丝雀发布与蓝绿部署:使用权重分流功能,将部分流量路由到新版本服务,验证稳定性后逐步增加流量比例;或快速切换流量到新版本,实现零 downtime 的版本更新。
- 跨区域微服务通信:统一管理部署在多个AWS区域的服务通信,自动处理跨区域的流量转发,提升系统的可用性和灾备能力。
- 微服务故障排查:通过分布式追踪和日志分析,快速定位服务间通信的故障点(如延迟过高的服务、失败请求的来源),缩短故障恢复时间。
- 混合云微服务管理:统一管理AWS云和本地数据中心的微服务通信,确保跨环境的一致性和安全性。
- 安全合规场景:在金融、医疗等行业,通过强制TLS加密、身份认证和审计日志,满足GDPR、HIPAA等合规要求。
- 大规模微服务架构:管理数千个服务节点的大规模微服务架构,通过全托管控制平面和自动化运维,降低管理复杂度。
- API网关集成:与Amazon API Gateway集成,实现外部流量进入服务网格的统一管理,支持TLS终止、路由和安全策略。
总结:AWS App Mesh作为全托管的服务网格,为微服务架构提供了一站式的通信管理解决方案。它通过无侵入性的设计、精细化的流量控制、全面的可观测性和端到端的安全保障,帮助用户解决微服务通信中的复杂问题,提升系统的可靠性、安全性和可维护性。无论是在AWS云环境还是混合云环境,App Mesh都能为用户提供一致的服务通信体验,是构建现代微服务架构的理想选择。
点击链接,了解更多产品详情:
登录后查看
https://aws.amazon.com/cn/app-mesh" rel="noopener noreferrer" target="_blank" style="color: rgb(230, 0, 0, null, null, null, null, null, 9, null, 0, 0, null, 0, null, 0, null, 0, 0, null, 0);">https://aws.amazon.com/cn/app-mesh


案例介绍
版权/专利

.png)
.png)










.png)

.png)
.png)
.png)
