在中国如何打造一个有生命力的开源项目?
2021-12-14 DOIT朱朋博
在中国如何打造一个有生命力的开源项目?
作者:DOIT朱朋博 发布时间:2021-12-14 09:51:00

作为曾经的初级Java程序员,如今的IT行业的观察者,提到开源一词,我的内心总难掩一些悸动。

最近,在与九州云联合创始人章津楠沟通中认识了一个有趣的开源项目——建木,这是一个造福程序员的项目,而在建木团队的设想中,是要把建木做成一个被广泛应用的,有生命力的开源软件。

章津楠有十余年的开源社区经验,通过他的介绍中,我们能看到了中国在开源方面的一些变化,比如人才的积累,对于技术的重视,对开源认识的加深,基于这些变化,我相信,中国未来将会出现更多有影响力的开源项目。

开源在中国越来越流行

印象中的开源软件,背后站着一位或者一群无私奉献的技术大神,他们有发现问题的眼睛,解决问题的技术水平,还有创造性的思维,最重要的是,还有开放源代码来帮助更多人的善意。而开源软件的使用者想像自由摆弄的农家小园一样,在电脑上自由使用开源软件。

随着技术的发展,人们发现软件能做的事情可太多了,我相信每个喜欢代码的人,内心都有改变世界的梦想。而且,开源软件人人为我,我为人人的基本模式,在全球范围内吸引了很多人,开源逐渐从小众行为变成大众话题。

开源软件听起来遥远,但生活中我们无时无刻都在用开源社区的力量,经典到Linux操作系统和MySQL这类基础软件,以及Wordpress这类的开源CMS方案更是无处不在,随处可见的Andriod设备也都是开源项目。

开源对于中国IT技术进步与发展也起到了重要作用,特别是云计算时代以来,以OpenStack为代表的一系列开源项目在中国的流行,让越来越多的中国企业都加入了开源的浪潮中,过程中,既练就了技术,熟悉了标准,也领悟了开源的意义,更多人愿意在开源方面做更多。

九州云成立于2012年,是国内最早的OpenStack参与者和贡献者之一,也是中国早期从事开放云边基础架构服务的专业公司,过去几年来,九州云完成了从中心云到边缘云的拓展,在过程中,九州云的业务得以发展,对开源的理解也逐步深入。

而今天要说的建木,就是在九州云在产品技术落地过程中自然而然做出的开源项目。

一个中国开源项目的诞生:建木的由来

在采访中介绍了建木的由来。

原来,建木的许多想法都萌芽于2015年,在某银行征信中心研发测试云咨询和落地实践中,九州云构建了基于OpenStack的私有云IaaS,上层构建了基于Jenkins的CI/CD流水线。过程中,建木团队从开发者的视角审视 DevOps,也逐渐体会到了DevOps的优美和不足。

2018年,九州参与了某金融机构的自动化运维改造项目,建木团队也从运维人员的视角审视着DevOps的价值,看到了DevOps在大型机构落地难的问题,也有了许多金融领域实现DevOps的深入思考。同时,也从管理者的角度意识到了金融领域用户对于DevOps的关键诉求——“敏捷”。

2020年开始,在之前项目积累的基础上建木团队开始构思如何让整个DevOps更简洁,如何以简洁的方式来完成DevOps工具链的集成和使用。

由此,结合之前实战项目中的经验,对一些核心的分布式调度和执行相关代码做重构,最后将这些代码开源,于是就有了建木,这中间饱含了建木团队智慧和汗水!

“建木”的名字饱含中国元素,“建木”取名于山海经·海内南经,“建木”是上古先民崇拜的一种圣树,它是沟通天地人神的桥梁。据传,伏羲、黄帝等众帝都是通过这一神圣的梯子上下往来于人间天庭。此外,建木项目还进入了中国开源社区木兰开源社区孵化。

从介绍中了解到,建木项目的使命与“建木”圣树神似,它的作用是衔接各个IT领域,包括自动化运维和DevOps相关各种任务,未来规划中,去做各种业务系统之间的集成,成为不同业务场景间互通的桥梁。

