通过京东淘宝的技术发展和技术演进,探索未来的技术和体系结构
通过京东淘宝的技术发展和技术演进,探索未来的技术和体系结构
我们从京东和淘宝的技术架构演进。可以看出的电力供应商在发展过程中的唯一方式:Mysql->Oracle->分布式计算和分布式存储->?
??
未来
引用下《京东技术解密》书中的内容:
基于Hadoop,以Mapreduce作为计算引擎的的分布式数据仓库能够说是大数据处理的“标配”,2012年8月,由40台机器搭建的第一版集群上线。相较于Oracle小型机。性能明显提升,让我们第一次体会到分布式的威力。来自:http://download.csdn.net/detail/broadview2006/82069932012年12月,集群server数量添加到110台,但因为带宽限制。性能遇到瓶颈。于是在2013年3月升级万兆带宽,同一时候server数量添加到200台。3个月后的2013年6月。MySQL数据仓库完毕迁移。正式退出京东主数据仓库,集群server数量达到310台。
2013年11月,京东全业务线数据接入集群。可满足公司各体系业务。server数量达到440台。
2013年12月,老葛、彦明带领一众BI兄弟连续奋战三个月之后,最终完毕Oracle数据仓库迁移,相关任务全部下线。Oracle正式退出京东数据仓库。2014年3月,集群server数量达到800台,仓库模型全面升级到JDW2.0。调度平台功能逐渐完好,生产模式也由原来的单节点调度升级到分布式调度。
数据开发、元数据管理、数据质量监控、数据展现及统一权限管理产品全面推广应用。基础数据经过数据仓库加工后通过数据集市的方式面向公司各体系开放服务。同一时候,面向集市用户的产品运营与认证培训工作建立标准体系,至此。京东大数据平台逐步走向成熟。
引用下阿里云计算中的内容:
自2003年创立以来的,淘宝业务发展很迅速,差点儿是每年以100%的速度在成长。创立之初,为了高速上线,抢占市场。选择了当时流行的LAMP架构,用PHP作为站点开发语言, Linux作为操作系统。Apache作为Webserver,MySQL为数据库,用了三个月不到的时间淘宝就上线了。当时整个站点应用server大概10台左右。MySQL数据库採用了读写分离、一主两备的部署方式。来自:http://www.csdn.net/article/a/2014-12-09/158214742004年在淘宝业务发展的推动下。我们參考电信运营商、银行等的一些企业解决方式,将LAMP架构改造为Oracle+IBM小型机的数据库架构和EMC存储方式(图2)。尽管方案成本昂贵,但性能很好。同一时候,随着站点流量的添加,系统显得有些不堪重负。当时最操心的问题是站点流量假设持续添加,交易量持续添加,站点的系统架构怎么设计?怎样选择数据库?怎样选择缓存?怎样构建业务系统?……后来參考eBay的互联网设计架构。设计了一个Java的技术方案,并使用了许多的Java开源产品。比如。选择当时比較流行的JBoss,作为应用server;选择一个开源的IOC容器Spring,来管理业务类;封装了一个数据库訪问工具IBatis,作为数据库和Java类的Object-Reletionship映射工具。另外,对于商品搜索功能。採用自己开发的ISearch搜索引擎来代替在Oracle数据库中进行搜索,减少数据库server的压力。做法比較简单,每天晚上全量将Oracle小型机的数据dump出来,Build成ISearch的索引,当时商品量也不大,一台普通配置的server,基本上能够将全部的索引都放进去,没做切分,直接做了一个对等集群。
从2006年開始,淘宝为了改善用户体验,開始建立自己的CDN站点。因为淘宝的主要流量来源于各种商品图片、商品描写叙述等静态数据,自建CDN能够使这些资源离用户更近,提升用户訪问速度。改善用户浏览站点的体验。 2007年,淘宝全年的交易额超过400亿元。平均近1亿多一天,每天有100多万笔交易被创建。当时面对的几个主要问题是:一些系统的流量很大,如商品详情等,假设直接訪问数据库,会导致数据库压力很大;如用户信息,訪问一个页面,都须要查询买家信息、卖家信息、显示出买家的信用、卖家的服务星级等。此时,淘宝採用分布式缓存TDBM(Tair的前身)将这些热点静态数据缓存在内存中,提高訪问性能。
另外,将自己研发的分布式文件系统TFS部署在多台x86server上,代替商业的NAS存储设备来存储淘宝的各种文件信息,如商品图片、商品描写叙述信息、交易快照信息,来达到减少成本和提高总体系统的容量和性能的目的,同一时候能够实现更灵活的扩展性。第一期上线大概200台TFSserver。另外,将ISearch搜索引擎改为分布式架构。支持水平扩展,部署了48个节点。
图3展示了这一架构思路。 2008年初,为了解决Oracle数据库集中式架构的瓶颈问题(连接数限制、I/O性能),将系统进行了拆分。依照用户域、商品域、交易域、店铺域等业务领域进行拆分,建立了20多个业务中心,如商品中心、用户中心、交易中心等。全部实用户訪问需求的系统,必须使用业务中心提供的远程接口来訪问。不能够直接訪问底层的MySQL数据库。通过HSF这样的远程通信方式来调用业务中心的服务接口。业务系统之间则通过Notify消息中间件异步方式完毕调用。图4是淘宝的分布式架构图。 从2010年開始,淘宝网重点着眼于统一架构体系。从总体系统层面考虑开发效率、运维标准化、高性能、高可扩展性、高可用、低成本方面的要求。底层的基础架构统一採用了阿里云计算平台(图5),使用了SLB、ECS、RDS、OSS、ONS、CDN等阿里云计算服务。并通过阿里云服务提供的高可用特性,实现双机房容灾和异地机房单元化部署,为淘宝业务提供稳定、高效和易于维护的基础架构支撑。
针对公司发展的不同阶段,我们能够使用不同的技术和架构:
小公司初始阶段:Mysql
中小公司阶段:Oracle
大公司阶段:分布式计算和分布式存储
特大公司阶段:超大智可分布式计算和超级智能分布式存储
版权声明:本文博主原创文章,博客,未经同意不得转载。