swarm是什么牌子的手表,swarm是什么意思中文翻译

  

  阿里指南:经历9年双11,阿里巴巴交易额增长280倍,交易峰值增长800多倍,系统数量爆炸式增长。在支持双11的过程中,系统的复杂度和难度呈指数级增长。双11的本质是用有限的成本实现用户体验和集群吞吐量的最大化,用合理的成本解决峰值。面对增长如何发挥规模效应,持续降低单笔交易成本,提升峰值吞吐能力,为用户提供丝般顺滑的浏览和购物体验,这是极大的挑战。   

  

  今天我们邀请了阿里巴巴资深技术专家童叔,分享双11九年来云架构的演进与升级。   

  

     

  

  童()阿里巴巴资深技术专家,八次参与双11运营,是阿里高可用架构和双11稳定负责人,阿里容器、调度、集群管理、运维技术负责人。   

  

  大叔:大家好,我是童大叔,很高兴和大家分享阿里双11的技术发展。今天我们先来聚焦一个问题:双11推动了阿里科技的进步。它的挑战是什么?   

  

  1.互联网规模,每天有上亿人在阿里网站交易;   

  

  2.企业级的复杂性。每一笔交易都需要上百个系统的服务支持;   

  

  3.必须保证财务水平的稳定性和每笔交易的完整性和正确性;   

  

  4.双11有几十个业务高峰,要求系统绝对稳定。   

  

  随着分布式架构、异地多活动、限流降级、全链路电压测量等技术的突破,扩展性和稳定性问题得到了很好的解决。随着双11九年的发展,系统架构一代一代的向后演进,每年都有很大的提升。2008年,阿里巴巴开始从集中式架构向分布式可扩展架构转变,其中沉淀了大量的互联网中间件技术。2013年,阿里完整的营销单元通过异地多活动架构演进,部署到全国所有城市,实现了区域层面的拓展。这两种技术的叠加,解决了整个双11的可扩展性问题。   

  

  随着分布式架构的演进,系统稳定性问题凸显,系统复杂度急剧上升,出现了多个系统之间的协调。我们建立了限流降级系统、预案系统和在线管控系统。2013年,我们做了全链路电压测量,双11的备战核心武器。可以对整个系统的依赖关系中与双11相关的部分进行完整的用户级在线读写和压力测试,让系统提前经历几次“双11”,验证整个在线生产环境的处理能力,及时发现和修复问题。目前这些技术已经成为互联网行业的标配技术。   

  

  云化架构的演进   

  

  由于双11本身的峰值增长很快,当我们把系统的稳定性做好之后,发现硬件、时间、人力的成本都很高。成本挑战的出现,推动我们去解决IT成本的问题,也就是服务器资源的问题。我们先来看看云架构的演进背景。   

  

     

  

  上图是阿里业务六个月的峰值数据表。表中最大的两个峰值依次代表双11和双12的交易峰值,其他较小的峰值为日交易峰值,红线代表日备系统服务器资源的处理能力。   

  

  13年前,我们采购了大量的服务器资源来支撑双11的流量峰值。高峰期过后,长期低效运转导致资源极大浪费,这是一种非常粗放的预算和资源管理模式。阿里的各种业务形态产生了多种集群,而每个集群的运维体系差异较大,各个板块无法互通,资源整体弹性不足,导致双11无法借用这些资源。每个板块的资源池有不同的缓冲区,每个资源池的上线率、分配率、利用率无法统一。我们通过云架构提高整体技术效率和全球资源的灵活复用能力。比如一个不做双11的集群,把自己的资源贡献给双11的交易。因为云可以提供双11 ne的灵活性   

  

  我们先来梳理一下整个运维体系的现状。我们将集群分为三类:在线服务集群、计算任务集群和ECS集群。三个集群上的资源管理、基本操作和维护以及调度是独立的。他们有自己的调度能力,比如在线服务的适马调度、计算任务的伏羲调度、云开放APIECS的。它们在生产资源、资源供给和分配模式上也是不同的。线上服务使用容器,计算任务调度最终产生LXC的轻量级隔离打包容器,云生产使用ECS。他们在应用层的运维集群管理也不一样,顶层业务层的任务也不一样。在线服务器运行在线服务,如交易、搜索和广告,以及有状态存储。计算集群运行大数据分析的任务,云集群运行各种外部客户的任务。   

  

  通过技术的全面云化,层层重构升级,构建灵活复用的能力,实现全局统一调度。在线任务和计算任务混合部署,通过统一的运维部署和资源分配的标准化,提高调度效率,实现能力的自动交付。所以需要完全容器化,利用公有云,发挥云的灵活性,减少自采基础设施的投入。通过混合云的灵活架构和一键网站复用的能力,降低双11的成本,利用阿里云将之前一年的资源持有时间缩减到只有1-2个月。   

  

  统一调度体系   

  

  2011年建成的是阿里巴巴线上业务的调度系统,以Si为核心。   

