淘宝开源之路

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

淘宝开源之路淘宝开源委员会朱照远(叔度)2012.07.191议程2一、淘宝网的简介二、淘宝软件基础设施三、淘宝开源成果一览四、淘宝开源策略五、小结淘宝网简介•淘宝网:网络购物•2011年网购交易额约7849亿元,淘宝网占8成;淘宝创造的直接就业机会是270.8万•网络流量排名(Alexa统计)–国际:13(12~18)–国内:3•现在每天7000万以上的UV;去年双12大促有1.2亿多的UV,CDN实际流量峰值为856Gbps•现在每天的25多亿的页面浏览•网站上有约800个应用3议程4一、淘宝网的简介二、淘宝软件基础设施三、淘宝开源成果一览四、淘宝开源策略五、小结淘宝系统框架示意图5软件基础设施的规划6主要所采用的软件•CDN:世界上流量最大的、面向图片的CDN系统–基于开源软件LVS+Haproxy+Squid+Bind上开发的CDN系统–现有103节点,双12支持了856Gbps实际流量;约5000台服务器–今年会建设到2400Gbps的承载能力•TFS:自主开发的分布式对象存储系统–可存储容量6.2P,实际使用4.06P;今年会建设到12P•TAIR:淘宝的分布式缓存和K/V存储–集成了开源的Redis和LevelDB存储引擎–提供跨机房容灾的解决方案•OceanBase:淘宝的分布式数据库系统–支持千亿条记录级别的数据库、支持事务7主要所采用的软件(2)•海量数据:采用开源的Hadoop平台–现在单一集群到2500台服务器的规模–系统可存储容量为47.02PB,已使用32.47PB,历史数据为压缩存储–每天新增原始数据量为50T左右,存储净增量约为36T–每天运行的作业数为10万以上,每日处理数据为2.5PB•核心数据库:采用开源的MySQL,加上高速的非易失存储,以及多层级的系统优化•服务器平台:Nginx部署200多个应用,约3000台机器;完成TMD等重要防攻击软件,Tengine项目开源8主要模块所采用的软件(3)•底层的支撑软件:–在OpenJDK基础上开发和维护TaobaoJVM–在RedHat基础上维护自己的Linux内核–在Sheepdog上实现了KVM的虚拟化弹性计算平台–在LVS基础上实现负载均衡解决方案–用开源软件实现了高流量的网络镜像项目•可以说淘宝网平台建立在开源软件和自主开发的基础上。9议程10一、淘宝网的简介二、淘宝软件基础设施三、淘宝开源成果一览四、淘宝开源策略五、小结大体情况•淘宝自开源以来,共开源自主开发软件40余个•涵盖前端、后端、数据库、文件系统、硬件等多方面•对淘宝使用的若干项目贡献了代码11TFS•TaobaoFileSystem••分布式文件系统–高可靠性–高可用性–为海量小文件特殊优化–大数据量高并发–低成本–线性扩容–支持自定义文件名12Tair•TaobaoPairs••K/V储存特点–分布式–自动容灾–支持持久化–支持多种存储引擎•Mdb•Redis•LevelDB•…13OceanBase•淘宝的分布式数据库系统••特点–支持千亿条记录级别的数据库–兼容MySQL协议,融合SQL与NOSQL技术–支持事务–支持线性扩展–在淘宝大数据量得到验证14KISSY•一个强大的JavaScript框架••特点–模块清晰–扩展方便–功能全面–组件丰富15Linux内核••Ext4文件系统核心开发团队之一•被Linux官方接受150+个patch•全球最活跃Linux开发团队排115名–自2006年起统计•开源虚拟化项目sheepdog–主要代码贡献者和维护者16Hadoop•HDFS,MapReduce,Hive,HBase等都维护自己的版本,同时兼容社区版本,支持Hadoop生态系统中Pig,Mahout等软件。•Hadoop官方中文文档翻译•Hive–为社区贡献patch超过20个,功能包括mutli-distinctaggregation,JDBC接口和认证体系等•HBase–改进HBase稳定性,缩短HBase的宕机恢复时间,让HBase的在线服务能力大大提高。–向社区提交47个patch,占总数的3%17MySQL•维护阿里MySQL分支••2010开始规模使用,替换商品、交易、用户等原基于IOE方案的核心数据库,目前已部署千台规模•和Oracle,Percona,Mariadb等上游厂商有良好合作,共向上游提交20多个patch18JVM•基于OpenJDKVM–性能提升–针对淘宝需求的定制化改进•2011年部署率14%,计划2012年三淘全面部署•向OracleJVM贡献16个通用性patch•向OracleJVM团队输出了人才:)19WebX•淘宝、阿里巴巴等都在用的Java框架••特点–基于JavaServletAPI–扩展性良好–在大流量网站上的稳定性得到了验证20Tengine•基于Nginx的Web服务器••特点–输入过滤器机制支持–组合多个CSS、JavaScript的访问请求变成一个请求–可以对后端的服务器进行主动健康检查–支持管道(pipe)和syslog形式的日志以及日志抽样–监控系统的负载和资源占用从而对系统进行保护–更强大的防攻击(访问速度限制)模块–很多运维和易用性增强21QLExpress•一个轻量级的脚本引擎,作为一个嵌入式规则引擎在业务系统中使用••特点:–支持标准的JAVA语法,–支持自定义操作符号、操作符号重载、函数定义、宏定义、数据延迟加载等–可以自定义语法。–类编译执行,执行效率比较高–目前在淘宝的很多系统,已经外部公司的系统使用22TBSchedule•TBSchedule的目的让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中,不同的线程组中并行执行。所有的任务能够被不重复,不遗漏的快速处理••特点–任务可以动态创建和停止,并分布在多个机器上执行–可以指定任务执行的时间周期–有统一集中的控制台,进行各种参数的动态调整–使用简单,只需要实现一个简单接口–目前在淘宝的很多系统,已经外部公司的系统使用23Tsar•轻量级服务器及应用信息监控和数据收集软件••特点–部署简单,稳定可靠,系统开销小–模块化设计,方便添加自定义的采集模块–支持实时终端显示和集中式数据库存储及查询–支持与Nagios联动,发送报警信息24TProfiler•可以在生产环境长期使用的Java性能分析工具••特点–同时支持剖析和采样两种方式–记录方法执行的时间和次数,生成方法热点、对象创建热点线程状态分析等数据–为查找系统性能瓶颈提供数据支持.25TimeTunnel•TimeTunnel(简称TT)是一个基于thrift通讯框架搭建的实时数据传输平台••特点:–具有高性能、实时性、顺序性、高可靠性、高可用性、可扩展性26TaoKeeper•ZooKeeper的监控与报名系统••特点–能够统计ZK集群连接数,Watcher数目,节点数等系列信息–能够通过设置一些阈值来达到监控报警的效果–能够按天按周进行ZK运行状况的报表展现–ZK实时运行状态的统计和机器存活性的检查功能27MetaQ•MetaQ是类似于kafka的Java消息中间件••主要特性:–高性能,单机2K消息,TPS在4.5W/S以上,网卡可跑满–支持顺序消息–支持服务端消息过滤–支持Consumer端事务消费消息–支持完全的分布式部署,Producer、Consumer、Server都可以分布–支持广播消费、集群消费两种消费方式28TDDL•TDDL(TaobaoDistributedDataLayer)是一套分布式数据访问引擎••核心的目标是为了解决以下三个问题:–数据访问路由。将针对数据的读写请求发送到最合适的地方–数据的多向非对称复制。一次写入,多点读取–数据存储的自由扩展。不再受限制于单台机器的容量瓶颈与速度瓶颈,平滑迁移29Automan•淘宝自动化测试组自主研发的一套界面自动化测试框架••特点–框架的核心是基于界面模型的设计,将“元素查找”和“控件操作”分开。–元素查找的方式定义在PageModel的Web服务器上,在脚本中只说明使用控件的名称和对该控件的操作方式–上手快、易维护30Toast••自动化测试任务调度平台。目标是在复杂环境下(多种业务逻辑,多种应用环境)的通用调度平台,主要提供任务的定时运行、手动运行以及基于持续集成等方式的触发执行;同时提供了测试机的简单监控和管理功能,支持多测试机并行执行任务以及任务的分阶段执行。31SQLAutoReview•Sqlautoreview是一个SQL自动化审核程序••主要有三方面的功能:–从SQLMap中解析出SQL–为每台SQL生成建index的脚本–将同一个表的建index的脚本进行自动聚合,减少索引变动32Diamond•Diamond是一个持久配置管理中心,提供稳定的配置访问••特点–简单•HTTP接口获得配置简单灵活–可靠•多级保护和容灾支持。在任何异常情况下不影响应用的启动•配置变更通知可靠,保证客户端能拿到最新数据33定制的低功耗服务器•每个热插拔模块2个nodes•每个NODES3块硬盘•支持24x2.5”SATA/SSD•选择2U8nodes的原因:–SuperServer:2U8nodes支持热插拔设计。–降低功耗(2U8nodes共享4个系统FAN)–成本更低(8nodes共享1个机箱,1u4nodes共享1个机箱)–2UTWIN机箱和所使用的主板是成熟产品•单服务器配置:–Intel®Atom™D525with2cores–Intel®ICH9RChipset–4GBmemoryDDR23800MHZSO-DIMMw/oECC–LAN:Intel82574L2*1GB–HDD:•1*SSD80G,•2*2.5”SATA500GB(背面)一个板卡集成两个服务器系统(正面,24个可插拔硬盘)低功耗服务器开源•开源网站议程36一、淘宝网的简介二、淘宝软件基础设施三、淘宝开源成果一览四、淘宝开源策略五、小结淘宝开源的目的•为什么淘宝要将成果分享给业界–回馈社会,我们用了很多开源软件,也为开源作一些贡献。来而不往非礼也。•跟业界一起进行技术创新,一起改善软件•建立淘宝的技术影响力,汇聚更多的人才,迎接更大的技术挑战37淘宝的开源历史•2009年,章文嵩博士加入淘宝,带来开源的种子–章文嵩博士是著名开源软件LVS的作者,开源经验丰富–开源的种子在淘宝开放的文化土壤上开始发芽和成长•2010年,淘蝌蚪平台建立•201

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功