《淘宝技术这十年》

《淘宝技术这十年》


第一部分 淘宝技术发展1

引言:光棍节的狂欢

例:你发现快过年了,给女朋友买一件毛衣,你打开了www.taobao.com,这时你的浏览器首先查询DNS服务器,将域名转换为IP地址。不过在不同的地区或不同的网络下,转换的IP地址很可能不一样,这首先涉及到负载均衡的第一步。

PVpage view页面访问量)UVunique visitor用户访问)

浏览器在同一个域名下并发加载的资源数量是有限的,可以将这些资源分布在多个域名下,变相地绕过了浏览器这个限制。

CDNcontent delivery network内容分发网络)

例:假如一个卖家发布了几张宝贝图片,那如何保证各地CDN节点中都会同步到这几张图片呢?这就涉及内容分发与同步技术,为了快速存取这些文件,淘宝开发了分布式文件系统TFS来处理这些问题。


个人网站

200347日,马云在杭州成立了一个神秘的组织。2003510日上线。LAMPLinux+Apache+Mysql+PHP)架构,这是从美国人那里买的一个PHPAuction的网站。后来又请sun公司的人重构成了Java版本。


第二部分 淘宝技术发展2

Java时代

除了搜索引擎、分库分表,一定还有招数可以用,这就是缓存和CDN

1.0PHP系统运行了将近一年的时间(20035-20041月),服务器由一台发展到多台,后来数据库撑不住了,将Mysql换成了Oracle,引入了搜索引擎(20041-20045月,叫1.1版本);然后不到半年时间又把开发语言换成了Java20042-20053月,叫2.0版本),数据库服务逐步采用了IOE;随着数据量和访问量的增长,我们进行了数据分库、加入缓存、使用CDN200410-20071月,叫2.1版本)。

TFSTair


第三部分 淘宝技术发展3

分布式时代

中间件

对应超市收银的例子:集群(不同收银员)、分工(收银、打扫卫生)、负载均衡(排差不多长的队)、根据QoS分配资源(部分员工在晚上上班)

到此为止,应用服务切分了(TMIM)、核心服务切分了(TCIC)、基础服务切分了(UICForest)、数据存储切分了(DBTFSTair)、通过高性能服务框架(HFS)、分布式数据层(TDDL)、消息中间件(Notify)和Session框架支持了这些切分。一个美好的时代到来了,高度稳定、可扩展、低成本、快速迭代、产品化管理,淘宝3.0系统走上了历史的舞台。在这个分布式系统的支持下,更多的业务迅速开发出来了,因为任何一个业务都基于淘宝的商品、交易、会员、评价等基础体系,而这些基础体系就像“云”一样存在,现在可以随处调用。

开放平台:做一个支持二次开发的工作平台,半开放式地满足各种卖家的长尾管理需求。到2010年年底,平台开放淘宝服务300多个,每天8亿多次调用。到2012年,平台开放服务900多个,每天调用25亿次。


第四部分 我在淘宝这八年

2004-2012

淘宝系统一直处于变化之中,但大的版本变迁大概有两次,一次是把最初那个LAMP架构的系统迁移到Java平台上,一次是把集中的Java系统拆分成多层的分布式系统。

普通工程师跟着业务跑,来啥需求做啥事;文艺工程师专注于自己的领域,研究得非常精深;2B工程师跳来跳去,啥都干,啥都浅尝辄止;还有一种工程师叫牛B工程师,啥都能干,啥都精通;


第五部分 P列传

正明:这几年工作的整体规划思路就是为淘宝网打造一个高性能、高可扩展、高可用、低成本的基础平台,基本上是在这四个维度上不断深入优化。

小马:有三家公司对我们影响很大。

第一家是Yahoo(雅虎),“前端”岗位的定义就起源于雅虎。最早提出前端的概念、框架和规范。我们最早使用的JS框架YUI就是雅虎创造的。

第二家是Google,是因为AJAX实际上是被Google变成一个商业上很成功的应用,它的GmailDocs等产品采用了大量的AJAX技术。

第三家就是Facebook,是把体验和技术结合得最完美的公司。

有个“一万个小时理论”,我觉得很正确,说的就是一个人必须经历不断地练习,不断地遇到问题才能成长起来。当然,做的时候要不断总结,写博客是一个很好的途径。




你可能感兴趣的:(综合)