gma有一整套以调度为中心的集群管理体系。

  

  

Sigma是有Alikenel、SigmaSlave、SigmaMaster三层大脑联动合作,Alikenel部署在每一台NC上,对内核进行增强,在资源分配、时间片分配上进行灵活的按优先级和策略调整,对任务的时延,任务时间片的抢占、不合理抢占的驱逐都能通过上层的规则配置自行决策。SigmaSlave可以在本机上进行CPU的分配、应急场景的处理。通过本机Slave对时延敏感任务快速做出决策和响应,避免因全局决策处理时间长带来的业务损失。SigmaMaster是一个最强的大脑,它可以统揽全局,为大量物理机的容器部署进行资源调度分配和算法优化决策。

  

整个架构是面向终态的设计理念,请求进来后把数据存储到持久化存储,调度器识别调度需求分配资源。系统整体的协调性和最终一致性是非常好的。我们在2011年开始做调度系统,2016年用Go语言重写,2017年兼容了kubernetes API,希望和开源社区共同建设和发展。

  

发挥统一调度,集中管理的优势,释放了规模效益下的一些红利。在线服务的调度和计算任务调度下有各种业务形态,它们在一层调度上进一步细分成二层调度,通过合并资源池提升利用率和分配率,合并buffer进行空间维度的优化实现全局打通。全局打通后进行弹性分时复用、时间维度的优化,共节省超过5%的资源。由于基数大,这个优化效果是非常可观的。

  

  

阿里巴巴在2014年开始推动混部架构,目前已在阿里巴巴内部大规模部署。在线服务属于长生命周期、规则策略复杂性高、时延敏感类任务。而计算任务生命周期短、调度要求大并发高吞吐、任务有不同的优先级、对时延不敏感。基于这两种调度的本质诉求的不同,所以我们在混合部署的架构上把两种调度并行处理,即一台NC物理机上可以既有Sigma调度又有Fuxi调度。Sigma调度是通过SigmaAgent调用OCI标准的RunC 、RunV、 RunLXC 三种标准来启动Pouch容器。Fuxi也在这台NC物理机上抢占资源,启动自己的计算任务。所有在线任务都在Pouch容器上,它负责把服务器资源进行分配切割通过调度把在线任务放进去,离线任务填入其空白区,保证物理机资源利用达到饱和,这样就完成了两种任务的混合部署。

  

  

混部的关键技术

  

内核资源隔离上的关键技术

  

在CPU HT 资源隔离上,做了Noise Clean内核特性,解决在/离线超线程资源争抢问题。

  

在CPU调度隔离上,CFS基础上增加Task Preempt特性,提高在线任务调度优先级。

  

在CPU 缓存隔离上,通过CAT,实现在、离线三级缓存(LLC)通道隔离(Broadwell及以上)。

  

在内存隔离上,拥有CGroup隔离/OOM优先级;Bandwidth Control减少离线配额实现带宽隔离。

  

在内存弹性上,在内存不增加的情况下,提高混部效果,在线闲置时离线突破memcg limit;需要内存时,离线及时释放。

  

在网络QoS隔离上,管控打标为金牌、在线打标为银牌、离线打标为铜牌,分级保障带宽。

  

在线集群管理上的关键技术

  

对应用的内存、CPU、网络、磁盘和网络I/O容量进行画像,知道它的特征、资源规格是什么,不同的时间对资源真实使用情况如何,然后对整体规格和时间进行相关性分析,进行整体调度优化。

  

亲和互斥和任务优先级的分配,哪种应用放在一起使整体计算能力比较少、吞吐能力比较高,这是存在一定亲和性。

  

不同的场景有不同的策略,双11的策略是稳定优先,稳定性优先代表采用平铺策略,把所有的资源用尽,让资源层全部达到最低水位。日常场景需要利用率优先,“利用率优先”指让已经用掉的资源达到最高水位,空出大量完整资源做规模化的事。

  

应用做到自动收缩,分时复用。

  

整个站点的快速扩容缩容,弹性内存技术。

  

