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

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

Zadig on Github

Zadig on Gitee

是时候改变了

我们公司的业务主要跑在两种基础资源上,一种是传统的虚拟机,一种则是公有云的 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 的优势总结

  1. 第三方集成完善,配置简单,如   LDAP ,GitLab,Harbor,Jira,Helm  
  2. 强大的 数据统计功能,看清每个环节的效率和质量
  3. 强大的 环境复制能力,随时可以拉起新环境
  4. 社区活跃,问题反馈和处理的速度快
  5. 统一的模版管理, 降低运维管理负担
  6. 方便的日志查看和服务调试功能

团队对 Zadig 的评价

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

建议期待

  1. 对于 Helm 部署方式,希望考虑是否能在每次部署前都渲染最新的 Helm 模板和 Value 文件,做到最新模板和 Value 文件不用重新手动更新即可应用。
  2. 是否可以考虑将 K8s 的部分配置通过选项来生成,让开发工程师可以自助添加微服务。
  3. 希望 Zadig 能更开放,提供脚本或者插件接口,丰富 API 接口等方式让工作流变的更加灵活。

Zadig,让工程师更专注创造!

 

欢迎加入 开源吐槽群🔥

Zadig on Github

Zadig on Gitee

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/koderover/blog/5534910

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。