妙盈科技全面实施 Zadig 拥抱云原生
妙盈科技(MioTech) 是一家 ESG 领域的金融科技企业,服务国内外众多大型金融机构。妙盈的基础架构团队一直致力于在持续交付领域通过技术更迭,为开发者提供更便捷和高效的基础平台,提升研发效率,支撑业务的高速发展。
本文作者:张祎(Eason) Director of DevOps @MioTech
01 痛点分析
在引入 Zadig 项目之前,我们采用的是 GitLab 的 CI 加上自研的 CD 系统来实现整个部署流程。虽说也能正常工作,但使用和维护起来还是有诸多不便:
-
需要开发和运维人员熟悉 GitLab CI 的 YAML 配置语言,有一定的学习成本。
-
修改 .gitlab-ci.yml 需要穿梭于多个项目仓库,不便于统一维护。
-
Runner 在 GitLab 之外,需要单独配置管理。
-
CI 和 CD 的流程不在一个系统里,体验感割裂。
-
与 GitLab 紧耦合,不能支持其他代码托管平台。
02 选型之路
带着以上的痛点,并且站在云原生领域蓬勃发展的今天,重新寻找一个体验更好的解决方案的意念越发强烈。
由于我们已经采用了 KubeSphere 作为 Kubernetes 的管理方案,所以对集群管理方面要求并不高,侧重点是在于研发侧的流程打通和易用好用的上手体验。
有两条路径可选择:
-
使用 DevOps 的一站式解决服务。目前在该领域,国内已有多家公司入场。其中不乏互联网巨头的产品,例如阿里云云效、腾讯云 CODING,以及专业做 DevOps 的公司,例如 JFrog 等。
-
寻找一个全面拥抱 Kubernetes 和云原生的开源项目。
考虑到团队的规模、技术储备以及公司开放创新的发展理念,我们还是选择了第二条寻找开源的路径。
即便将目光放到开源领域,DevOps 发展至今,开源的 CI/CD 产品品类也已经相当之多。其中不乏有CI 老牌劲旅 Jenkins、CD 强敌 Spinnaker。CNCF 孵化项目 Argo,Flux;以及诸如 Jenkins X,Tekton 之类的产品。
以上这些开源项目各有优势和缺点,有的功能强大但设置复杂,上手难度高。有的易用性还可以但调研下来功能又不太满足需求。机缘巧合,在去年的优秀中国开源原生创企中发现了 KodeRover 创企以及其主推的 Zadig 项目,在官网的横评对比中展现出"过人”的能力,便决定先尝试一下,看看是否名副其实。
简单试用之后的第一印象是:比想象中的还好。部署简单,使用方便,并且一个平台解决了构建、部署、测试、制品管理、定时调度、webhook、通知等方面功能都具备,确实能满足我们的需求。
进一步了解之后,发现 Zadig 的侧重点更加偏向于研发侧的流程打通,面向的重点人群是业务开发和测试工程师,非常符合我们对该平台的定位。并且 Zadig 基于云原生的理念开发,以及对 Kubernetes 的全面支持,也与妙盈的全面容器化基础架构建设理念高度吻合。基于以上种种,便与Zadig 结了缘。
03 落地方案
由于 Zadig 支持 EKS/ACK/GKE 等容器云平台,部署轻松无障碍,所以落地部分其实很顺利。我们采用的部署方式是基于 Kubernetes,采用 Helm 一键在 EKS 上部署。最终使用单独集群部署的方式,并同时管理开发/生产两套 K8s 集群。需考虑预留资源以执行构建任务。同时可配合 autoscaler 使用,增加集群灵活性也可最大限度节省成本。
Zadig 还支持多种统一认证方式,方便对接企业 SSO。我们也成功对接了 OAuth 统一认证,用户管理更方便。
04 成果初现
短暂的尝试之后,我们便开始了线上开发、生产环境的迁移改造工作。截至目前,已将 80% 的部署项目、50% 的构建项目迁移到 Zadig 平台,测试项目也逐步测试和上线的过程中。
整体感受如下:
-
构建易用
在 Dockerfile 构建完备的情况下,只需编写简单的构建脚本即可使用,使用难度低。亦可对接 GitLab webhook,实现自动触发。
-
部署易用
通过交付物部署的手段,仅需从镜像 Tag 列表中选取版本即可进行手动部署,或者通过自动同步 Chart 仓库的功能,实现 GitOps 场景。
-
测试易用
独立的测试中心设计,屏蔽了 Kubernetes 概念,测试工程师无需关心 Kubernetes 的底层逻辑,只需编写自己熟悉的测试脚本即可方便地利用集群容器资源运行测试 Case,降低了测试人员的心智负担。调试完毕后还可对接到工作流中实现测试自动化。
一句话总结:Zadig 把复杂性下沉到工具端,方便了业务开发和测试的使用,让不同专业的人将能力聚焦在自己的专业领域中。
05 展望及期待
在妙盈基础架构团队眼中,开源并不是纯粹的”拿来主义“。接受开源产品存在的问题,并通过测试、反馈、沟通,到最终能够提交 PR 回馈社区才是开源的正确打开方式。
Zadig 采用云原生领域的“标配” Golang 语言开发,和妙盈基础架构团队的技术栈完美匹配,也促使我们加速了回馈社区的脚步。开源共建不仅是促进良好的开源领域生态建设,也是一种跨地域跨公司的工程师技术的切磋,以及来自于一旦 PR 被采纳后小小成就感的满足。
得益于 Zadig 清晰的架构设计(可参考官网的架构图),目前我们的 PR 计划进展顺利,已经计划了 3 个在实际落地过程中碰到的问题修复和小功能改进,准备提交 PR 中。相信未来还会有更多。
最后提一些小建议,仅为个人观点:
-
目前 Zadig 支持的较好的测试框架是 Junit,后续也希望能对接更多测试框架,或者是以类似Kubernetes CxI 的方式方便更多的测试框架接入,可以将测试结果直接在 Zadig 中一站式展现。
-
效能洞察以及可视化能力的提升。
-
DevSecOps 领域的能力建设。
Zadig,让工程师更专注创造!
欢迎加入 开源吐槽群🔥

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
平衡 Cookie 取舍,Firefox 默认启用 Total Cookie Protection
众所周知,隐私保护是 Firefox 的主要卖点之一,Mozilla 甚至将这个特点放在了 Firefox 官网最显眼的位置(如下图),强调不会为广告商留后门,也不会出卖用户隐私数据。 为了进一步强化 Firefox 浏览器的隐私与安全,Mozilla 于今天宣布为所有桌面用户推出默认启用的 "Total Cookie Protection" 功能。 作为 Firefox 浏览器最强大的隐私功能之一,"Total Cookie Protection" 是在 Firefox 86 版本中首次引入的(非默认设置),随后在 Firefox 89 版本中被扩展到隐私浏览模式(隐私模式默认启用),并在 Firefox 91 中进一步改进,以防止数据泄露。 此前只有在你打开 Firefox 的隐私浏览模式时,才会默认启用 Total Cookie Protection。但是从今天起,所有桌面平台(Linux、macOS 和 Windows)上的 Firefox 浏览器都会默认启用这项功能,无需切换任何东西,也不会影响正常的网络浏览体验。 "Total Cookie Protection" 可以将 ...
- 下一篇
Curve 进入 CNCF Sandbox,完善统一云原生开源存储拼图
2022 年 6 月 15 日,云原生计算基金会 (CNCF) 宣布,分布式存储系统 Curve 被正式接纳为 CNCF 沙箱(Sandbox)项目。Curve 由网易数帆开源,提供块存储和文件存储能力,旨在以网易分布式架构和云原生实践经验反哺社区,填补高性能、易运维、云原生的开源分布式存储的空白。 Curve 进入 CNCF 沙箱,意味着全球顶级开源基金会对网易数帆云原生存储技术演进的认可,也验证了网易数帆在数字化基础软件领域的深厚积累,及对未来技术趋势的深刻洞察。通过进入 CNCF 沙箱,Curve 社区将更多吸引更多开发者和用户参与共建,进一步推动项目在云原生业务场景的成熟应用,从而深化云原生技术落地实践。 项目地址:https://github.com/opencurve/curve Curve 项目特色 Curve 的研发,萌芽于开源 Ceph 存储系统难以满足网易业务发展的朴素需求,成长于云原生在各业务快速落地的契机。回顾 2018 年,网易已完成电商业务全面容器化,开始采用 Kubernetes + Operator 运行有状态应用,云原生存储基础设施的完善也被提上日程。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器