计算任务调度+ODPS上的关键技术

  

有弹性内存分时复用、动态内存超卖、无损降级与有损降级三个关键混部技术。动态内存超卖指内存是可以超卖的,如果有在线任务要用,就快速归还。有损降级和无损降级的策略指的是对影响在可接受范围内的波动干扰进行无损降级,不增加新任务,慢慢把它降下来,对影响大的干扰直接杀掉任务属于有损降级。利用零层管控,管理每台NC上的在线任务和离线任务之间的关系。

  

  

混合部署指将计算任务引入在线服务集群以提升日常资源效率。把离线任务引入后,CPU平均利用率从10%上升到40%以上,同时敏感类应用的延迟影响时间小于5%,属于完全可接受范围。目前我们整个混部集群已达到数千台的规模,经过了交易核心链路双11大促的验证。这项优化可以为日常节省超过30%的服务器。由于涉及到硬件的迭代和网络的迭代,需要一个很长的准备周期,所以我们预计明年会扩大10倍的部署规模。

  

  

通过分时复用,达到进一步提升资源效率的效果。上图中的曲线是我们某个应用的流量曲线。它是非常有规律的,左边代表晚上波谷期,右边代表白天处于波峰期。正常的混部指占用图中蓝色阴影部分的资源把利用率提高到40%,弹性分时复用技术是指对应用画像找到应用流量波谷期,对应用缩容,大量释放内存和CPU,调度更多计算任务。通过这项技术,把平均CPU利用率提升到60%以上。

  

  

在双11时,如何利用计算任务集群混合部署助力双11降低成本?我们把计算任务集群分成三种状态:完全没有在线服务的状态、在线服务和计算任务共同存在的过渡状态、双11时在线服务占主流计算任务短时间降级状态。集群混合部署后资源分配三七开,计算任务可以抢占在线任务分配的资源;在压测和大促非峰值时资源分配五五开;在大促峰值到来时,计算任务短时间降级,空闲资源支撑双11峰值。通过一小时快速建站拉起完整交易站点,大幅度降低了双11的单笔交易成本。

  

Pouch容器和容器化的进展

  

全面容器化是提升运维能力、拉通运维差异的关键的技术。首先介绍一下阿里巴巴内部容器技术产品Pouch。它从2011年开始建设和上线,基于LXC,在2015年初开始吸收Docker镜像功能和很多标准。阿里巴巴的容器非常有特点,它结合了阿里内核,大幅度提高了它的隔离性,目前以百万级规模部署于阿里集团内部。

  

再来了解一下Pouch的发展路线。以前用的是虚拟机的虚拟化技术,虚拟化技术过渡到容器技术面临着很多运维体系的挑战。运维体系的迁移是一个很大的技术成本。我们做到了阿里内部运维和应用视角,有独立IP,能够ssh登录,有独立的文件系统和资源隔离使用量可见性。2015年以后,阿里巴巴引入Docker 标准,形成了新的一套容器Pouch并集成整个运维体系。

  

  

Pouch的隔离性非常好,是富容器,可以登录容器,看到容器内进程自己占的资源量,有多少进程,进程挂了容器是不会挂的,可以运行很多的进程。兼容性很好, 旧版本和以后的版本都支持,对利旧很有帮助。同时经过了百万级容器部署的规模化验证,我们研发了一套P2P镜像分发机制,大幅度提升分发效率。同时兼容了业界更多标准,推动标准的建设,支持RunC 、RunV 、RunLXC等标准。

  

  

Pouch的结构是比较清晰的,Pouchd如何跟kubelet、swarm、Sigma交互。在存储上跟业界一起建设了CSI标准。支持分布式存储如ceph、pangu。在网络上使用lxcfs增强隔离性,支持多种标准。

  

目前Pouch化覆盖了阿里的大部分BU,2017年达到百万级部署,在线业务达到100%容器化,计算任务也开始容器化,它拉平了异构平台的运维成本。覆盖运行模式,多种编程语言,DevOps体系。Pouch覆盖了阿里几乎所有业务板块如蚂蚁、交易、中间件等等。

  

Pouch于2017年10月10号宣布开源,11月19日正式开源,计划在2018年03月发布第一个大版本。我们希望通过Pouch的开源推动容器领域的发展和标准的成熟,给业界提供差异化有竞争力的技术选择。不仅方便传统IT企业利旧,老的基础设施也同样能够享受容器化带来的运维层的好处和优势,而且方便新的IT企业享受规模化稳定性和多标准兼容性带来的优势。

  

