从步履蹒跚到举重若轻,阿里基础架构如何扛住全球最猛的流量洪峰?
    2018-11-07    叔同

第十个双11即将来临之际,阿里技术推出《十年牧码记》系列,邀请参与历年双11备战的核心技术大牛,一起回顾阿里技术的变迁。

 

今天,系统软件事业部资深技术专家叔同,为我们讲述基础架构这十年的演进历程:从技术追赶期,技术成熟期,再到爆发期,我们不仅支撑了双11年年攀升的峰值,更将万笔交易新增成本下降为原来的1/4。这一切离不开集团容器化、统一调度、混合云弹性架构、混合部署、存储计算分离等技术。

 

资深技术专家叔同

资深技术专家叔同

 

2018年是双11的第十个年头,回过头来看在基础技术领域的发展可以分为三个阶段:

 

1、2012年及以前属于技术追赶期,主要是遇到问题解决问题,最大的挑战是稳定性;

 

2、2013年到2014年属于技术成熟期,沉淀和创造了大量技术。包括全链路压测和异地多活,能够保住稳定性基本盘,实现跨地域水平扩展,IDC/网络/服务器从维护运营向自主研发演进。这一时期业界Docker和Kubernetes开始起步,阿里也同期开始了Pouch容器和Sigma集群管理前身的研发(AliDocker/Zeus);

 

3、2015年及以后属于技术爆发期,技术迭代速度加快,基础设施通过集约化和统一化进一步释放规模红利。包括基础设施的升级,大规模基地型数据中心落地,在线业务容器化的完成,从单一业务调度向统一调度全业务在离线混部演进,从集团自身到集成阿里云公共云搭建混合云弹性架构,存储计算分离等,统一调度云化架构开始发挥威力。通过基础技术的升级和统一,提高了全局资源复用能力,不但提升了技术端的效率,大幅降低成本,还提升了技术控制力,进一步增强稳定性,并且开始了智能化的尝试和演进。

 

其中有几个关键节点:

 

2013年全链路压测上线,使我们具备了业务链条全覆盖的压测验证手段,有能力在生产环境去保障系统稳定性的确定性。

 

2014年单元化异地多活应用于双11,使我们具备了远距离异地部署和异地扩展的能力。

 

这两种技术结合起来,使我们具备了使用弹性资源快速扩展,并能快速验证稳定性交付验收的能力,使得双11峰值高速增长快速扩展下的技术保障成为了可能。稳定性和可扩展的问题解决了,面对双11峰值,接下来最大的挑战就是成本。

 

2015年混合云弹性架构,自研基础设施;2016年容器化、统一调度;2017年混合部署、存储计算分离试水;2018年基地型数据中心、大规模混合部署、存储计算分离全面落地,初步实现datacenter as a computer。

 

全链路压测和异地多活讲的比较多了,今天重点介绍下容器化、统一调度、混合云弹性架构、混合部署、存储计算分离等技术,如何全面降低大促成本。

 

 

每年双11只有一天,如上图所示双11双12的峰值是日常峰值的几十倍、十几倍,为了准备双11当天峰值容量要采购大量资源,数倍于平时,大促过后资源利用率不高,通过搬迁、腾挪、拆借去满足集团各种各样的其他活动,资源整体弹性能力不足,会形成较长时间的低效运行期,成本浪费较大;运维体系差异大,资源调度不统一,各版块无法平滑复用,每个业务版块有不同的Buffer池子,在线率、分配率、利用率无法统一,机型需求也比较庞杂。

 

这种支撑模式难以为继,同时阿里云技术发展很快体量较大,具备很大的资源弹性能力,所以在2015年我们发起了云化架构项目,希望用电商Zeus调度打通阿里云平台的资源弹性能力,在云平台上快速搭建临时交易单元站点,构建混合云弹性架构,去支撑快速增长的交易峰值,降低大促成本,这里面有大量技术细节和创新,先不展开。

 

大促资源成本 = 资源持有时间 * 资源持有规模

 

通过统一调度云化架构优化,2016年双11万笔交易新增成本比2015年下降50%,2018年双11万笔交易新增成本比2016年又下降50%,可见资源持有时间从全年变为弹性持有优化效果最明显,也可以看到我们做的一键建站和压测轮次优化节省时间意义重大,省时间省人不光提升效率还能带来省成本的效果。整个3年时间通过基础技术优化,万笔交易新增成本下降为原来的1/4,这也是为什么我们能够支撑这么高速的交易峰值增长的原因之一。

 

 

