小米与开源的渊源还要从 Android 的开源说起。

作者 | 唐小引发自小米开源技术峰会现场

出品 | CSDN(ID:CSDNNews)

屈指算来,开源软件至今已有二十多年的光景,到今天,开源已经成为所有互联网公司的基石,也是我们所有程序员所崇尚及热爱的文化。无论是于公司或个人而言,我们都从开源软件及社区受益良多,小米即是其中之一。在今天于北京举行的小米开源技术峰会上,小米人工智能与云平台副总裁崔宝秋与我们分享了小米为什么会走上了开源之路。

1.为什么小米坚定地走上了开源之路?

这与程序员出身的雷军,以及今时今日小米开源的主导人 —— 小米人工智能与云平台副总裁崔宝秋博士密切相关。在小米开源技术峰会的现场,崔宝秋分享起了自己从 1995 年开始接触自由软件到推动小米成为开源软件倡导者的初衷及所取得的成就。

图注:小米人工智能与云平台副总裁崔宝秋

崔宝秋讲起了雷军与他分享过为什么要创办小米,其中有一个原因就是看到了 Android 的开源,早在数年之前,雷军便坚信像 Android 这样的开源操作系统会盛行更是一个巨大的机会。“雷总和我说,‘宝秋,现在任何一家互联网公司离开开源就输在了起跑线上’,开源非常重要,这也是我在小米推动开源的源动力。”崔宝秋如是说道。

而于崔宝秋个人而言,他是中国技术圈里知名的开源老将,自 1995 年在美国接触自由软件到现在已有二十多年,而这数十年之间,他已从一个爱好者成长为中国开源领域的一方大拿,用他的话说,就是“从早期自由软件爱好者变成自由软件信仰者、开源软件的开发者和管理者,到今天在小米的开源软件倡导者。”

过去几年来,开源已经成了小米的团队文化、工程文化非常重要的组成部分。“我在打造小米人工智能与云平台团队时,一直都是以硅谷的一种创业公司、互联网公司的风格来打造团队的,团队文化包含了多种元素,其中非常重要的两个就是‘技术’和‘开源’,我是非常倡导、鼓励开源的。”

在谈到为什么如此积极地拥抱开源时,崔宝秋谈到了几点理念,这也是他从 2012 年加入小米就一直极力主导开源的原因。

  • 永远站在巨人的肩膀上:这是非常实用的应用,现在很多的大数据、人工智能、云计算技术开源已经成为了事实标准,我们又何必重复造轮子自写一个 Hadoop 呢?

  • 开源软件已经非常成熟:在云计算、大数据和 AI 领域,很多开源软件已经成为了业界的事实标准。

  • 代码质量/工程文化:通过开源软件的应用及读大量的优秀的开源代码可以迅速提升工程水平及工程师文化。开源软件还可以提升开发者们对于编程的热爱,对代码质量的苛求,进而提升对于完美度的追求。

  • 吸引人才/人才库:一个公司拥抱开源,崇尚开源文化,可以吸引很多的工程师加入到公司之中,而他们所学习到的技术可以直接在公司应用。

崔宝秋将开源力量分为三种,分别为:个人爱好者、无开源商业模式组织和有开源商业模式组织。对于崔宝秋而言,从作为一个开源的个人爱好者,到先后任职 IBM、雅虎、LinkedIn 到现在的小米,这种界限分明的力量让他感受颇深。“我从 IBM 到雅虎后对于开源的感受变化异常明显,无论是 IBM 还是早期的微软都是谈开源色变、谈自由软件色变,但到雅虎后,能够显著地感受到彻底拥抱开源的文化,因为他们在提供互联网服务,而有些公司是直接通过开源软件盈利的,大家都知道,开源不等于免费,这些公司会从软硬件底层、应用层到云服务向他们的客户提供一整套解决方案而盈利。”

在这之中,小米是中间力量(即无开源商业模式的组织),当然,“大部分都是中间力量,这其中还包括了诸多高校及科研机构。”

2.开源改变了小米什么?