Pouch开源地址:https://github.com/alibaba/pouch

  

  

在存储计算分离上,由于有状态任务需要复制状态,会严重影响分时复用运维自动化程度和调度效率。我们在云化过程中实现了存储计算分离技术。由于计算集群和在线服务不在一个机房,计算任务的数据需要先缓存到在线业务的集群上,所以我们搭了一个缓存桥头堡,然后进行计算。

  

随着机房结构的调整和网络的优化,我们开始对在线计算同时进行存储计算分离。目前已经实现去桥头堡方案,不受网络上传带宽的限制,减少了大集群跨网络核心对传流量,提升了调度的灵活性。存储计算分离技术不仅可以使用阿里盘古技术,同时也兼容业界这一套容器上的存储标准,这也是阿里实现云化架构的非常关键的技术。在网络架构的升级上,我们大规模使用25G网络,在公有云上使用VPC,overlay能云上、云下和数据集群整个网络打通,这也是阿里大规模混合部署的前提。

  

云化架构和双11未来技术路线

  

  

这是阿里混合云弹性架构,是基于编排的一套技术体系,也是面向动态的架构。它可以分钟级进行单元的扩容和缩容,快速在云上或大数据集群上建立交易单元,实现秒级巡检,确保交付的可靠性。这套体系能持续降低资源持有时间和服务器的非ONLINE时间,降低损耗时间,提升了弹性的效率。双11超过60%的峰值流量都跑在阿里云上,全面使用阿里云弹性基础设施,8个小时快速构建全球最大混合云。

  

  

双11云化架构运维体系介绍

  

将资源分为在线任务集群、计算任务集群和ECS集群。资源管理,单机运维、状况管理,命令通道、监控报警这类基础运维体系已经打通。在双11场景中,我们会在云上划出一个独立的区域与其他场景互通。在互通区域,Sigma调度可以到计算集群服务器里申请资源,生产Pouch容器,也可以到cloud open API去申请ECS,生产出容器的资源。在日常的场景中Fuxi可以到sigma里申请资源,创建需要的容器。

  

在双11场景中,利用应用和规模化运维在容器上构建大量在线服务,包括业务层的混合部署,每个集群都有online service和有状态服务及大数据分析。阿里云的独占集群也部署了在线服务和有状态的数据服务,做到了datacenter as a computer,多个数据中心像一台计算机一样来管理,实现跨多个不同的平台来调度业务的发展所需要的资源。构建了混合云用极低的成本拿到服务器,解决有没有的问题。

  

先有服务器规模,再通过分时复用和混合部署来大幅度提升资源利用率。真正实现了弹性资源平滑复用任务灵活混合部署,用最少的服务器最短的时间和用最优效率完成业务容量目标。通过这一套云化架构,我们在双11实现了新增IT成本降低50%,使日常IT成本下降30%,带来了集群管理和调度领域的技术价值爆发,也说明容器、编排调度技术的流行是一种必然。

  

  

后期我们会通过阿里云平台把内部储备的技术对外输出。这套技术是内部调度容器运维领域的优势技术,具备调度、编排、应用管理、监控、混合云的快上快下构建、弹性伸缩、混合部署的能力,同时兼容Kubernetes API,提供企业级容器应用管理能力,提高企业IT效率,进而提高企业竞争力和创新效率。混合部署和自动化混合云构建技术经过双11规模验证,成为一个非常成熟稳定的技术体系。在云上,我们和ACS 、EDAS 、EMR合作,提高了产品的完整性。

  

未来云化架构技术将走向何方?

  

  

在双11场景下利用技术解决了大促成本的问题,找到了一个正确的方向,通过长期建设和发展,有更大的优化效率的提升。未来我们希望通过云化架构提升阿里IDC资源利用率、通过扩大调度规模和混部形态扩大效益。继续推进面向终态的体系结构和运维体系的提升,资源持有时间优化30%以上,持续降低大促的交易成本。

  

对双11本身,成本的问题已经得到了比较好的优化,未来着手于效率的提升,减少时间和人力成本,通过双11技术变量的采集、分析、预测微观视角的剖析和数据算法驱动,用智能决策进行处理。通过数据化、智能化、人与机器智能协同指挥,提升双11准备和作战效率,减少人力投入。通过加速基础技术的迭代,在体验、效率、成本和最大吞吐能力上找到新的平衡点,为整个行业和消费者带来一个更加完美的双11。

相关文章