用开源软件打造企业级 DevOps 工作流(三):持续集成(企业级开源项目)
661
2022-05-30
时至如今,开源软件已成为互联网的基石,过去曾敌视开源的公司如今比任何人都更急切的拥抱开源。
虽然开源项目很多,在Github上的开源项目数量已经超过100万,但很多个人项目无人维护,也没有人敢用,由公司创建的开源项目正在主导开源。部分发展较好的个人开源项目转向社区,如鼎鼎大名的Linus创建的Linux成立了基金会,依靠捐助和付费会员来维持开支,但也有另外一些项目走上了另一条路,就是基于开源项目创立公司。Jekins和它的创建者Konsuke Kawaguchi(川口耕介)就是其中的典型代表。
Jekins和Konsuke的过去
11月18日,由开源社主办的中国开源年会COSCon17在上海召开。Kohsuke Kawaguchi在大会上做了《黑客觅食记——围绕开源项目创建一家公司》的分享,在演讲后,我对他做了一个简短的采访,了解了更多细节。
Konsuke长的非常高大,简直不像个亚洲人,但稍微接触一下,你就会发现他行为举止十分彬彬有礼,十分照顾他人感受,正是典型的日本人做派。
平时,他喜欢称自己为Hacker,意为充满激情,乐于探索未知的那群人。据他自述,Konsuke从初中就开始接触编程,在读书期间就已经开发出一系列的共享软件。正是看上了他这份才能,Sun Microsystems邀请他加入公司。Konsuke接受了邀请,从此开始了在美国的生活。
在Sun Microsystems期间,Konsuke开发出了Hudson,也就是Jenkins的前身,后来正式创立了个人开源项目Jenkins。随后Sun Microsystems被Oracle收购,在工作了一段时间之后,Konsuke选择离开,并创建了自己的公司InfraDNA,再后来InfraDNA与CloudBees合并,现在,他是这家公司的CTO,提供基于Jenkins的企业级持续交付服务。
今天,Jenkins已经是持续交付领域最知名的工具之一,在全球范围内超过50万台机器上运行,影响超过100万开发者,帮助他们进行持续集成和持续交付。今年4月份,Jenkins发布新版本,带来新的用户界面Blue Ocean,大大改进了用户体验。
基于开源软件创建公司
开源软件是很多开发者的兴趣和激情所在,像Linus一样为开源软件全职工作,可能是很多开发者的梦想。
Linus创建了Linux和Git,两个都是当今互联网的支柱。在Linux基金会成立后,Linus开始全职在家开发和维护Linux内核。
在开源项目基础上做公司并非异想天开,之前红帽公司早已做出了很好的示范。红帽早些年通过维护Linux企业级发行版以及其它开源软件,向企业提供支持服务,目前已经是市值数十亿的大公司。
Konsuke总结了基于开源项目公司的商业模式:
专业技术支持。由于开发者亲自开发项目,对项目了如指掌,因此可以很轻松的胜任此开源项目的技术支持。缺点就是个人精力有限,无法同时服务很多人。 企业级产品。与技术支持相比,如果开发者提供企业级产品,他可以售卖给很多人从而获利。但是,面向企业售卖软件需要在营销、销售等地方投入很多精力。 SaaS产品。通过付费订购的方式向用户每月收取一些费用。这种模式理论上可以服务无限多的人,随着云计算的发展,SaaS模式也被越来越多的人认可。不过,这种模式也有一些不利的地方。仍然有很多人不理解SaaS的意义,认为自己通过开源项目也能搭建出同样的服务。另外就是SaaS提供商会不断的面临各种个性化的功能请求,你需要不断的拒绝他们。这并不容易,因为他们是付钱给你的客户。 Konsuke最终选择了第三种,即他现在所在的CloudBees公司,向外提供基于Jenkins的SaaS服务。
开源商业化需要注意的一些问题
运行一个公司并不容易,其它公司遇到的问题,Konsuke的公司同样会遇到,而有些问题更为独特。比如人才——
由于你需要基于开源项目去开发和提供服务,你需要对这个项目十分了解的人。Konsuke就提到,他们从Jenkins的社区招募了不少的开发者。这样的开发者可以保证他们是合格并且动力十足的,通过雇佣他们让他们在喜欢的项目上工作,可以更快的做出突破性的进展。并且,Konsuke还发现这些开发者来自各行各业,他们背后的企业通常会对项目有需求,因此经常会带来一些销售线索,算是意外之喜。
但从项目招募开发者的前提是,这个项目需要一个运转良好的社区,有大量的开发者可供选择。因此想依靠开源项目做公司,需要有意识的去培养社区。
另外,如果从项目招募了过多的开发者,也有一些风险,开发者会分不清到底是为项目工作还是为公司工作,一旦产生在方向上产生分歧,开发者受到的伤害会更大。另外,人们可能会认为公司正在操纵这个项目。另外开源项目中的开发者都跑去开发商业项目,开源项目的社区会有一些问题。
Konsuke指出,一旦开源项目创始人或重要人物基于项目创建公司,有时会很难把握公司与开源项目之间的边界。
比如,公司员工应该以何种程度参与社区?在为开源项目布道时要不要宣传自己家的商业产品?公司和社区在开源项目发展方向上产生分歧怎么办?这些都是需要仔细思考并妥善处理的问题。
这其中一个较好的策略是尽量回源(work upstream),和开源项目使用同一份代码库,特性在内部开发完成之后合并回开源项目主分支。在开源项目发展方向上,尽早定下路线图,然后按路线图进行开发,避免冲突。
一般开发者可能对于商标等法律术语不太了解,但如果要建立公司,这些是非常重要的,最好在开源项目时就考虑好这些事情。
开源项目是有价值的,但开发者的时间也应该是有价值的,Hackers gotta eat,如何靠开源项目养活自己,这就是Konsuke和Jenkins的思考和给出的答案。
Linux 华为开源镜像站 Mirrors
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。