让开发更丝滑,KodeRover 开源分布式持续交付项目 Zadig | TGO 喜报
近日,由 TGO 鲲鹏会会员李倩带领的 KodeRover 团队重磅开源了分布式持续交付项目 Zadig。从首发到现在近一周时间里,已经有很多架构师、产品经理以及 CTO 对使用 Zadig 和为 Zadig 贡献代码感兴趣,在 GitHub 仓库里面已经有几十个分支,其中有十个左右的贡献者提交了问题和拉取请求。此外,在 5 月 28 号由该团队举办的第一次 Zadig 线上答疑环节,引来几百人参与观看和讨论。
背景介绍
随着微服务及容器化交付使用的普及,使得开发效率大大提高,一定程度上解决了开发过程中不顺畅的问题,尤其是在前后端联调方面。但是随着项目的复杂程度,微服务越来越多,开发者在更新的时候会相互依赖,造成代码验证工作和自动化测试工作越来越难做,甚至环境不能保持一致,导致环境更难维护。正是微服务带来的机遇和挑战,促使了 Zadig 的诞生。
Zadig 是一个基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continues Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机、大体量微服务等复杂业务场景的最佳实践,可以为工程师一键生成自动化工作流 (workflow)。Zadig 不改变现有习惯和流程,几乎兼容所有软件架构,无缝集成 GitHub/GitLab、Jenkins、多家云厂商等,运维成本极低。
KodeRover 是 Zadig 背后的研发团队,专注于云原生软件交付,致力于提升企业交付效能,实现研发交付体系的数字化转型。KodeRover 创始团队由来自 Facebook、七牛云、谷歌、微软、华为和斯坦福大学的资深产业专家联合组成。李倩是 KodeRover 团队创始人兼 CEO/CTO,她也是 TGO 鲲鹏会上海分会会员。在创立 KodeRover 前,李倩曾构建了中国第一支使用 Go 语言为基础支撑的高效能工程团队,达到业内领先水平,完成了研发持续交付体系建设,在研发自动化、环境服务化、全流程质效度量、鲁棒性测试等基础领域深耕探索。
Zadig 能做什么?
主要功能
目前 Zadig 分为两个版本:针对开发者用户的开源版,以及针对企业专属的企业版。
开源版具有产品持续交付、持续测试、持续追踪的全流程能力,包括以下核心功能:
项目管理:服务管理、构建管理、环境管理
工作流交付:产品工作流并发队列
质量管理:持续集成度量、自动化测试、性能测试管理
交付中心:交付物和制品追踪 (代码、构建、工作流、测试、操作人等信息)
质效中心:质效看板-持续集成、持续交付、持续部署
集成管理:GitHub/GitLab/Gerrit 集成、内部账号管理、Jira 集成、邮件集成
基础组件:Registry 管理、应用与构建依赖管理、对象存储、集群管理
支持 Python,Java,Go,C,C++,.Net Linux 版等几乎所有编程语言。
企业版除产品核心功能版所描述功能外,还支持大规模研发体量、企业级功能:
项目管理:共享服务、环境授权
工作流交付:自由编排交付工作流
交付中心:产品级版本管理
质效中心:DevOps 洞察 - 构建、测试、持续交付洞察
集成管理:SSO/LDAP/AD 账号、多集群接入
企业管理:RBAC 权限、操作日志审计
专属技术支持群
核心能力
以服务为核心:服务编排能力和服务共享能力。Zadig 可以对服务进行很好的编排处理,同时可以把服务变成一种共享服务,如中台服务的使用,就可以把中台服务变成一个共享服务来处理。
高并发的工作流:系统通过简单配置,即可自动生成高并发工作流,高效执行构建、部署、测试等任务。这一设计很好的解决了微服务架构下带来的多服务交付效率低下、代码验证和自动化测试工作难做等问题。
无侵入的自动化测试:便捷对接已有的自动化测试框架,通过办公 IM 机器人为开发者提供第一时间的质量反馈,有效实现“测试左移”,充分体现测试价值所在。
开发本地联调 CLI:开发者可以本地编辑代码,然后一键构建、部署到联调环境,无需处理过于复杂且繁琐的操作流程,可以远程联调、测试,为开发者节省出大量宝贵时间去创造更多产品价值。
应用场景
对于单个工程师或者一个微服务来说,Zadig 的交付流畅程度不够明显。但是对于两人以上的开发团队,10 个微服务及以上的情况下,有一定体量的团队比较适合使用 Zadig。Zadig 的服务对象包括:开发工程师、测试开发工程师、DevOps 工程师以及项目管理人员等。
开源及商业化的考量
一个好的软件一定要有生命力才能活下去。生命力从何而来?来源于用户的体验,来源于不同各种各样的场景,来源于不同声音的反馈。KodeRover 团队创始人兼 CEO/CTO 李倩表示:“好的产品,要有足够的开发者使用率,获取不同的反馈,同时使产品可以在更多更复杂的场景中运用,获取和积累不同的场景,引导更多的开发者来参与和使用产品,这就是保持产品生命力的最好途径,也就是为什么要开源的原因所在。"
当前基于云上应用的市场才刚刚开始。不管是云的市场,还是基于云上的应用和工具开发市场,随着应用场景的多元化和复杂化趋势,市场肯定是会跟着变化的。对于 Zadig 来说,项目本身的价值对其未来市场的影响也是至关重要的。
至于商业化,KodeRover 团队创始人兼 CEO/CTO 李倩认为这将是一个水到渠成的事情,将 Zadig 项目开源并不意味着团队就不考虑项目商业化的问题,相反 Zadig 团队对于商业化有他们独到的见解。李倩老师分享到,面向开发者的部分都应该是开源的,因为真正有价值的东西并不是代码本身,软件本身并不值钱,能够应用于不同场景下的解决方案才是项目的核心价值,这个价值是在技术层面之上的,是面向客户的。软件之外所积累的场景和解决方案能够真正帮助企业赚钱,或者帮助企业运营更顺畅。不过,当前开源项目的商业化依然还在摸索阶段。
后续规划
从开源到现在,Zadig 一直在不断改进和完善,解决了集成环境验证的问题,优化了环境不稳定,以及可扩展性提升不足的前期优化等。
截至目前,Zadig 已经开源了占整体 60%的功能,未来一个月将开源到 95%以上的程度。另外,KodeRover 团队计划在未来三个月内实现 Zadig 可扩展性提升的短板问题。Zadig 对应的文档站也在不断完善中,在 Zadig 项目开源之后,Zadig 文档站也计划开源。
相关链接
Zadig Github 地址:https://github.com/koderover/zadig
Zadig 快速入门指南:https://docs.koderover.com/zadig/quick-start/introduction/
KodeRover 官网:https://www.koderover.com
版权声明: 本文为 InfoQ 作者【花花】的原创文章。
原文链接:【http://xie.infoq.cn/article/ba87b155f27bbc7c51b4ac7ff】。文章转载请联系作者。
评论 (1 条评论)