而这拥抱开源的理念也支撑着小米技术体系实现了从零到一,最早在 2012 年崔宝秋加入小米时所思考的,就是在有限人力的情况下,如何站在开源巨人肩膀上快速推出一些云存储计算和大数据处理能力。“我一来小米做了很多工作,打通数据孤岛,制定开源战略,拥抱开源。小米当时服务器人非常少,我们不可能重新写很多东西,不可能从零开始,我们一定要站在巨人的肩膀上,比如说选用 Hadoop,这是闭着眼睛就可以选择的,不用犹豫。”崔宝秋讲道。

这个成果是显著的:

  • 2012 年 7 月,统一 Hadoop 集群,打通数据孤岛;

  • 2012 年 10 月,选型 HBase,组建团队;

  • 2013 年 6 月,开源 Minos 自动化监控部署系统;

  • 2013 年 12 月,推出第一个 HBase Committer;

  • 2014 年 3 月,推出第二个 HBase Committer;

  • 2014 年 4 月,开源时间戳服务器 Chronos 及实现 HBase 跨行/跨表的事务处理的 Themis;

  • 2014 年 8 月,正式成立小米开源委员会;

  • 2014 年 9 月,开始参与 Cloudera Kudu 的研发;

  • 2015 年 1 月,推出第三个 HBase Committer;

  • 2015 年 5 月,开源企业级、高可用、可扩展监控系统 Open-Falcon;

  • 2016 年 4 月,推出第一个 Kudu Committer;

  • 2017 年 1 月,开源分布式实时搜索平台 Linden;

  • 2017 年 10 月,开源分布式 KV 存储系统 Pegasus;

  • 2018 年 6 月,开源移动端深度学习框架 MACE;

  • ……

当然,这只是小米开源的一部分,在回顾这些小米开源大事记之时,崔宝秋还讲起了一则关于为何要自研并开源 Open-Falcon 的初衷:“小米最初由于没有监控系统导致服务器宕机或掉线都无法实时获取,因为这样的痛点而开始了自研监控系统(并且,将其开源)。”

到今天,“无论是 C、B、A(云计算、大数据、人工智能),开源都在小米扮演了极其重要的角色。如果说五六年前,在小米不是每个核心主管都认可的话,那么在今天的 AI 时代,越来越多的人都在讲开源。”

3.开源应该怎么做?

而经过这几年的开源之路,小米在开源上也趟过了许多坑总结出了一套打法,这一点从小米的开源战略中便可窥一二。比如对于“不用则已,要用则精”,崔宝秋表示,“中国很多公司都犯过一个很大的错误,就是没有用精,其实归根结底是在于对开源软件的不信任,不信任的原因是只拿来用,没有深度掌握,在没有碰到真正困难时一切都好,一旦上线、集群大小不够,一扩容就出问题了。”再比如选型开源软件时,崔宝秋谈到项目周期长与迭代周期快的冲突。“对于一个公司来讲,有些决策是必须高层来做的,长期规划,厚积薄发。选择一个重要的、大型的自由软件、开源软件必须要有决心。”

同时,崔宝秋还总结出了在开源与技术之间我们常碰到的问题并给出了相应的解决方案:

  • 如何平衡在开源和业务上的投入?

如崔宝秋所言,在开源上大量的投入,在一个大公司是很难被认可的,如何平衡开源和业务上的投入,由此,他将其总结为三点:

1. 业务第一,开源第二:公司发展不能本末倒置,业务永远是第一位的;

2. 业务驱动:在开源上的投入一定要围绕公司的业务需求;

3. 保障开源上的投入,有机会学习。

  • 如何积极有效地回报开源社区?

崔宝秋提醒道:“这是我们中国工程师需要注意到的一点,第一,要积极交流参与讨论,不要自嗨,要多到社区、论坛参与回答别人的问题,以及提出合理的问题;其次,要能够清晰地描述想法、表达算法,当英语口语不行时,通过写作可以更好地表达清楚;第三,当你被挑战、被质疑的时候要坚持自己正确的观点,比如我们做了很多 HBase 的优化,刚开始社区不认可但最终在我们的证明下相信并接受了我们的代码;最后,要为自己提交的代码负责,不要打一枪换个地方,遇到社区一些对自己的代码的建议和问题,能不能做好客服,及时回答并改进。”

  • “千万不要掉入与社区版本渐行渐远的坑中”

