是时候和 Jenkins 说再见了

清一色财经   2023-07-11 19:08:18

先进的企业已经逐步放弃基于 Jenkins 自研 DevOps 平台。这一现象的背后有两个原因:一方面,像 Zadig 这样的云原生技术已经成熟可靠;另一方面,自行构建平台的成本无法控制。在这两个因素的共同作用下,为什么还要每年投入数百万造一个不一定能跑得起来的轮子呢? 01技术是时代的产物


(资料图)

2003年的主人公们

我是KodeRover创始人老郭,大家可以叫我 Grant。自 2018 年回国创业以来,我与团队一同从零开始,将 Zadig 打造成了国内开发者最喜爱的云原生 CI/CD 持续交付工具、企业最信赖的云原生 DevOps 平台,吸引了数千家企业从 Jenkins 转向 Zadig 平台。我一直坚信技术是时代的产物,并且从我在美国硅谷工作的 20 多年中,亲眼见证了这一点。2001 年,我从斯坦福大学毕业后,机缘巧合加入了当时在经济废墟中高速发展、只有 100 多人的谷歌 Google。这段经历让我迷恋上了软件技术创业。2006 年我加入由更早期谷歌工程师创立的搜索广告公司,并在仅仅 9 个月后以 6000 万美元的价格被收购。之后又全程参与了全球超级健身品牌 TRX 的电商创业,同时见证了亚马逊电商的崛起和他们创造的”云服务”市场。紧接着,我们 4 位斯坦福老同学在硅谷的宇宙中心 Palo Alto 大学路租了一间办公室开始做视频传输技术创业,一度做到 2500 万 MAU,500 米内和 Facebook、特斯拉、Paypal 做邻居。那些年我们见证了应用向移动端、云端的转移。

2001 年的 Grant 的发际线已经令人担忧

随着世界经济中心向中国转移,2018 年我决定回国,与我的合伙人、软件工程专家李倩一起致力于打造一家出自中国、受人尊敬的基础软件公司。在本文中,我将用我们的产品 Zadig 和传统领域工具 Jenkins 为例,与大家分享我对技术创新和时代发展的思考,希望能带来一些启示。

02失去开发者就失去一切:

Jenkins 发明人离开 Jenkins 项目

2004 年,27 岁的日本工程师川口耕介(KK)从东京来到硅谷,加入 Sun Microsystems 公司。由于他对系统代码的痴迷,常常被同事戏称为构建流程中“最后一个碰那段代码”的人,也经常为此背锅。

2004 年,Jenkins 的发明人

他决定开发一款每个人都能轻松构建的工具:这就是后来的 Jenkins。Jenkins 显然猜对了开发者的心思,也因此成为过去 20 年中全球最为热门的构建工具。然而随着云原生的兴起,它开始显得力不从心,越来越猜不透当今开发者的心思了,Jenkins 对于开发者的体验也越来越糟糕!2018 年,KK 承认 Jenkins 存在一堆问题,如服务的不稳定性、上千个插件带来的脆弱配置体系、无法即插即用、开发速度下降、测试质量低效以及无法进行工程化分析的过程数据等。最终,KK 在 2020 年离开了 Jenkins 项目及其所属公司。

不堪重负的 Jenkins 和逐渐远去的 KK

03一个热爱代码的女孩:Jenkins 专家放弃使用 Jenkins

2017 年,27 岁的软件工程师李倩在七牛云负责工程团队,其中就包括负责 Jenkins 生态工具的开发和维护。同年,李倩作为 Jenkins 专家受邀在中国首届 Jenkins MeetUp 分享经验。但事实却是,面对千人研发协作和高频交付的场景,她意识到用 Jenkins 管理软件交付存在巨大的局限性:低效率、低质量、频繁事故和难以维护等缺陷在千钧一发的云计算服务场景中越发突出。

图片

在 2015 年至 2018 年期间,随着七牛云多产品扩张、交付压力指数级增长,李倩领导的工程团队发现 Jenkins 体系无法承受重负,运行效率低下且维护成本极高

与此同时,Kubernetes 作为下一代操作系统事实标准逐渐崭露头角,展现出强大的声明式资源调度的“云原生”能力,为软件交付全流程的质量工程带来了可行性。正是在那个关键的 27 岁,李倩开始着手基于容器化开发一种全新的交付工具,并在七牛云内部推广试用,项目代号 Spock,后来基于 Kubernetes 重新架构后开启了创业之旅,成为今天的 Zadig。

李倩开始着手基于容器化开发一种全新的交付工具

04Jenkins 没错,它只是老了

Zadig 和 Jenkins 从一开始就在解决完全不同的问题。

Jenkins 在 20 年前诞生,旨在解决协同开发中的构建效率问题。它通过管理软件构建编译并依赖插件来进行发布。然而,正如 KK 所指出的,Jenkins 存在着服务不稳定、庞大数量的插件导致脆弱的配置体系、不易上手、开发速度减慢、测试质量低效等问题。尽管 Jenkins 在表面上看起来正常运行,但实际上给研发团队带来了巨大的负担,远远落后于云原生先行企业在同一行业的水平。

Jenkins 没错,它只是老了,不再适应时代对协同交付要求的进化!

