Linux、MySQL、Apache、Firefox、Ubuntu,都是响当当的名字,都是开源的项目。开源,在互联网中占据着越来越重要的地位,不仅受到开发者的欢迎,也受到 IBM、微软、苹果等巨头的青睐。
早在 2006年,国外开源技术已经发展的如火如荼。2009年10月30日 美国 Computer World 撰文称,白宫网站已经完全采用了开源平台,甚至连一直固守自有软件的美国国防部也对开源软件敞开了大门,对开源的支持也让奥巴马获得 “开源总统” 之称。
近两三年,国内以华为为代表的大公司对于开源技术的态度也越来越开放。许多开源项目已经应用在这些大公司的业务之中,拿近年来最热的 OpenStack 来说,华为在去年上线的华为云,就是基于 OpenStack 去做的。同样 容器技术也是华为目前大力投入的一项技术,不过无论是 OpenStack 还是 Docker 在实际使用过程中仍然会面临挑战。一次技术大会上,当讲师问到台下有没有人用过 OpenStack 的人时,台下一片安静,Docker 也在面对类似的问题。
但华为开源能力中心主任工程师 杜玉杰告诉 36 氪,一种开源技术从萌芽到成熟、稳定需要一个周期,Linux 已经 20年 了,OpenStack 才 6年 时间,Docker 也才 3年 多,还比较年轻。反过来看,在这么短的时间内取得这样的成绩已经算是发展很快了。许多开源项目的生命周期很短,还没有发展起来就死掉了。
当年在 OpenStack 发展初期也有 CloudStack 等项目与之竞争,为什么大家选择 OpenStack,就是因为其足够开放,有开放的生态、基金会、社区。因此也让 OpenStack 从开始的一两个核心项目变成现在的几十个核心项目。许多当年选择了 CloudSrack 的公司,最后又回到了 OpenStack 上,但是却丧失了几年的窗口期。
杜玉杰提到,虽然 Docker 是容器技术中最火的一个,但不是唯一一个。它是一家技术驱动型的创业公司,很有可能被收购也有可能遇到经济危机就死掉了。通过推动成立开放的基金会可以降低选型的风险。
那么诸如华为、微软、IBM 等厂商纷纷加入各个开源项目的基金会,在其中投入大量精力,原因在哪?
拿 OpenStack 来说,其基金会是有成员级别的,在最初设计规则的时候就确定白金会员只有八家,只有当其中一家退出才会有新的企业进入成为新的白金会员。在会员等级的背 后,不单单存在相应级别的特权,而是参与其中的企业会成为标准、规则的制定者,提出建设性的建议,推动技术、行业的发展,当然在一定程度上也会保障企业利益。
除此之外,一些大的互联网公司希望以此构建一种开放的工程师文化,吸引优秀的工程师,有时候优秀的工程师关注的不仅仅是薪水、待遇,更多的是企业文化和发展空间。
那么像华为这样的公司如何在众多的开源项目中选择一种有潜力的技术推动其发展?
杜玉杰告诉 36 氪,在他入职华为之前,遇到很多企业开源选型方面的问题,例如一些早期的开源项目,性能可靠性等方面都有很大的提升空间,那么很多企业选型时往往选择闭门造车,而不能积极的参与贡献,一方面是开源的商业策略设计问题,另一方面是开源生态布局问题。
“我们基于对于OpenStack社区五年左右生命周期的了解提出了一套开源能力模型,基于不同阶段的开源技术生态特点来设计相应的开源策略,并在去年的容器技术生态建设方面得到了很好的验证。”杜玉杰说
例如去年年初,在华为内部立项时明确提出,要考虑推动容器技术基金会化,以降低未来选型风险并提升社区影响力。
“当时还有很多人认为是不可完成的任务,结果我们看到OCI,CNCF陆续成立了,另外在成立OCI的同时就预测到社区一定会需要有兼容性测试认证项目,当时很多人也不以为然,现在我们已经培养出了自己的OCI测试任认证项目的社区maintainer了,等等这些说明只要能够正确认识开源,我们的工程师们完全有能力做到提前布局并主导部分开源项目的,从而为企业在开源选型时提供更多支撑。 ”杜玉杰介绍
在平时上网可能不会太注意,开源产品无处不在。你访问的网站,大部分是使用 Apache 的 Web 服务器;你访问的网站,大部分操作系统 是 Linux 或 BSD;你访问的网站,大部分都是使用 MySQL;你提交 DNS 查询请求由 BIND 服务器分析处理;你访问的博客很可能就是 Wordpress 的;说不定你现在就是用 Firefox 在阅读 36 氪的文章。
在国内开源的项目和社区很多,但品质高的项目却比较少,这也是国内开源项目一直被诟病的原因之一。但在国外许多职业经理人在运营开源社区,而国内却很少。开源在某种程度上说已经不再是一种技术,而是一种文化。国内也需要成立类似的开源基金会,让 BAT 等大公司参与进来,推动开源在国内的发展。
过去做的是产品都是理工男的思维,所以需要大而全的软件,从计划到实施需要大半年的时间,现在互联网时代所需要的速度是周一提诉求、周二开始做开发、周五上线运营。