写点什么

钛动科技:我们的 Zadig 落地之路

作者:KodeRover
  • 2022 年 6 月 29 日
  • 本文字数:1747 字

    阅读完需:约 6 分钟

钛动科技:我们的 Zadig 落地之路

钛动科技 (Tec-Do) 成立于 2017 年,是全球领先的基于大数据和 BI 的商业增长赋能公司。公司秉承以服务客户为中心的核心价值观,旨在通过技术能力抽样提高全球商业运营效率,打造帮助中国企业出海的一站式服务平台。


本文作者:钛动 运维工程师 丁雄

是时候改变了

我们公司的业务主要跑在两种基础资源上,一种是传统的虚拟机,一种则是公有云的 K8s 集群。构建部署方式是通过 Jenkins 进行打包上传到对象存储,通过 ssh 触发自定义脚本发布服务。K8s 环境则需要单独构建镜像,然后手动 apply 的方式更新服务。没有统一的开发环境,测试环境也残缺不齐。

当我们的研发人员和微服务都扩张的时候,大量痛点相继爆发:

  1. 开发环境的缺失让开发联调异常艰难

  2. 测试环境没有统一管理且残缺不全,对新加入小伙伴非常不友好

  3. 开发,测试,生产的运行环境不一致

  4. 构建部署通知流程割裂,花费时间较长

  5. 因为测试环境部署在虚拟机上,端口管理问题需要单独维护文档

  6. 实时日志查看不方便


基于以上种种原因,且刚好公司在推行服务容器化,我们对 CI/CD 的方案开始了选型。

没有最好只有最合适

对于 CI/CD 首先让大家想到的就是 Jenkins,包括我之前使用的也是 Jenkins。它的确是一个很强大的工具,有繁多的插件支持你想要做的功能。但是对于云原生的支持就相对没有那么完善。GitLab 的 CI/CD 也是业界比较流行的方案,但是考虑到每个项目维护的 gitlab-ci.yml 对于运维的维护不是很方便,还是没有考虑。后来有小伙伴推荐了 Zadig 这个国内云原生新平台,看别人用得不错也研究起来。

Zadig 初体验

首先说部署,官方比较推荐的方式之一是 Helm 部署的,正好我们也在推 K8s 容器化,使用 Helm 部署极其方便。刚上手的时候使用的是 YAML 的方式来部署服务,将定义好的 K8s yaml 直接贴入或者导入到 Zadig 里面,即可在 K8s 里面启动服务。当然,Zadig 还提供了各种方便的集成,GitLab,LDAP,镜像仓库,Helm 仓库,集群管理等等,需要且必要的东西都已经集成,直接对接即可。

这是 VIP 服务?

在我们跑通 YAML 部署方式之后,我们发现还有 Helm 的服务部署方式,鉴于 Helm 中可以支持各类判断,统一修改等,所以我们决定尝试使用 Helm 作为服务发布方式。由于开始不是很理解 Zadig 上使用 Helm 的逻辑,我们遇到了问题。在尝试解决未果的情况下,我们选择了向 Zadig 官方求助,我们加到 Zadig 的技术交流微信群,抛出了我们的问题,没想到官方回复速度非常快,在得知我们公司在准备全面落地 Zadig 时,官方直接拉了专门群来帮助我们解决期间遇到的落地问题。我在想,我们好像没有开 VIP 呀。

具体实施过程

第一步:基础准备和配置

  1. 根据语言栈创建编译构建镜像,如 Node、Gradle,Maven,Python,Go 等构建环境,并配置对接私仓,开启 Zadig PVC 缓存。

  2. 创建基础环境运行镜像。

  3. 根据项目类型创建 Helm Chart 模版托管至 Zadig

  4. 托管业务运行 Dockerfile 至 Zadig

  5. 托管每个环境的 Helm value 文件到 GitLab

第二步:对团队进行培训

通过文档,和培训会议的方式对开发和测试同事进行 Zadig 使用培训。

第三步:迁移新流程

在不影响现有流程的情况下同时在 Zadig 创建新的 CI/CD 流程,启动服务然后切换 DNS,接入新流程。

目前我们已经有 10 条业务线接入,稳定运行,满足工程师同学们的日常使用。



Zadig 的优势总结

  • 强大的数据统计功能,看清每个环节的效率和质量

  • 强大的环境复制能力,随时可以拉起新环境

  • 社区活跃,问题反馈和处理的速度快

  • 统一的模版管理,降低运维管理负担

  • 方便的日志查看和服务调试功能

团队对 Zadig 的评价

在使用 Zadig 之后,开发和测试都不用登录服务器操作了,通过 Push 代码自动触发或者流水线触发即可发布,验证,日志查看,调试。大大提高了效率,规范了流程,获得了开发测试小伙伴的一致好评。

建议期待

  1. 对于 Helm 部署方式,希望考虑是否能在每次部署前都渲染最新的 Helm 模板和 Value 文件,做到最新模板和 Value 文件不用重新手动更新即可应用(v1.12.0 已支持上了)。

  2. 是否可以考虑将 K8s 的部分配置通过选项来生成,让开发工程师可以自助添加微服务。

  3. 希望 Zadig 能更开放,提供脚本或者插件接口,丰富 API 接口等方式让工作流变的更加灵活。


Zadig,让工程师更专注创造!欢迎加入 开源吐槽群🔥

Zadig on Githubhttps://github.com/koderover/zadig

Zadig on Giteehttps://gitee.com/koderover/zadig

发布于: 刚刚阅读数: 3
用户头像

KodeRover

关注

软件交付更丝滑~ 2022.04.06 加入

Zadig 是 KodeRover 团队基于 K8s 自主研发的开源分布式持续交付产品,重点解决企业级软件交付验证的痛点,并且 100% 开放源代码

评论

发布
暂无评论
钛动科技:我们的 Zadig 落地之路_DevOps_KodeRover_InfoQ写作社区