Zadig on Github / Zadig on Gitee
“数千微服务已经上了 K8s,没有业务边界,环境不稳定出了问题,所有人吃大锅饭”
“开发无法本地联调自测,集成测试环境 “脏,乱,差”极不稳定,总被其他人干扰”
“测试同时验证多个分支,集成合并冲突不断,自动化测试遥遥无期,测试全靠人工验证”
“运维无脑排障、重启、删节点,沦为工具人……”
其实这种场景非常普遍,很多企业通过云厂商一股脑把微服务上了云,而配套设施并没有使用云原生方式,CI/CD 工具不是云原生的,系统架构不是云原生的,工程师缺乏云原生的技能...
不要怕! Zadig 可以通过托管项目解决以上问题,并且对现有集群无任何的侵入性,平滑实现云原生 DevOps 开发模式。不同业务线可以清晰的管理所属的服务,开发者也可以方便的对服务进行查看、管理和更新,比如服务查看、Pod Debug、实时日志等。
原理如下:
下面以 joseph-ring 项目为例,来演示如何通过 Zadig 托管项目对集成环境进行治理。
这是一个真实的脱敏业务场景,该企业有 5 条业务线,Java 技术栈为主,包含前后端开发、测试、运维等角色,2000+ 微服务混合部署在一个 K8s 集群若干 Namespace 中,以下将演示如何配置托管项目为该业务线开发和测试同学提供便利性,包括日常开发联调、自测、集成测试验收等。
Step 1 配置集成 K8s 集群
集成已有的 K8s 集群到 Zadig 系统
点击 系统设置 -> 集群管理 ,添加集群:
执行 Agent 安装脚本
Step 2 创建托管项目
创建项目
基于 Kubernetes + 托管现有环境 的特点组合创建项目
Step 3 按需配置集成环境
创建 dev 环境用于日常开发调试
设置目标环境名称,选择要托管的 K8s 集群和命名空间
选择需要被托管管理的服务后,点击下一步
创建 qa 环境用于服务的集成测试验收
进入集成环境,设置环境名称:qa,选择 K8s 集群和命名空间
类似的操作,可以按需为不同业务线、不同角色配置相应的集成环境。
进入集成环境页面可以查看服务访问入口,服务状态、管理服务
进入服务详情页面可以查看服务入口、切换服务镜像、调整副本、查看实时日志、登入容器做 PodDebug(调试) 等。
集成环境得到有效的治理后,更多进阶操作建议:
新建不同的托管项目应对不同业务线的服务治理
通过配置角色权限,可以清晰管理不同角色的权限和审计
通过添加 Zadig 构建步骤,实现服务自动更新到集成环境
Zadig 托管项目屏蔽集群背后的复杂度,使得组织的业务边界更加清晰明确、服务更新的过程也清晰可追溯、权限得到有效管理。一线开发者通过接入 Zadig 获得流畅的软件开发体验,可以更多的关注自身业务单元模块的迭代。
关于Zadig
Zadig 是基于 Kubernetes 设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流 。
|