作者:ZadigX
企业发布现状痛点
目前企业在选择和实施发布策略时面临以下困境:
1. 缺乏云原生能力: 由于从传统部署转变为云原生模式后,技术架构改造需要具备相关能力的人才。这使得企业在发布策略方面难以入手。
2. 缺乏自动化平台支持: 即使找到适合产品现状的发布策略,仍然依赖手工逐步执行。这可能导致流程遗漏或人工操作失误,造成生产事故的风险。
3. 发布效率低下: 仅实现了服务级别的灰度能力,逐个发布服务耗时长,导致发布过程缓慢,验证效果不佳。
针对以上问题,ZadigX 与阿里云 MSE 联合发布**「面向开发者的全链路灰度发布解决方案」**,帮助企业应对这些痛点。
阿里云 MSE 为 Java 应用提供了便捷实现全链路灰度的能力。MSE 微服务引擎是基于 Java Agent 实现的无侵入式企业生产级服务治理产品,不需要修改任何一行业务代码,即可拥有不限于全链路灰度的治理能力,并且支持近 5 年内所有的 Spring Boot、Spring Cloud 和 Dubbo。
使用 MSE 进行灰度发布的过程中,ZadigX 可以便捷地创建灰度环境和灰度 K8S 资源, 结合发布工作流编排能力,自动为 K8S 资源设置 MSE 所需的资源标记,并集成了 MSE API 以降低重复工作量。开发无需切换平台,管理员一次配置即可。 开发可以基于 ZadigX 与日常工作平滑结合,完成高效、安全、快捷的发布。
工作原理介绍
工作原理图示:
工作流程描述:
MSE 灰度发布任务
- 复制一份基于基准环境中服务的 YAML
- 自动为 YAML 中的资源名称 metadata.name 添加后缀 -mse-
- 自动为 YAML 中的资源添加 MSE 全链路灰度发布所需的相关 label
- 用户可以设置灰度镜像、副本数,此外可以直接在渲染后的 YAML 中修改其他需要改动的字段(不可删除灰度过程中使用的 label)
- 根据最终的 YAML 生成灰度版本资源
下线 MSE 灰度服务
- 通过灰度资源被设置的相关 label ,找到并删除它们
前置操作
MSE 全链路灰度能力可以支持任意 K8S 集群,全链路灰度场景需基于网关能力建设,下面以 MSE 自带的云原生网关为例介绍场景,用户可以根据自身情况选择合适的网关。
安装 MSE 组件
在阿里云 ACK 集群中安装 MSE 组件,安装方式参考文档:安装 ack-onepilot 组件 [ 1] 。
安装 MSE Ingress 云原生网关
安装方式参考文档
- 创建 MSE 云原生网关 [ 2]
- 通过 MSE Ingress 访问容器服务 [ 3]
下面以 spring-a、spring-b、spring-c、nacos 这几个服务结合 MSE 云原生网关组成的项目为例演示项目初始化和 MSE 灰度发布过程。
管理员做项目初始化
运维或者 DevOps 工程师在 ZadigX 上进行项目的初始化,包括新建项目、新建服务、新建环境并启用 MSE、新建灰度发布工作流等步骤。以下操作是一次性操作,后续只需按需配置执行工作流即可。
步骤一:新建项目
在 ZadigX 上新建项目,输入项目名称,项目类型选择 「K8s YAML」项目。
步骤二:新建服务
在 ZadigX 服务-生产服务模块新建 nacos、spring-a、spring-b、spring-c 服务并配置对应的 YAML。
标签:服务,name,spring,ZadigX,灰度,MSE,cloud From: https://blog.51cto.com/u_13778063/6941036