BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google 教你如何“做”开源

| 作者 李建盛 关注 1 他的粉丝 发布于 2017年4月11日. 估计阅读时间: 9 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

引言

在2016年,IDG旗下网站ARN发表了一篇文章:展望2017年的顶级技术,将开源和人工智能、深度学习、虚拟现实、云计算安全一并列举为2017年的流行技术趋势。果不其然,2017年第一季度已经过去,回顾一下这个预测,某种程度上验证了这一预测:

  • GitHub 发布开源指南,旨在帮助人们利用开源,参与开源,治理开源。
  • AT&T、Alibaba加入Linux基金会。
  • Amazon 开源旗下深度学习框架MXNet,并捐赠给Apache基金会。
  • Google 捐赠给Apache下一代大数据框架Beam。
  • 在刚刚结束的云原生技术研讨会上,Linux基金会主席的Keynote讲到,Kubernetes 将会是下一个云计算中的Linux。
  • ......

不过,所有这些事件,均仿佛是为今天的事情作铺垫——Google为其开源建立了新家:opensource.google.com。

背景介绍:Google与开源

Google 对于开源的理解,在业界是独树一帜的。从2005年就成立了开源项目部(OSPO),并由业内对开源有深刻理解的Chris DiBona来主持工作。Google 或许并不是贡献代码最多的公司,在 Kubernetes 项目之前,Google的开源项目甚至是只有很小的贡献率、或者是强约束并非完全的开放(比如,Chrome和Android),但是它依旧在开源开发者圈具有强大的影响力(甚至有人说是最大的),这就是一旦彻底开放如Kubernetes这样的平台,就促使这个项目异常的成功。再说了,Google 除了项目之外,还创建过 Google Code,曾经一度是开源软件最大的代码托管的地方,以及大名鼎鼎的 Google代码夏令营(GSoC),虽然这些举措Google都没有大量的代码贡献,但是它促使世界各地的开发人员能够合作,从而编写更多的代码。

如果离开了开源软件,我们今天所看到的互联网将不复存在。 ———— Chris DiBona ,Google开源总监

除此之外,Google也通过诸如软件自由保护apache软件基金会以及其它的组织来对开源项目和社区进行赞助。

同时,Google也是开源的受益者,从1998年最初的服务上线,Google的产品和服务都是架设在Linux等开源软件的基础之上的。当然Google是一家广告公司,至少不是一家纯粹的靠软件来盈利的公司,拥有非常多的优秀的计算机科学家和工程师,一如Google自家博客中介绍中所说:“从支撑服务的Linux内核到内部的文化,开源是Google做任何事都绕不过的。 ”

新站点的思路

负责人在博客上说道:新的站点成立,旨在将Google如何使用、发布和支持开源的所有事情放在一起。站点将以最大的深度和广度的展现Google对于开源的热爱!它不仅包含人们意料之中的:Google的程序、所支持的开源组织、以及长长的开源列表,而且还包括了意料之外的:Google是如何“做”开源的幕后策略。

由此看出,新的站点,成为了Google对待开源的统一入口和展示的地方,也就是Google的开源哲学和方法论的最大呈现。

帮助人们找到感兴趣的项目

开源意味着让人们更好的协同工作,开发更优秀的软件,让这个世界更加的美好! ———— Sarah Novotny, 项目经理

Google对于开源项目的态度,向来是“越多越好”,原因是无法实现知道那些项目会引起人们的兴趣,所以Google的开源部门就是帮助公司尽可能多的发布代码。这样的经过了多年以后,回过头来再看,Google已经发布了成千上万个开源项目,且有形形色色的许可协议,这些项目既有大型的产品,如TensorFlowGoKubernetes ,也有一些较小的项目,如钢琴装饰灯NeuroglancerPeriph.io,其中有些是获得Google正式支持的、有些是试验性质的,而有些则只是为了好玩。所有的这些项目,都分散在超过100多个GitHub的组织和Google自托管的git服务上,以至于人们对于Google开源代码的规模和范围是模棱两可的,甚至被错误的低估。

为了给人们提供一个完整的Google开源项目图景,Google创立来Google开源项目目录,在未来Google的开源项目部,会逐渐的将这个目录完善并对没个项目进行更为细致的描述,比如会举例说明,Google内部是如何使用的。

我们以Kubernetes的描述页为例,见识一下Google的用心之处,打开这个页面,在上面的条幅上展示了项目的名称和站点域名,在正文的左侧,分了三个章节,分别是:

  • Kubernetes的功能概要描述,所解决的问题,Kubernetes最初的灵感来源,以及简短的发展历史
  • Kubernetes 在Google内部是被如何使用的
  • 代码仓库,以及最为典型的GitHub质量评估:星星数量和被fork的次数。

而正文的右侧,则是一些归类、标签,以及所使用的编程语言,便于分门别类的查找。

这对于开发者而言,无疑会大大的提高查找自己感兴趣的项目的效率;而对于互联网或企业来说,研究Google怎么使用,会少走很多很多的弯路。是的,Google为这个世界贡献了很多分散的开源项目,有了这个权威的索引,让我们重新认识Google的开源项目的宏大,目前在编的项目超过2000多个。

Google是如何做开源的

开源从来就不仅仅是将代码开放这么简单,它还至少包括了社区和流程。参与到开源项目和社区,对于Google这样体量的公司是件非常具有挑战性的事情,在2014年,Google帮忙组件了TODo Group,这是一个众多商业公司组成论坛,讨论参与开源的最佳实践和协作。经过多年的累计,从讨论中收获很多灵感,借着发布新站点的机会,Google还一同发布了内部文档:Google 是如何做开源的

关于此文档,绝对值得业界借鉴,比如:

罗马从来就不是一天建成的,上述的这些规则也好,流程也罢,都是多年的经验积累,甚至有的是付出教训后学到的经验。这些未必适合所有人,(开源本身就是有很多的选择)所以这些文档并非是“how-to”指南,但是相信对于有心人是有很大的参考价值的。

结语

Google 似乎正在改变自己在业内的高冷形象,从 Kubernetes 的社区运营,再到今年即将参与RedHat Summit 2017,乃至这次新开源站点的建立,都在应验着开放战略,试图扳回在云计算市场的失利。再比如Spanner的服务、以及免费为开发者提供资源等具体的产品和服务。其中一定有商业因素的考量,但我们始终认为Google的信条,以及他对开源独特的理解,所以宁愿相信他的情怀:Google 开源项目部不仅仅是让Google的软件变得更好——他们更加热衷于通过开源改变世界。

让我们祝愿Google新的开源站点,百尺竿头更进一步!让所有的开发者、开源相关人员受益。


感谢郭蕾对本文的策划和审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT