简介:本文分享了阿里巴巴服务网格技术三位一体战略背后的思考和实践,关于阿里云服务网格 ASM 的一些产品功能,包括最近发布的一些功能。
作者:宗泉、宇曾
阿里巴巴三位一体战略
阿里云内部很早就提出了开源、自研、商业化三位一体战略,先谈谈我对它的理解。
阿里云服务网格 ASM 实现了零信任安全能力。在微服务网络中使用 HTTP 通信的交互并不安全,一旦内部的某个服务被攻陷,攻击者能够以该机器为跳板来攻击内网。服务网格 ASM 能够减小云原生环境中的被攻击面积,并提供零信任应用网络所需的基础框架。通过 ASM 管理服务到服务的安全性,可以确保服务网格的端到端加密、服务级别身份认证和细粒度授权策略。
相比传统的在应用程序代码中构建安全机制,ASM 零信任安全体系具有以下优势:
ASM Sidecar 代理的策略生命周期与应用程序保持独立,因此可以更轻松地管理这些 Sidecar 代理。
ASM 支持动态配置策略,更新策略变得更加容易,更新立即生效而无需重新部署应用程序。
ASM 提供了对附加到请求的终端用户凭据进行身份验证的能力,例如 JWT。
ASM 的集中控制架构使企业的安全团队可以构建、管理和部署适用于整个企业的安全策略。
将身份验证和授权系统作为服务部署在网格中,如同网格中的其他服务一样,这些安全系统从网格中本身也可以得到安全保证,包括传输中的加密、身份识别、策略执行点、终端用户凭据的身份验证和授权等。策略控制面定义并管理多种类型的认证策略;网格控制面赋予网格中工作负载身份,并自动轮转证书;数据面的 Sidecar 代码执行策略。图中用户配置规则只允许交易服务发起调用订单服务,拒绝购物车服务调用订单服务。
由于服务网格 ASM 是控制平面托管,支持管控多个数据面集群,流量治理 CR 存在控制平面,支持用户通过控制平面的 KubeAPI 操作治理规则。在服务网格新版本中,为了:
1、支持用户在非托管模式下的操作习惯,能够在数据面 Kubernetes 集群中读写 Istio 资源 ;
2、支持 Helm 常用命令工具;
3、兼容其他开源软件在单集群 addon 模式下的 API 操作,阿里云服务网格 ASM 实现了支持数据面集群 Kube API 访问 Istio 资源。两者同时对外提供,用户可以根据实际场景按需使用。
ASM 兼容社区标准,提供了控制平面的平滑升级,那么数据面的升级可以升级两种方式:滚动升级和热升级能力,关于滚动升级能力需要设置升级 Strategy 为 RollingUpdate ,注入 Sidecar 的 Pod 在发布时,Envoy 镜像会自动升级到新版本。图中主要介绍第二种方式阿里云服务网格 ASM 结合 OpenKruise 项目实现的热升级功能,在升级数据平面时不会中断服务,使数据平面在应用无感知的情况下完成升级。应用发布和更新自动生成 SidecarSet 配置,更新 SidecarSet 配置完成数据面的升级,目前这项能力在新版本灰度中。
服务网格 ASM 配合阿里云应用高可用服务 AHAS 可以对部署在服务网格内的应用进行流量控制,目前已经支持单机限流,集群限流,自适应限流。同时服务网格 ASM 也原生支持 Istio 的全局限流和本地限流,全局限流使用全局 gRPC 服务为整个网格提供速率限制,本地限流用于限制每个服务实例的请求速率,本地限流可以与全局限流结合使用。
服务网格 ASM 也支持通过 MCP over XDS 协议对接微服务引擎 MSE 的注册中心,同步服务信息到网格。MSE 的 Nacos 原生支持 MCP 协议,用户只需要在创建或更新 ASM 实例时开启 Nacos 注册中心对接功能,实现注册中心的服务同步到服务网格,可以很方便地支持 Dubbo、Spring Cloud 服务的网格化,用户侧无需做任何业务代码修改。
最后分享几个客户案例,客户如何使用服务网格 ASM 缩短服务网格技术落地周期、减轻异常排错成本,节省控制面资源成本。
1、东风日产随着业务的发展,早前打造的「十二生肖」(十二套完整的测试环境)已无法满足众多并发需求,甚至需要摇号分配环境。通过引入阿里云服务网格 ASM,构建了基于流量管理的「无限生肖」系统,满足了自动按需提供环境的诉求。基于 ASM 提供的免运维、易升级以及产品丰富支持能力,让产研团队集中享受 ServiceMesh 带来的价值。
2、职优你为了应对业务的全球化扩张与一体化运营,基于阿里云服务网格 ASM 和容器服务 ACK 将业务应用跨区域部署,通过服务按地域就近访问的策略,优化了客户访问体验,有效降低业务访问时延,提升业务响应速度。
3、商米科技引入阿里云服务网格 ASM,构建智能的数字化商业智能 POS 软硬件一体化系统解决方案,使用服务网格 ASM 解决 gRPC 服务负载均衡、链路追踪以及流量统一管理等核心问题。