一群云端的开源践行者
导读:本文介绍了开源项目 KubeSphere 背后的故事,以及由它引发的对开源软件发展的思考。
从一个开源项目的数据说起
作为一家主要关注于开源的技术社区,我们每年都会对以中国贡献者为主的开源项目进行一次分析。而随着云计算的发展,我们对由云计算公司发起和推动的开源项目愈加重视,在研究分析过程中,我们发现了一个开源项目的数据表现亮眼,这引起了我们对这个项目背后团队的兴趣。
图 1 KubeSphere Grank 指标图
这个项目就是 KubeSphere。和其他同类项目相比,KubeSphere 项目的启动时间不算早,2018 年初才启动。但从启动开始,社区的活跃度就屡创新高。从上面的 Grank 指标图可以看出,其在 2019 年度的整体活跃度(红色线)相当高,并在今年有继续提升的趋势。而其平均活跃度指数 6.89 可以排入 Grank 服务端分类榜的前三十。
刚好,这个项目背后的负责人我们也很熟悉,之前曾经在《穿山甲专访》栏目中接受过采访——周小四(人称“四爷”),如果你感兴趣,也可以看看之前的采访文章。
如今一年过去了,为了了解现在 KubeSphere 项目有什么新的变化,我又和他约时间,再次聊聊 KubeSphere 的发展和下一步的计划,得到一些新的发现和体悟。
KubeSphere:“青云”之路
谈起 KubeSphere ,容我先简单介绍一下背景。
随着云计算技术的发展,容器编排技术 Kubernetes 已经成为云服务商们的角逐重点。按照 Kubernetes 的理念,它定义的是一套标准、一个生态规范,因此,各个生存于其间的云服务商纷纷基于 Kubernetes 推出了各自的发行版和相关的生态软件。
这其中既有 Rancher、OpenShift 这样复杂完备的的企业级平台,也有 minikube、k3s 这样简单易用的实验型工具。而今天我们提到的主角 KubeSphere就是一款开源的企业级 Kubernetes 发行版,与其外延的其它组件组成了一个完备的容器生态体系。
事实上,我们可以看到,几乎所有的主流云服务商都开发了 Kubernetes 引擎(KE),比如说 TKE、RKE、AKE 等等,并以此作为其基于容器的云服务基础。当然,这些软件作为开源软件生态的一分子,都或早或晚进行了开源。
而作为青云QingCloud QKE 服务的引擎,KubeSphere 也是其中的佼佼者,并且,值得注意的是,KubeSphere 从一开始就选择了开源,并以开源作为其产品迭代发展的模式。
相比 Kubernetes 领域的其它厂商,KubeSphere 的进入时机不算早,因此,在这种情况下仍能推动决策立项,应该压力不小。周小四和我说,他们当时深入调研和分析了企业的市场需求,发现在该领域尚存在较大的产品空隙。固然,Kubernetes 为企业级容器应用揭晓了新的篇章,但广泛的企业用户在如何用好 Kubernetes 层面,需要突破较多的技术门槛和业务适配的阻碍。因此,他认为,在该领域仍大有可为,这一建议也得到青云QingCloud 的大力支持。
而另外一方面,作为一家国内主流的企业级云服务商,青云QingCloud 也一直在密切跟进 Kubernetes 领域的技术发展和产品形态。所谓磨刀不误砍柴功,正是这一年多提前付出的预研投入,让周小四及其团队在2018 年初开始 KubeSphere 的研发时,就能迅速发布经过了精心设计的 KubeSphere,并于半年后在青云QingCloud IaaS 基础设施之上推出了 QKE——KubeSphere on QingCloud 容器服务。
图 2 KubeSphere 路线图
倏忽间过去了两年,KubeSphere 也即将迭代到 3.0,对于它发展至今,并取得今天的成绩,周小四认为主要得益于以下原因:
- 天时:站在 Kubernetes 的肩膀上,处于容器技术的大时代;
- 地利:开源为它赋予了成长为参天大树的土壤;
- 人和:来自团队和社区贡献者对容器技术的深刻理解、对用户需求的精准把握和在产品设计上的匠心独运。
KubeSphere 的天时
扑面而来的云原生时代,是机遇也是挑战。这里,我们看到了 Docker 公司如荧惑一样迅速升起又快速淡去,我们也看到了谷歌力推的 Kubernetes 从天下三分到一统容器编排领域,真正揭开了云原生时代的大幕。
并不是每个身处大潮之中的都是弄潮儿。说实话,这些年我看过很多云计算领域的企业或因押错注而不得不更弦易辙,或因产品没有足够的独特优势而泯然众人。对于一家国内主流的企业级云服务商,青云QingCloud 不仅一早看好 Kubernetes,又没有匆匆下场,更在局势渐明时能决然重兵压上,其实我是有些佩服和羡慕的。
在和周小四的对话中,他说,在潜心研究了 Kubernetes 生态一年后,青云QingCloud 才正式立项,并由他带队开发运营 KubeSphere 容器平台。谈话间,生性乐观的周小四并没有表现出曾经面对的困难和压力,但是如果易位而处,我能感受到他的那种魄力和信心。
KubeSphere 的地利
那么,KubeSphere 的地利是什么?是开源。
有一个强大而完善的团队,确实可以打造一款好产品,有可能取得一时之胜。但是,时代如汤汤大河,如今开源已经成为数字世界的血脉,触达和营养了各种互联网技术的急速发展。
在21世纪的第二个十年间,连微软都已经摇身一变,成为了世界上最大的开源企业之一,可以说,开源已经成为了一种时髦的技术文化,它从一种软件分发和开发模式,变成一种可以以之为脉络的商业模式。但是,开源到底只是一种时髦文化、用来迎合大众和媒体的流行词,还是可以赖之生存和发展的一种机制呢?
在这方面,我们看到了企业在开源领域的众生相,略举几例:
- 买椟还珠式开源:有的公司是只是希望贴上开源的标签,并不真正了解开源对公司的实质价值,也无从将开源的好处和公司的发展机制相结合,空耗人力与财力,甚至没能给开源世界带来什么贡献。
- 叶公好龙式开源,有的公司的开源成为了技术部门的 KPI 工具,他们并不真正依赖开源来提升软件质量和改善软件的业务生态,甚至害怕开源伤害到公司以专有代码建立起来的业务护城河;
- 竭泽而渔式开源,还有的公司对待开源则是奉行“拿来主义”,只有索取和利用,而不对开源软件和开源社区做出适当的回哺,甚至倒逼一些开源软件纷纷修改其许可证,避免被吸血。
而作为 KubeSphere 项目的负责人,周小四认为青云QingCloud 是真正把开源做为一条切实可行的发展路线的。
周小四认为,虽然目前开源领域看起来热闹非凡,但是真正可以称之为成功的、健康的、可复制的开源模式尚寥寥无几,失败者并不鲜见。而青云QingCloud 作为一家主流的企业级云服务商,根植于云技术之上,已经找到了一个切实可行的开源模式。周小四说,“公司(青云QingCloud)给予了强有力的支持,希望 KubeSphere 可以走出一条新的开源模式路线来,真正践行开源的思想和路径。”
KubeSphere 的人和
说完了天时、地利,让我们再来看看 KubeSphere 成功背后的人和。
对于一位资深的技术专家来说,精通云计算技术并能跟上全球云时代的技术浪潮,并不算最难的挑战,难的在于可以站在技术之外看到用户需求、用户体验和产品运营之道。
在对话中,周小四和我说,他很幸运,“总是能在对的时候找到对的人”,因此 KubeSphere 的各个细节才处理得很好。这里他专门提到了 KubeSphere “特别易用的前端界面”和“丰富完备的中英文文档”,并特别庆幸每次总能找到最好的伙伴们来做这一切。当然,这些都是建立在精心设计的架构和底层 API 之上的,只是想必这部分是周小四亲自操刀的,但他并没有专门提及。
而我想,在这样的一个团队中,有这样的一位领头羊,也是一种幸运吧。
图 3 KubeSphere and Friends
开源是如何为 KubeSphere 添砖加瓦的
缘何开源可以为 KubeSphere 提供助力呢?这是由开源模式本身的优势所决定的。
或许有些人直觉上会感到意外,开源本身并不会因代码的公开,导致该软件及软件背后的企业或组织丧失竞争力。事实上,几乎不存在一段极其精妙的代码可以形成长久的优势,更重要的是,在软件的发展过程中的工程能力才是真正的竞争力,这一点,其实和开源与否并无直接的联系。
那么既然开源对竞争力并无负面影响,是否有正面的影响呢?
有的。
首先,无论是什么软件,其必然要满足各种不同场景需求,才能与时俱进,不断发展下去,而该软件的团队和决策者往往并不能照顾到(或遇到)各种场景,也不一定总是能做出最佳选择。但是在开源模式下,由于代码是公开的,总会有层出不穷的用户场景,这些意料之内或之外的场景和需求,极大地刺激了开源软件的生命力。
其次,通过开源极大地降低了用户接触门槛,因为用户可以近乎无成本地接触和使用这些开源软件,并在满足场景需求和形成知识领域之后,还会进一步的扩散该软件的传播范围,而这本质上是对用户和市场的争夺。
最后,通过开源,软件的参与者就不仅仅是内部团队了。不限于对代码的贡献,任何提出错误反馈、功能需求,甚至寻求帮助的用户,都能加速代码的迭代和发展。一个快速迭代的软件,其活力远不是闭门造车所能比拟的。
而在 KubeSphere 中,对于以上几点的践行,实实在在地收获到了成绩。
KubeSphere 的开源成绩
从 KubeSphere 的 GitHub 仓库的活跃度看,来自青云QingCloud 和社区贡献者的提交、 议题 ( issue ) 都非常活跃。周小四还说,“我们的项目的 星标 ( Star ) 数现在有三千多,有人分析过,星标的质量很高,它们来自于全世界各地。”这意味着,KubeSphere 已经取得了社区的一定认可。而且,社区用户也在主动地自发向更多的人去推荐 KubeSphere,提到这一点,周小四的振奋之情让我感同身受。
图 4 KubeSphere 星标增长图
从上图的星标增长趋势来看,KubeSphere 的用户关注度在持续地自然增高。
在我们对开源项目的评判当中(Grank 模型),有两个重要的维度:
- 项目活跃度:通过项目的提交、拉取请求、贡献者等数据的变化幅度计算得来的一个指标;
- 项目健康度:通过项目的社区化程度来判断项目的健康发展程度。
从文章开始部分的图 1 可以看到,KubeSphere 的活跃度能维持在较高水准上。尤其是经过了最近几个月的全球性疫情之后,KubeSphere 的项目活跃度再次取得了新高。如果维持这个发展态势,KubeSphere 的变化将日新月异。
社区化
而 KubeSphere 项目的健康度,我们可以从图 1中看出,来自社区的代码贡献者的比例并不算很高,这对于一个由企业主导推动的开源项目来说,属于正常水准。但在代码贡献者之外,据周小四称,目前 KubeSphere 的社区活跃度还是很不错的,从社区支持的多个交流平台,如国内用户惯用的论坛、微信群,到国际用户惯用的 Slack、邮件列表等,都有很多活跃的贡献者和用户。而另一方面,KubeSphere 的独立下载量已经达上万次,周小四表示,他的目标是这个数量将来可以进一步提升到十万、百万级别。
目前的贡献者除了青云QingCloud,还有来自本来生活、中通、VNG 等海内外多家企业,并且还有不少社区的独立开发者希望能够更多地参与到 KubeSphere 的直接贡献当中。但是从目前看起来,晋升为 KubeSphere 的核心开发成员的外部贡献者占比还不够高,主要还是来自于青云周小四说,他们还在着手丰富 KubeSphere 贡献者生态,主要努力方向在以下两个方面:
- 一方面,在如何降低贡献者的贡献门槛方面,比如文档、代码规范、贡献流程方面不断地改进和完善;
- 另一方面,由于 KubeSphere 本身迭代速度较快,新的功能不断推出、原有功能不断改善,在高歌猛进的同时,一些需要夯实的基础性工作,比如国际化、教程、bug修复和用户需求管理方面继续加大投入更多的人力。
周小四说,他希望 KubeSphere 是属于社区的开源项目—— 这一点,从项目本身的 GitHub 仓库放在 KubeSphere 组织下可见初心。对此,周小四也设定了一个评判标准,什么时候 KubeSphere 社区的技术委员会(TOC)里面,除了青云QingCloud 的人员以外,还有其它公司或社区的成员,才叫真正的成功。
图 5 KubeSphere 社区组织图
对于一个开源项目的发展,周小四有着清晰的认知,从最初的产品设计,到进一步成熟迎来更多用户,再到社区成员参与贡献并走到更高的社区决策层面,都标志开源社区的开放性和健康发展。
图 6 GitHub 数据
生态化
作为云原生领域的生态软件,KubeSphere 坚持完全开源和开放的迭代思路,联合多个企业与开源社区,共同打造了以 KubeSphere 容器平台为核心的开源项目。
除了集成主流的开源组件如 Jenkins、Istio、Prometheus 等,还围绕 KubeSphere 开源了 Porter、OpenPitrix、KubeKey、Kube-events、Fluent-bit Operator、Notification Manager、CSI 插件等 80 余个开源项目,甚至 Porter——面向裸金属环境的 Kubernetes 开源负载均衡器这样优秀的子项目已经进入了 CNCF 云原生全景图。
国际化
但是,KubeSphere 并没有满足于当前的发展,而是更积极地谋求国际化发展。周小四说,得益于该项目在发展之初就以国际化为目标,其文档、社区交流,除了立足于中国本土的中文环境之外,国际化是在创立之初就从头贯彻的。甚至,他还专门招聘有国际化社区运营经验的人员来负责全球社区建设和运营。
然而这些努力并没有白费,他发现最近几个月以来,KubeSphere 的国外下载量已经超过了国内的下载量,其贡献者中也不乏来自于中国以外各个国家和地区的技术爱好者和用户。甚至还有国外的公司主动联系他们,希望共同合作建立欧洲市场和社区,并提供相关的本地化工作。
周小四说,对于 KubeSphere 来说,开源的属性为其带来了天然的全球化属性,但让 KubeSphere 真正的成为一个全球化项目,正是他寄予期望的目标之一。
结语
有人说,一叶而知秋,我们讲开源讲了这么多年,也从心里认可和推行开源思想,但是只有我们真正在具体的项目中践行开源的理念,
我也希望读者可以从这样一个具体的项目中,观察和吸收到开源模式的精粹,我觉得,是时候在你的下一个,不,现在手里的这个项目开始,落地开源思维了。你说呢?
“穿山甲专访”栏目是 Linux 中国社区推出的面向开源界、互联网技术圈的重要领军人物的系列采访,将为大家介绍中国开源领域中一些积极推动开源,谙熟开源思想的技术人,并辨析其思考、挖掘其动因,揭示其背后所发生的事情,为关注开源、有志于开源的企业和技术人标出一条路径。
取名为“穿山甲”寓意有二:取穿山甲挖掘、深入之意来象征技术进步和表征技术领袖的作用;穿山甲是珍稀保护动物,宣传公益。