连尚科技利用 Zadig 全面完成从裸 Docker 到 K8s 集群的容器化建设

仅用了 2 人 2 天落地 Zadig,搞定了多环境管理和构建效率的难题。

“我认为在使用 Zadig 之前需要搞清楚 Zadig 在公司里的定位是什么,它能用来解决什么关键性的问题,而不是说利用 Zadig 解决一切有关持续集成与持续部署的问题。”

# Zadig 如何在企业落地?

Zadig 企业大讲堂:连尚网络如何落地 Zadig ? :https://www.bilibili.com/video/BV1uY41187eS?spm_id_from=333.999.0.0 (opens new window)

"连尚在 17 年搭建了服务端的发布平台并沿用至今,通过该平台我们实现了服务构建信息配置、编译、打包以及部署等功能。随着公司服务容器化占比的逐步提升,公司对于多环境管理以及构建效率等方面的诉求也越来越迫切,针对这些问题,现有的发布平台并不能很好的解决,因此需要一个新的系统替代发布平台实现这些功能。最终的目标是通过多个平台之间的自动化对接,打通服务从开发、到提测、再到线上部署整个流程。从2020 年我们就开始关注 KodeRover 的持续交付产品,2021 年中 KodeRover 主产品开源成为 Zadig 后,我们便立即开始使用。"

# 落地 Zadig 我们仅用了 2 人 2 天

“Zadig 文档很完善,而且社区里也有很多活跃的小伙伴,因此在初期我们一共是两位同学花费两天时间完成 Zadig 的落地。

其实最难的部分不是安装与升级,而是如何把现有的服务迁移到 Zadig 中去,这部分我踩了不少坑。由于我们是把测试环境从裸的 docker 迁移到 K8s 集群中,所以一开始我的做法是配置好服务的 YAML 模板、复用现有的 Dockerfile 配置构建信息,随后通过工作流的方式更新集成环境。在这过程中由于一些服务长时间没有更新导致在构建过程中频频报错,又不得不把开发同学拉进来帮忙排查问题,这种方式既费时又费力关键还进展缓慢。

几天后我们及时复盘讨论出一种新的接入方式,首先在配置好 YAML 模板后直接拉起整套集成环境,这样能让测试人员验证新环境里各项功能的完整性;其次对服务进行分级,优先配置提测较为频繁的服务的构建信息;最后再通过工作流更新服务,通过这样的方式服务接入到 Zadig 的效率得到了极大的提升。

我们对 Zadig 的定位是,先完成测试环境的纳管,能够实现测试环境的快速复制,现在我觉得 Zadig 已经非常好用了。”

# 如何在更多部门推广?

“当 Zadig 用的效果不错之后,我们就开始考虑向更多业务开发方介绍。这个过程中我们发现,千万不要试图颠覆大家现有的使用习惯,让大家接受一个全新的东西:因为在没有了解清楚之前,大家对接受一个全新的东西是排斥的。所以我们推广的重点是帮助大家了解 Zadig 的价值。

形式很重要:10 分钟的产品演示远比半小时的 PPT 有效的多!

我觉得要多利用公司的资源,比如技术交流群、线下讨论会等,去进行宣传,让更多的人了解到有这么一个东西存在。另一方面我认为通过现场或者线上会议的形式直接演示 Zadig 包含的核心功能,可以让大家更为直观的了解到它的优势在哪些地方。“

# 用了 Zadig 之后,Infra 工程师是不是就成了工具人?

”我认为使用 Zadig 是一个双方相互学习成长的过程。首先,在公司部署 Zadig, 那你将是保证这个系统在公司稳定运行的最后一道防线,同时也意味着你需要把 Zadig 的功能和源码吃透。在这过程中能够让自身的编程水平有所提升,其次你可以把自己理解成 Zadig 的“编外人员”,你在阅读源码以及企业级实践的过程中肯定遇到问题,这时候你可以充当测试、开发甚至产品的角色,向 Zadig 社区贡献你的代码或者想法甚至是文档。“

对于连尚落地 Zadig 案例,感兴趣的同学可以添加赵茂祥微信进一步深入探讨!

本期案例主角:赵茂祥

© 2024 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1