OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

Google 教你如何“做”开源

  • 2017-04-10
  • 本文字数:2703 字

    阅读完需:约 9 分钟

引言

在 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 已经发布了成千上万个开源项目,且有形形色色的许可协议,这些项目既有大型的产品,如 TensorFlow Go Kubernetes ,也有一些较小的项目,如钢琴装饰灯 Neuroglancer Periph.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 )关注我们。

2017-04-10 17:271890
用户头像

发布了 33 篇内容, 共 11.6 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

Redis删除键命令: 新手用del,老手用unlink,有何区别?

Java你猿哥

Java redis SSM框架 Java工程师 delete

Unity 之 月签到累计签到代码实现(ScriptableObject应用 | DoTween入场动画)

陈言必行

Unity 三周年连更

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

Java你猿哥

Java 分布式 SSM框架 分布式数据 分布式消息

我在 20 年的软件工程师生涯中学到的 20 件事

宇宙之一粟

翻译 软技能

FastAPI 快速开发 Web API 项目: 连接 MySQL 数据库

宇宙之一粟

Python FastApi 三周年连更

阿里P7了!全靠死磕这份阿里全彩版"并发编程笔记",大厂必备!

Java你猿哥

Java 并发编程 架构师 java面试 Java工程师

从「搭子」文化,看融云如何助力垂类社交应用增长

融云 RongCloud

融云 Z世代 通讯 交友 搭子

开屏广告=让用户等?小红书如何兼顾用户体验和广告投放效果

小红书技术REDtech

推荐 广告 小红书

准备2023金三银四的Java程序员注意:40+文档5000+页面试资料来啦

会踢球的程序源

Java java面试 面试资料 Java大厂面试

互联网工程师Java面试题及答案整理(2023速成版,7天就能吃透)

采菊东篱下

java面试

改写同事代码——血压操作集锦第一弹

Java你猿哥

Java IDEA java编程 SSM框架 表单设计

Oracle 23c 新特性实操体验优质文章汇总

墨天轮

数据库 oracle sql 新版本/特性解读

字节跳动正式开源分布式训练调度框架 Primus

字节跳动开源

开源 算法 流批一体

HummerRisk V1.0 :架构升级说明

HummerCloud

开源 云安全 云原生安全

【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

HMS Core

HMS Core

90%的Java开发人员都会犯的5个错误

做梦都在改BUG

把脉分布式事务的模型、协议和方案

小小怪下士

Java 分布式 分布式事务 后端

代码质量难评估?一文带你用 SonarQube 分析代码质量!

Java你猿哥

架构师 代码 SSM框架 sonar

小红书社区反作弊探索与实践

小红书技术REDtech

防作弊 小红书

python统计程序耗时 | python小知识

AIWeker

Python python小知识 三周年连更

测试工程师为什么要关注研发效能?

思码逸研发效能

软件工程 研发效能 测试工程师

SpringBoot2.x系列教程——整合使用JPA

会踢球的程序源

Java

治理告警风暴,告警降噪的一些典型手段

龙渊秦五

告警风暴 告警降噪

多家大厂CTO鼎力推荐的微服务架构设计模式真的硬核

小小怪下士

Java 程序员 微服务 后端

Spring Boot 实现接口幂等性的 4 种方案

做梦都在改BUG

Java Spring Boot

揭秘云原生时代企业可观测体系落地实践

嘉为蓝鲸

云原生应用 云原生(Cloud Native) 可观测宇宙

多云转晴:Databend 的天空计算之路

Databend

Alibaba最新神作!耗时182天肝出来1015页分布式全栈手册太香了

Java你猿哥

Java 分布式 SSM框架 分布式核心原理解析 分布式开发

阿里全新推出:微服务突击手册,把所有操作都写出来了

Java你猿哥

微服务 微服务架构 Spring Cloud SSM框架

大型SRE组织设计与建设落地,且看腾讯蓝鲸如何做?

嘉为蓝鲸

腾讯 运维自动化 蓝鲸

中船互联与嘉为科技共同打造“IT运维管理”融合解决方案

嘉为蓝鲸

自动化运维 IT 运维 中船集团

Google 教你如何“做”开源_语言 & 开发_李建盛_InfoQ精选文章