为了看懂这张图,先了解几个公式:

 

交易日常容量 = 交易峰值容量 - 弹性容量合计  

弹性容量合计 = 混合云 + 混合部署 + 调度优化

我们的成本优化方向是:日常保持较小交易容量,大促时找到很多低成本弹性容量支撑临时峰值。

 

弹性容量合计做得越高,越趋近交易峰值容量,交易日常容量越低,资源长期持有成本越低;弹性容量合计中免费的资源越多,大促交易新增成本则越低;对于有成本的大促增量部分,如混合云弹性架构,降低成本,有两种方式:缩小持有规模或者缩短持有时间,近几年每年在一键建站上的效率优化都在50%以上,全链路压测轮次和周期也会影响混合云资源持有时间,这里也还有很大优化空间,所以效率和成本是可以产生直接关系的,当然云的售卖速度一直在上升,buffer未来足以支撑集团大促空缺需求;对于无成本的大促增量部分,加大持有规模,减少持有时间(尽量保证不影响共享资源的业务)。

 

为了增加免费大促资源,我们联合多个兄弟BU从16年开始储备预演,进行小规模验证,17年混合部署支撑大促4万笔交易,并在18年有3倍的规模提升;从17年开始储备Sigma弹性和分时复用技术,在18年会有8万笔大促容量的优化落地。基础技术的演进落地都需要较长的准备周期,要提前两到三年布局。为了统一调度必须要先统一运行时,我们从15年年中开始启动容器建设,年底完成和T4功能对齐,16年5月正式启动全网容器化,当年100%的双11交易流量都跑在了容器上。17年双11前,完成核心电商应用100%容器化,应用数量破万,容器规模达到百万级。18年开始了离线计算任务Pouch容器化的尝试。

 

 

所谓的统一调度云化架构到底是什么呢,可以参考上图。集团是一朵云,阿里云是一朵云,需要的时候可以打通构建混合云。集团的Sigma调度双11时会通过OpenAPI批量申请Houyi管理的ECS资源,通过VPC进行公共云网络隔离,在大规格ECS上进行运行时Pouch容器分配和托管,通过一键建站部署交易单元,用最简洁高效的形式上云;在集团内部,逐层重构升级,弹性复用资源,全局统一调度,使技术全面云化,得以把在线服务和计算任务混合部署,通过Sigma和Fuxi调度打通,日常时将离线计算任务引入在线集群,大促时将在线服务引入离线集群,大幅优化成本。

 

在混部实施中,技术挑战巨大,由于在线服务与计算任务对机型要求有较大的差别,通过存储计算分离技术(盘古存储),把资源分为计算节点和存储节点两大类,抹平了异构机型带来的差异性。在资源隔离技术方面,从服务器的内核层面,对 CPU、内存、IO、网络等多方面进行优先级的划分,做到对相关任务的毫秒级自适性调度或限制;通过运行干扰检测和资源画像调度优化,以保证高优先级的任务少受影响。混部调度和运维体系的打通、兼容和升级本身也花费了很大精力。

 

统一调度把多个数据中心像一台计算机一样来管理,可以跨多个不同的平台来调度业务发展所需的资源,构建混合集群以极低成本拿到服务器,先解决有没有的问题,通过弹性分时复用和混部大幅提升资源利用率,解决用得好不好的问题;真正实现弹性资源平滑复用、任务灵活混合部署,用最少服务器、最短时间、最优效率完成容量目标,做到datacenter as a computer。混合部署不但支撑了大促,还可以通过任务调度使得日常在线服务器CPU利用率超过45%,使得日常IT成本下降30%的优化,带来统一调度和云化架构领域的技术价值爆发。

 

这也说明容器、编排调度、集群管理等云原生技术最近几年的流行是行业发展的必然趋势,是云计算时代一股不可忽视的力量,运维层这一部分的行业价值还远远没有被释放,未来阿里集团储备的这些有竞争力的技术都可以在云上赋能行业客户,并推动行业技术标准化的发展。

 

从2015年到2018年,双11新增万笔交易成本已经下降为原来的1/4,随着交易峰值的不断高速增长,统一调度这个技术方向与多个BU的通力合作,几年累计带来大促直接&间接成本节约效益巨大,释放了规模化效应下的技术红利。

 

随着阿里继续在统一调度云化架构混合部署等技术方向的深耕,未来大促新增资源成本有望做到零增加,值得挑战值得期待。