“与社区版本渐行渐远,只有死路一条,即使强大如 Google、Facebook,与开源社区相比都是渺小的存在。只有开放共享、与社区共成长才能长期享受开源红利,而封闭开发,即使短期受益,但最终仍会被社区抛弃。”

  • “我们不仅要站在巨人的肩膀上,还要努力为巨人指方向”

崔宝秋表示,“孤军奋战是很难对社区、开源软件产生任何影响力的,小米极力地推出 Committer,除了要精通掌握之外,还有一个很重要的原因就是要拿到一定的话语权,用另一句话来讲,就是不仅要站在巨人的肩膀上,还要努力为巨人指方向。”

什么叫“为巨人指方向”?崔宝秋说道:“开源是一个巨人,每一个开源项目都是一个巨人,谁拥有这个开源项目?没有人!真正健康的开源项目是社区来决定和推进的。国内许多公司犯的一个错误就是自己玩得很 High,但是没有贡献,与社区的融合很差。”

4.AI 时代如何拥抱开源?

今天当我们迎来 AI 时代时,又当如何拥抱开源?从疑惑于 AI 时代开源软件会不会无法满足需求之时,我们已经看到了 AI 巨头们在开源领域遍地开花,比如 Google 的 TensorFlow、百度的 PaddlePaddle、微软的 CNTK,以及小米的 MACE 等都是很好的例子。

对此,崔宝秋在表示 AI 时代更离不开开源软件的同时还做出了一个呼吁,那就是从代码开源、深度学习框架的开源,到数据的开源。“大数据在人工智能中扮演了重要的角色,包括知识图谱、数据服务、训练模型等。目前,如 Google、微软等巨头也都一直在推动知识图谱的开放,诸如 Freebase、Microsoft Concept Graph 等均可以免费获取,到今年 10 月,全球已有 1200 多个知识图谱开放出来,但其中中文图谱非常少,小米当前在开放的知识图谱方面已经做了一些工作,比如与 OpenKG 及其他高校组织发起 OpenBase 项目,进行知识的抽取编辑、挖掘融合以及更新、众包。我们希望能够打造出一个强大的中文知识图谱,造福中国、造福全人类。”

同时,当前国内许多项目都是公司主导的,这也就导致代码是开源的,但项目却比较封闭,“在 AI 时代,如果所有的开源项目变得非常封闭,将不利于整个开源社区及开源软件的成长,我们需要做到更加开放的开源。以 MACE 为例,我们希望能够将上中下游全部打通,目前 MACE 底层支持很多硬件芯片,从高通、MTK 到澎湃,未来我们也希望更多的芯片厂商加入。在算法、平台、应用层面希望所有同行都能够来参与,包括友商。”

“这就是在 AI 时代我们想要呼吁的一点 —— 更加开放的开源。”在演讲的最后,崔宝秋如是总结道。

“征稿啦”

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。

