欢迎来到天天文库
浏览记录
ID:31929965
大小:975.14 KB
页数:35页
时间:2019-01-28
《阿里开源经验分享》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、阿里开源经验分享阿里云朱照远(叔度)2015-01-10自我介绍•真名朱照远,花名叔度(sudo)•2009年加入淘宝,现负责阿里云-核心系统-Web平台•技术方向为Web架构优化,CDN,云计算•开源爱好者,Tengine项目发起人•阿里巴巴开源委员会成员,见证了阿里巴巴开源过程个人开源的经验开源对于工程师的意义•东西做好了,回报自然会来•通过开源,可以得到很多开发人员和高手的帮助,不断提高自己的能力•通过开源,可以得到更多的用户•通过开源,可以让自己的代码有更长的生命周期•用户的用法,会超出工程师的想象如何参与别人开源项目•从小事做起,写文档做翻译都
2、是做贡献•遇到问题提bugreport,有能力就提patch•主动贡献,从小到大,逐步获得信任•不被接受也不要气馁自己做开源项目•需要很好的解决某一个问题•如Memcached和Redis各自诞生并流行的原因•项目要容易上手•Quickstart文档•简单的步骤可编译运行,减少外部依赖•代码、架构良好,容易扩展•文档齐全开源社区的运营•制定规则(社区的“宪法”)•如何提patch•codereview•打造金字塔型的社区•用户/开发者/核心•宣传•用户的口碑是最核心和最重要的传播手段•文章、会议介绍贵在坚持•开放了源代码只是开源的第一步•持续更新,包括修
3、正问题,增加功能等•保持较快的发布节奏(更新次数)案例:Tengine开源Tengine简介•阿里巴巴基于Nginx开发的开源Web服务器•针对大访问量网站的需求,添加了很多高级功能和特性•从2011年12月开始开源•据W3Techs统计,全球用户量排名第9,使用量0.2%Tengine的一些特性•动态模块加载(DSO)支持•支持SO_REUSEPORT选项,建连性能提升为官方Nginx的三倍•支持SPDYv3协议,自动检测同一端口的SPDY请求和HTTP请求•流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力•更加强大的负载均
4、衡能力,包括一致性hash模块、会话保持模块,主动健康检查•动态脚本语言Lua支持,增加灵活性•输入过滤器(inputbodyfilter)机制支持•支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样•组合多个CSS、JavaScript文件的访问请求变成一个请求•自动去除空白字符和注释从而减小页面的体积•监控系统的负载和资源占用从而对系统进行保护•更强大的防攻击(访问速度限制)模块Tengine的外部用户•InternetArchive•腾讯•土豆•京东•PPTV•国美•凤凰网•太平洋电脑网•开源中国•…Tengine社区•网站•ht
5、tp://tengine.taobao.org(中英文)•邮件列表•http://code.taobao.org/mailman/listinfo/tengine-cn•GitHub上开发•https://github.com/alibaba/tengine•star数目2364,fork数目719•社区通过pullrequest方式驱动,做代码reviewTengine的开发和发布•开源后发布21个版本•几乎每周都有代码提交•核心开发者8人•国内外代码贡献者共37人•中国、美国、荷兰、匈牙利、葡萄牙企业开源的经验开源前的思考•商业公司的目的是盈利•知道
6、什么不能开源,才能做好开源•不要暴露核心竞争力和核心机密•不伤害自己,却有利于他人,何乐而不为•做开源并不困难,任何公司都可以开源与否都要遵守规则•使用开源软件和修改开源软件都要遵守游戏规则•开源软件最基本的游戏规则就是版权和协议•宽松型:BSD/Apache/MIT•严格型:GPL(国内有不少公司没有遵守)开源对于企业很有好处•社会公益•技术影响力•工程师文化•吸引人才•提高开源出去的软件的质量开源是一种商业模式•小企业对抗大玩家的杠杆•通过开源免费做大用户基数•开源免费,增值收费•MySQL/Nginx•软件免费,服务收费•RedHat•组成生态•D
7、ocker/OpenStack如何内部弘扬开源文化•不要制止工程师的开源冲动,但可以制定流程规范•开源项目的成就感是对工程师的最大鼓励•内部的开源项目经验交流•对优秀的开源项目进行奖励我看中国开源的未来•开源大大减少了中国IT界同国外的技术差距•开源软件本身以及技术被直接使用•工程师通过对开源软件的学习可迅速提高自身水平•道路崎岖,但前景光明•人口红利•创新与技术爆炸•一定会涌现出很多优秀的开源企业和开源个人、项目•中国的开源影响力最终会非常大案例:阿里的开源情况阿里开源大体情况•共开源自主研发软件100余个•涵盖前端、后端、数据库、文件系统、内核、硬件
8、等多方面•对阿里使用的若干项目贡献了代码典型项目-开源软件增强•LinuxKer
此文档下载收益归作者所有