与之相反,年轻的 Zadig 云原生 DevOps 平台迅速崛起,专注于提升软件交付全流程的效率和质量。Zadig 在环境管理、易用性、质量工程、开箱即用和开发速度等方面展现出明显的优势。越来越多的工程师开始学习并用 Zadig 取代 Jenkins 体系,为企业打造数字化研发的高速公路。在这个新的”高速公路”上,开发人员无需同时”造车”和”修路”,而是专注于开发工作。新零售领军企业非码的 CEO Derrick 曾感慨地说:”Zadig 帮助我们解放生产力,对效率的提升可能不是几倍,而是十几倍。它带来的不只是结果,还有人员能力的提升,这个才是最重要的”。

年轻的 Zadig 迅速崛起

05Zadig:超越 Jenkins、顺应时代

独立面市并开源两年多来,Zadig 从无到有,成为数千家国内企业的首选,赢得了大量开发者的喜爱,我总结了大家钟情 Zadig 的主要原因:

重视开发者体验,提升团队能力:Zadig 将团队能力融入平台,实现高人效、高质量、高效率、低成本。人们可以在 Zadig 平台上高效交互,将协同的复杂性下沉到平台,提升整个组织的人效。这解除了组织、流程和系统的孤岛,打造了成长型组织。相比之下:Jenkins 的碎片化特性导致经验主义盛行,人们在无数平台工具之间手工切换,耗时费力,交付质量低,效率低,交付成本高昂。

一体化工程能力增强:Zadig 覆盖研发全流程的高效构建、环境管理和高质量发布。支持多服务并行部署发布、云原生构建环境和运行环境,以及基础设施对接和企业级 SSO/权限管理等功能。相比之下:Jenkins 的工程化水平较低,存在安全风险,运行效率低下,管理维护成本高昂。

按需定制解决方案:比如在软件供应链安全方面,Zadig 融合了静态和动态代码扫描、软件成分分析(SCA)生成 SBOM 清单,有效构建 DevSecOps 解决方案。对于质量工程体系,Zadig 整合了现有的测试工具,提供单元测试、集成测试、系统测试、性能测试和分层自动化构建持续测试解决方案。相比之下:Jenkins 和其他工具产品几乎无法做到这一点。

开放性强:除了内置主流工具链的支持外,还提供了使用 OpenAPI 和自定义开发任务等服务化的接入方式,企业根据自身流程定制,从而降低了企业手工搭建和使用碎片化工具链的成本。相比之下:Jenkins 和其他工具产品仅在单一维度解决特定问题,扩展后的碎片化是无法避免的。

图片

独立面市并开源两年多来,Zadig 从无到有,

赢得了大量开发者的喜爱

06技术领导者,你需要算笔账

时代已经远离 Jenkins 而去

如今,先进的企业已经逐步放弃基于 Jenkins 自研 DevOps 平台。这一现象的背后有两个原因:一方面,像 Zadig 这样的云原生技术已经成熟可靠;另一方面,自行构建平台的成本无法控制。在这两个因素的共同作用下,为什么还要每年投入数百万造一个不一定能跑得起来的轮子呢?

当然,仍有很多技术管理者没有意识到这一点。

有些负责人还在盲目造轮子:认为「Zadig 有的所有的功能,Jenkins 都可以实现。我们自己去实现做自研的话,成本低且知识产权自主」。

我的回答是:基于 Jenkins 体系的不断插件化和二次开发,加重了企业研发管理的碎片化问题,同时也浪费了大量人力资源在重新开发无用轮子上。然而,在云原生和人工智能即将在各行业爆发的今天,Jenkins 体系所积累的“知识产权”和“技术能力”反而成为阻碍开发、运维和测试团队能力提升的障碍,阻碍了企业软件产品迭代的速度和适应市场的能力,会失去对优秀技术人才的吸引力和宝贵的市场机会。我建议至少让团队开始使用开源的 Zadig,否则真的跟不上时代了。

有些负责人还在算一笔糊涂账:认为「如果用 Zadig,那么我们团队“只是”在 Zadig 上面做配置的工作,体现不出团队能力,人力成本也出了,购买商业成本也出了,最后效果和直接用 Jenkins 也差不多」。

我的回答是:“工欲善其事,必先利其器”,这就好比说高铁和绿皮火车都能从北京到广州。Zadig 已经提供了一个高铁般的平台,关键在于如何利用这个平台的优势,将其赋能给研发团队,最大程度地发挥团队的生产力。这绝不仅仅是“做做配置”而已。以每年 10 万元的价格,你可以让 Zadig 支持 100 人的研发团队满足各种开发需求,并将研发生产力提升 1~3 倍,减少构建计算资源消耗 60%,减少运维 80%的手工操作,从而解放运维团队,让他们专注于企业更核心的任务,如线上稳定性和发布效率等更高级别的创新。这些都是 ZadigX 可以量化的回报率(ROI)。你有责任关注这些机会。

有些负责人还在观望徘徊:“我们的团队对 Zadig 的源码不熟悉,出了问题没法自己及时解决,Zadig 操作不够黑盒,那我还不如用我已经熟悉的 Jenkins”

我的回答是:Zadig 100% 开源,源码公诸于世。所谓 “Zadig 操作不够黑盒,对 Zadig 的源码不熟悉”,我们可以问问那些熟悉 Jenkins 的同事,他们对 Jenkins 的源码又有多少了解?更多的原因是因为习惯的养成和从”马车切换汽车”的不适应。同时,ZadigX 企业版部分不开源,但源码可以以特殊协议提供给战略合作企业。实际上,源码永远不是问题。勇于面对未来,解决更多实际问题,创造企业价值,这是每个团队成员都应该深思的问题。我强烈建议让团队成员亲自实际操作一次,完成一个项目,他们会发现体验无比流畅和便捷。