张 永 一个梦想自由的程序员

——————————————— 让科技和智能使人更便捷 ———————————————
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

转帖 阿里技术升级过程

Posted on 2019-08-21 13:54  hylas  阅读(132)  评论(0编辑  收藏  举报

https://blog.csdn.net/java_faep/article/details/82430215


  • 马总在2003年4月7日秘密叫来阿里巴巴的十位员工,来到杭州一个隐秘的毛坯房,要求他们在一个月左右的时间内做出一个 C2C 网站。结果当然还是直接买的快,一个基于 LAMP 架构的网站,原名是PHPAuction,老美开发的一个拍卖网站。当然必须要做修改才能用。
  • 2003年底,淘宝注册用户23万,PV 31万/day,半年成交额3371万。
  • 很显然 MySQL 无法撑得起如此大的访问量,数据库瓶颈出现了。幸好阿里的 DBA 队伍足够强大,他们使用 Oracle 替代了 MySQL。Oracle 那时就已经有了强大的并发性访问设计——连接池,从连接池取连接的耗费比单独建立连接少很多。但是 PHP 当时并没有官方提供支持语言连接池特性,于是多隆前辈用Google(不会是Baidu)搜到了一个开源的 SQL Relay,于是数据库软件方面的瓶颈暂时解决了。
  • 随之而来的是面临硬件性能瓶颈,阿里买了 EMC 的 SAN 存储设备,加上 Oracle 高性能 RAC,硬件容量也暂时没问题了。
  • 因为 SQL Relay 的问题实在过于严重,2004年于是淘宝终于做出了跨时代的决策——使用Java重写网站。
  • 淘宝请了 Sun 的高级工程师来帮忙做 Java 架构。那么他们是如何做到修改编程语言而不改变网站使用呢——模块化替换,今天写好了 A 模块,另开一个新域名,将连接指向该模块,同时别的模块不变,等到全部模块完成的时候,原域名放弃。Sun 公司坚持使用 EJB 作为控制层,加上使用 iBatis 作为持久层,一个可扩展且高效的 Java EE 应用诞生了。
  • 送走 Sun 的大牛们之后,阿里的数据存储又遇到了瓶颈,于是忍痛买了一台 IBM 小型机,也就有了IOE(IBM + Oracle + EMC)这样的传说。
  • 2004年底,淘宝注册用户400万,PV 4000万/day,全网成交额10个亿。
  • 2005年 Spring 诞生了,早闻 Spring 框架在 Web 应用不可或缺,而在淘宝网,Spring 也达到了 Rod Johnson 设计它的目的——替代 EJB。
  • 2005年底,淘宝注册用户1390万,PV 8931万/day,商品数目1663万个。
  • 考虑到未来的发展,这样的设施架构只是勉强可以应付现在的要求。于是,CDN 技术派上用场了,一开始使用商用的 ChinaCache,后来使用章文嵩博士搭建低耗能 CDN 网络,淘宝网的性能越来越好了。
  • 2006年底,淘宝注册用户3000万,PV 15000万/day,商品数目5000万,全网成交额169亿元。
  • 淘宝在2007年之前,使用 NetApp 的商用存储系统,但是仍然不够应付迅速增长的趋势。同年 Google 公布了 GFS 的设计思想,参照它的思想,淘宝也开发了自己的文件系统——TFS 每个用户在 TFS 上拥有1GB的图片存储空间,这些都得益于 TFS 集群的文件存储系统以及大量的图片服务器。淘宝使用实时生成缩率图,全局负载均衡以及一级和二级缓存来保证图片的访问优化与高效访问。
  • 淘宝的服务器软件使用 Tengine,一个被优化过的 nginx 模块。
  • 淘宝分离出了 UIC(User Information Center),供所有模块调用。多隆前辈再次为其编写出了 TDBM,完全是基于内存的数据缓存(参考了memcached)。再然后,淘宝将 TBstore 和 TDBM 合并,写出了 Tair,一个基于 Key-Value 的分布式缓存数据系统。然后升级了自己的 iSearch 系统。
  • 2007年底,淘宝注册用户5000万,PV 25000万/day,商品数目1个亿,全网成交额433亿元。
  • ......
  • Dubbo 是阿里巴巴内部的 SOA 服务化治理方案的核心框架,每天为2000+ 个服务提供3000000000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo 自2011年开源后,已被许多非阿里系公司使用。