开源改变了小米什么?相关推荐

  1. 开源改变世界概括_为什么任何开源社区都很难改变

    开源改变世界概括 关于Apache基金会如何一直在ApacheCon Budapest上以某种方式做事的简短演讲,由Rich Bowen撰写. 如您所知,Apache Software Foundat ...

  2. 崔宝秋国际开源经验在小米开花 | 开源英雄

    [编者按]崔宝秋的开源人生,来源于内心的真正热爱,和一路的升级打怪.从少时与计算机结缘到成为自由软件信徒,从IBM.雅虎.LinkedIn 到小米这一路走来,从一个开源的追随者成长为开源的推动者,小米 ...

  3. 开源改变世界,改变你和我

    目录 开源改变你和我 敲开开源世界的大门 适合的就是最好的 我为开源做贡献 开源改变你和我 大家好,讲到开源可能大家最容易想到的就是开源软件了,到今天为止,开源软件已经有二十岁了.如今已经没有人可以忽 ...

  4. 小米9开源linux内核,小米开源 Redmi Note 8 Pro 和 Note 9 Pro 系列的内核源码

    小米开源了基于 Android Q 的 Redmi Note 8 Pro(代号 begonia) 以及 Redmi Note 9 Pro/Note 9 Pro Max(代号 curtana) 的内核源 ...

  5. mysql开源中间件_Gaea – 小米开源的MySQL数据库中间件

    Gaea简介 Gaea是小米商城/系统组研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单.社区.活动等多个业务.Gaea支持分库分表.sql路由.读写分离等基本特 ...

  6. 缝衣间走出来的创始人,他的开源软件公司被 340 亿美元收购了

    [CSDN编者按]10 月 28 日,IBM 对外宣布以 340 亿美元的价格收购开源软件和技术主要分销商红帽(Red Hat)--这一交易不仅刷新了科技圈的收购记录,还引发了开源界的热议狂潮.但是可 ...

  7. 小米集团副总裁崔宝秋:开源是人类技术进步的最佳平台和模式

    随着生物识别种类的不断增加,以语音为基础的身份验证方式似乎比其他方式更容易让人接受,因为语音识别具有非接触.非侵入性和易于使用的特点,所以语音识别特别受大众消费者的喜欢. 2022年7月21日,由中国 ...

  8. 小米:开源不仅要站在巨人的肩膀上,还要为巨人指方向

    今天上午,第一届小米开源技术峰会在北京举行,会上,小米人工智能与云平台副总裁崔宝秋致开场词,并发表了<小米开源之路>的演讲. 崔宝秋强调小米一直在推动开源,也是开源的倡导者.他告诉我们雷军 ...

  9. 小米将开源进行到底!

    小米集团技术委员会主席崔宝秋 作者 | 胡巍巍 出品 | CSDN(ID:CSDNnews 近日,<财富>世界500强发布,9岁的小米公司赫然在列,全球最年轻的世界500强诞生! 而13位 ...

最新文章

  1. Kubernetes——基于容器技术的分布式架构领先方案,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩...
  2. 微信小程序之生成二维码
  3. DOM 4.1 规范成为候选推荐标准陷困境,只因巨头齐反对
  4. nginx中配置react-router参数跳转
  5. Fragment结合nineold包实现滑动tab页
  6. 在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字
  7. 怎么查看电脑内存和配置_电脑内存不足处理方法,电脑卡死处理方法。
  8. twitter.common.concurrent deadline and defer
  9. 判断RDD有多少个分区
  10. AOP Aspect Oriented Programming
  11. Liunx 环境 docker-安装redis11
  12. leetcode探索动态规划(二)
  13. c语言常用数学函数6,C语言入门(6)——C语言常用数学函数
  14. wordpress 关于裁剪图片错误问题
  15. SQLServer数据库基础教程
  16. 高质量C编程00-汇总
  17. Windows的CRT中的setlocale()
  18. Kubernetes Events介绍(中)
  19. FinTech中国量化金融行业白皮书(2019)
  20. 免费简单的为域名申请SSL证书

热门文章

  1. 设置gradle远程仓库_有幸得到Alibaba内部Gradle实战笔记,趁双节来狂补
  2. leetcode python3 简单题205. Isomorphic Strings
  3. leetcode题库1277-- 统计全为 1 的正方形子矩阵
  4. QObject::connect: Cannot queue arguments of type xxx的解决方案
  5. JAVA8的双重循环怎么优化_Java8处理List的双层循环问题
  6. Windows 11 即将发布,微软“强推” Edge 浏览器?
  7. 到底是微信窃取隐私,还是输入法光明正大收集用户信息?
  8. 疾速激爽,电竞玩家的心仪之选:AMD 锐龙 5000 系列登场!
  9. 阿里 AI 研究成果入选国际顶会 ICML 2020,AI 推理速度提升 3 倍
  10. 和付费网盘说再见,自己起个网盘不香吗?| Java 开源项目