AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

小米的开源参与之道 by 冯宏华

发布者 product
发布于 1449536809705  浏览 5778 关键词 开源, 存储 
分享到

第1页

小米的开源参与之道


冯宏华

 



云平台存储组



www.mi.com





第2页

www.mi.com





第3页

www.mi.com





第4页

大纲


l
 小米的开源现状
 l
 小米对开源的态度 l
 小米的开源参与方式 l
 一点思考

www.mi.com





第5页

小米的开源软件使用列表


Linux MySQL Redis PHP Nginx Resin Rabbit-MQ

 

 Discuss Storm MemCache Supervisord Tomcat Java

 

 Lucene Tornado MongoDB Jetty Spring Thrift Python













www.mi.com





第6页

开源软件在小米的服务领域


u 所有业务部门:硬件,MIUI,电商,电视,路由器,云平台,智 能家居,互娱…

 

 u 几乎所有业务:云服务(Mi Cloud),小米推送,主体市场,小米账 号,应用市场,消息系统,阅读,支付,米聊,米币,浏览器,黄 页,广告,搜索…





www.mi.com





第7页

小米的开源软件贡献列表




HBase 

 Spark 





HDFS Impala



Zookeeper YARN MapReduce SenseiDB

 Hive Kudu Storm Kafka Scribe Thrift









www.mi.com





第8页

小米的开源重要贡献数字


ü HBase : 提交了347个patch,被社区接受了195个

 

 ü Hadoop : 提交了85个patch,被社区接受了42个

 

 ü Spark : 提交了63个patch,被社区接受了58个

 

 u 3个HBase Committer,2个SenseiDB Committer







www.mi.com





第9页

小米的开源现状小结


u 与公司业务成长息息相关,相辅相成

 u 开源社区贡献:



Ø 2012年下半年开始发力

 Ø 渐入正轨,初见成效,大有可为



www.mi.com





第10页

大纲


l
 小米的开源现状 l
 小米对开源的态度 l
 小米的开源参与方式 l
 一点思考

www.mi.com





第11页

取自社区,回馈社区


u 对社区已有较成熟实现的系统,不另起炉灶,不重造轮子

 u 对基于社区版本开发的新功能新改进,饮水思源,及时回馈





www.mi.com





第12页

积极参与,保持同步


u 对社区重要改进的讨论/实现积极参与,多发声,增强影响力

 u 线上/线下保持与社区重要参与者的联络与沟通





www.mi.com





第13页

业务第一,开源次之


u 业务的需求优先级高于开源社区(即使不能merge进社区导致 合并版本时很辛苦)



u 不以提交/被接受的patch数目为目标(不助⻓长“墙内开花墙外 香”)



u 不凭空想象和开发“可能会有用”的新功能





www.mi.com





第14页

保证质量,诚信负责


u 不把自己未在实际业务验证或不满足实际业务需求的产品/ 改进放出去

 u 对所有开源的产品/改进提供详尽描述(对不足不隐瞒不回避)

 u 对开源出去的产品/改进的问题/反馈第一时间响应





www.mi.com





第15页

大纲


l
 小米的开源现状 l
 小米对开源的态度 l
 小米的开源参与方式 l
 一点思考

www.mi.com





第16页

“先斩后奏”(先做后说)


u 很多业务提出的新需求,不能期望社区有人帮你做,也不能 承担先和社区讨论清楚的时间成本



u 做好并在实际业务场景得到验证后的patch提交时更有说服 力(场景/背景/测试/效果…)





www.mi.com





第17页

认理不认人,并保持礼貌


u 社区参与者来自世界各地五湖四海,文化/习惯迥异,但在代 码面前人人平等,这是一个基准



u 要能忍受你认为是“愚蠢”的声音,就事论事,保持克制和礼 貌(社区就是一个人群,和现实中的人群一样有无奈有妥协)





www.mi.com





第18页

投桃报李,互帮互助


u 有些功能/代码可能当前业务用不到,被人请求时仍然要尽力 提供帮助:review代码、问题分析等

 u 自己提的patch,没有人回应时,可以直接给对这块代码熟悉 的committer发信请求review





www.mi.com





第19页

保持中立,谋定后动


u 对任何针对设计/实现上的“争吵”,不存私心,不站队

 u 对任何分歧或讨论,先想清楚再发声,尽量周全/清晰





www.mi.com





第20页

保持耐心,贵在坚持


u 重大的patch几乎都是需要⻓长时间反复的讨论、review和修改

 u 对正确的事情要有耐心和坚持(即使刚开始不被理解和尊重)





www.mi.com





第21页

大纲


l
 小米的开源现状 l
 小米对开源的态度 l
 小米的开源参与方式 l
 一点思考

www.mi.com





第22页

“溯洄从之,道阻且⻓长”


u 开源软件开发速度(甚至质量)常常不能令人满意



Ø 开发者不是一个真正的“团队”(同一段时间内有着同一目 标的一群人)

 Ø 极难做到所有人在“同一⻚页”(same page)

 Ø 常会走弯路(无论设计还是实现,甚至bug-fix)





www.mi.com





第23页

设计/概念的一致性问题(concept integrity)


u 开源软件相较闭源软件更难做到concept integrity

 Ø 人员、空间、时间等情况使此问题恶化

 Ø 超大型系统此问题导致“盲人摸象”情况严重





www.mi.com





第24页

千般不如意,但终归向好


u 开源不是最好的多人协作开发的模式,但从大时间尺度衡量 却足够好(good enough)



Ø 理论上所有的错误/不足终能(eventually)被纠正/改进(虽慢 但总是朝好的方向前进)

 Ø “凡走过必留痕迹”(即使失败的项目,其有价值的地方/代 码仍可被借鉴和参考)





www.mi.com





第25页

Q & A  www.mi.com





支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。