功能设计上,建木的核心功能包括触发器、流程编排、任务分发等功能,这些功能决定了建木可以应用在各类使用场景下,包括但不限于CI/CD、DevOps、自动化运维、多业务系统集成等场景的自动化。

一个技术团队的理想:做一个被广泛应用的开源软件

无论是从最初的出发点,还是实际落地的功能点,建木无不反映出一个技术团队的理想。

从建木项目的介绍中了解到,建木的目标是要造福开发者,让IT从业人员从重复的体力劳动中解放出来,让35岁以上的程序员也能继续写代码,让他们在三线城市拿着一线的薪酬,成为田园工程师。

建木团队没有让理想停留在想象中,而是准备将建木打造为广泛应用的,并且有生命力的开源项目,要做到这点,建木团队认为需要经历三个阶段:

第一,以更高的易用性吸引最终用户,让更多人用起来,吸引更多人加入开源社区。

第二阶段,在用户真正体会到其中价值后,在社区分享用户心得,提升建木的影响力。

第三阶段,更多人主动提出需求和想法,并能通过代码能力以及文档能力来为社区做贡献。

为了让更多人用起来,建木团队做了很多事情,比如在社交网站开设账号普及介绍,比如做在产品设计上做一些流程可视化的设计,为了提升建木的易用性,建木团队选择以打造产品的思路在做开源项目。

在介绍建木的功能时,只见在图形化界面里通过几次点击,就将多种服务进行集成,最终在企业微信里搭建了一个机器人交互服务。

之所以如此简单易用,主要是因为建木的生态节点库里有许多开发完成的节点,将这些节点组织和串联起来后,就能快速构建一些复杂的服务。

建木的节点生态

目前,建木官网上展示了一些节点,有的是建木官方自己开发的,也有许多是其他社区的开发者来贡献的,通过这些节点,可以快速与多个平台进行集成,在建木项目未来发展中,很重要的一个方面就是积累越来越多的节点。

建木项目强调平台中立性,不与任何云以及其他服务商进行绑定,目前,建木将代码托管在了Gitee(码云)上,这是国内的最有影响力的代码托管平台之一,在开源社区的选择上,建木也是选择了国内非常有影响力的木兰开源社区,目前已是木兰开源社区的孵化项目。

之所以选择国内的开发者社区,主要是考虑到建木项目的定位于服务本土的开发者,以中文用户为主。通过中文开源许可证选择和中文治理框架的制定,以便于参与者比较容易对开源许可证法律条文和建木社区治理方式了解,这是一个对中文开发者更友好的社区。

建木的目的地,住着技术人的开源梦

在对建木的设想和规划中,能看到他对于开源技术的热爱。

2021年,距离他最早接触开源已经过去了15多年,而他真正投身于开源也十年有余。期间,他得到过开源前辈的指导并从中受益良多。而如今九州云的发展也蒸蒸日上,作为联合创始人的他也始终心怀对于开源的热忱。

在他看来,一个被广泛应用的开源软件,一个有生命力的开源软件本身要比思考开源商业化的问题更重要,这是首要解决的问题。

他也深知在中国做开源的难,认为开源是一场持久战,绝非一时的冲动和热情能做的事情,需要考虑的问题非常多,比如开源许可证的问题,社区治理的问题,但同时也发现,情况正在起变化。

他发现,随着社会的发展,随着生活水平的提高,越来越多的人有精力投身于开源,保持着对技术的热爱,不计报酬地做一些事情,参与开源项目的过程是程序员在真正创作的过程,很多人都很享受这一过程。

建木的名字饱含着九州和建木团队对于国内开源的期待,希望国内开源生态逐渐完善,希望有一天,代表中国古典文化的开源项目会呈现给世界。(丸)

关于建木的更多资料:

项目官网: https://jianmu.dev

项目托管: https://gitee.com/jianmu-dev

项目文档: https://docs.jianmu.dev