AKF WorkShop

若干关键字

可伸缩性、泳道、云计算、可伸缩性原则、观念、流程、组织

只有技术是不够的

正确人在正确的组织
正确的流程
正确的架构

应用

X Axis – Horizontal Duplication(水平复制,可以理解成LBS,解决单台问题)
Y Axis – Split by Function or Service(功能或服务切分,解决多台分组问题)
Z Axis – Lookup Split(按用户、SKU等切分,对分组后的细分?)

application scale cube

数据

X Axis – Read/Write Separation(读写分离)
Y Axis – Split by Service Data(按服务切分数据,分数据库)
Z Axis – Split by Similar Data(相同数据的切分,数据本身做表切分)

database scale cube

泳道

基于部署的物理隔离

swin lanes

Mindset

创建敏捷的团队
工具化/服务化
扩展性不是目标,是一个过程
ScalingUp 到ScalingOut
从设计的时候就考虑监控

Types of Conflict
图没怎么看懂,但能明白冲突的来源。拥有泳道的架构就要拥有泳道的组织结构
Types of Conflict

问题解决

支持敏捷
我们的最高优先级是尽快并持续的满足客户要求,提交有价值的软件。
业务人员和开发人员必须每天工作在一起。
最佳的架构、需求和设计产生于自组织的团队。
一个团队拥有完整的服务,而不是依赖他人
减少情感冲突,应该是减少跨团队沟通

没想到图拍的这么悲感,有些臃肿。上面整理的一些PPT内容,其实我也不知道如何回答里面的内容,但始终认为自己的问题还是需要自己解决。我们今天或未来的系统需要专家们的指引,但路怎么走还是需要自己把握。对于一些很明确的原则,是一直倾向于团队独立解决的。只有开花结果变种子,再能从种子到开花结果的良性循环,系统才能够发展,团队才能够发展。各种隔离的做法即所谓的泳道是个不错的提法,其实ShopService的服务已经是隔离的,给手机使用的服务是独立于网站而部署的,又先人一步。关于组织机构部分还是保持沉默,不在其位不妄语。AKF反馈的一份Review让我有所思有所获。
AKF WorkShop

仰观Java时代淘宝

2012年4月的淘宝相关数据:

  • 80多个CDN分布节点
  • 最大的Hadoop分布式集群,每日新增50TB数据,有40PB海量数据
  • 淘宝网光棍节当天网络的流量最高达800Gbps

TB经历了一个主动和被动的技术变革的过程,不管我们是否需要认可“变化”。

典型的个人网站

DP网的发展史走过时曾相似的道路

三个开发工程师(虚竹、三丰、多隆)、一个UED(二当家)、三个运营(小宝、阿珂、破天)、一个经理(财神)、还有就是马云和他的秘书

淘宝的第一份代码 PHPAuction 2000美金(含源代码)

 

淘宝最早的结构

欣赏外观


最高每日31万PV,2003从5月到年底成交额4000万

淘宝第一个版本的系统里面已经包含了商品发布、管理、搜索、商品详情、出价购买、评价投诉、我的淘宝这些功能(现在主流程中也是这些模块。在2003年10月增加了一个功能节点:“安全交易”,这个是支付宝的雏形)

服务器由最初的一台变成了三台,一台负责发送email、一台负责运行数据库、一台负责运行webApp,采购了NetApp服务器放置iSearch

Oracle/支付宝/旺旺

mysql->Oracle
PHP的Oracle的链接池问题,多隆寻找到开源方案

NAS的NFS(Network File System)协议传输的延迟很严重,SAN低端存储,性能一下子提升了10几倍
好的架构是进化来的,不是设计来的

2003年10月,淘宝网上面上线了一个功能,叫做“安全交易”
好的功能也是进化来的,不是设计来的

2004年3月开始 阿里旺旺上线,解决了用户讨价还价的需求,是从阿里借调过来的产物,可见马云在资源的使用上有独到之处。

Java时代:脱胎换骨

2004年底 迁移到JAVA的架构图

其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的是压到了数据和存储上。上面一篇也说到,MySQL撑不住了之后换Oracle,Oracle的存储一开始在本机上,后来在NAS上,NAS撑不住了用EMC的SAN存储,再然后Oracle的RAC撑不住了,数据的存储方面就不得不考虑使用小型机了。在2004年的夏天,DBA七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着小型机回来的时候,我们像欢迎领袖一样的欢迎他们,因为那个是我们最值钱的设备了,价格表上的数字吓死人。小型机买回来之后我们争相合影,然后Oracle就跑在了小型机上,存储方面从EMC低端cx存储到Sun oem hds高端存储,再到EMC dmx高端存储,一级一级的往上跳。

行癫在淘宝的第一个架构上的作品就来解决了这个问题,他写了一个数据库路由的框架DBRoute

在05年的时候,把商品详情放在数据库的另外一张表里面,再往后这个大字段被从数据库里面请了出来,这也让数据库再一次感激涕零。

TFS

淘宝网整体流量中,图片的访问流量要占到90%以上。且这些图片平均大小为17.45KB,小于8K的图片占整体图片数量61%,占整体系统容量的11%。

2007年之前的图片存储架构如下图:

TFS的架构,类似google的GFS