阿里智能运维平台如何助力研发应对双11挑战

摘要: 12月13-14日,由云栖社区与阿里巴巴技术协会共同主办的《2017阿里巴巴双11技术十二讲》顺利结束,集中为你们分享了2017双11背后的黑科技。本文是《阿里智能运维平台如何助力研发应对双11挑战》演讲整理,在回顾了阿里巴巴运维历程后,为咱们讲解了阿里基础运维平台和应用运维平台,并介绍了阿里相关运维产品及阿里在智能运维平台上的发展成果。git

12月13-14日,由云栖社区与阿里巴巴技术协会共同主办的《2017阿里巴巴双11技术十二讲》顺利结束,集中为你们分享了2017双11背后的黑科技。本文是《阿里智能运维平台如何助力研发应对双11挑战》演讲整理,在回顾了阿里巴巴运维历程后,为咱们讲解了阿里基础运维平台和应用运维平台,并介绍了阿里相关运维产品及阿里在智能运维平台上的发展成果。内容以下。github

分享嘉宾:
图片描述web

如柏(毛茂德),阿里巴巴高级技术专家,Apache顶级项目CXF初创成员之一,阿里集团基础架构事业群运维中台负责人,亲历者。算法

如柏:双11已通过去两周了,但双11的热度还在继续。双11从09年开始,到12年就变成了一个节日,变成了消费者日,商家感恩消费者的节日。不只是阿里奉献给国人的一个节日,更是阿里奉献给世界的全球购物狂欢节,由于今天阿里的业务已经遍及全世界。业务的爆炸式的增加给技术带来史无前例的挑战,今年双11在技术上又创造了新的高峰。因此在在阿里内部,咱们也常说双11是技术的练兵场,是业务和技术的大协同。每一年双11后,阿里都会给你们分享阿里在双11中的前沿技术理念和技术成果,运维是阿里双11技术分享以来的首次分享。运维是业务的重要支撑,运维平台如何让业务在如此迅猛的发展下依然稳定、高效的发展是对咱们巨大的挑战。bootstrap

今天我给你们分享的是阿里智能运维平台如何协助研发应对双11的挑战。今天的分享主要分为四个部分:
回顾阿里运维历程
基础运维平台分享
应用运维平台分享
阿里在智能运维平台上的发展成果
阿里运维历程
阿里的运维和不少公司有类似之处,也经历了四个阶段:
使用命令行工具运维
系统化工具运维
自动化平台
智能化平台与无人值守实践
每一个阶段的转变都是一个很是漫长的过程。在这个过程当中咱们一直秉承一个原则:让机器作人去作的事;让系统作可重复的事;让系统作人作很差的事。安全

运维是一个很是大的概念。很难用一两句话能描述清楚,在维基百科中,Operations有十几个解释。在我看来中文的“运维”其实很是好的描述了运维的本质,“运”就是让业务稳定持续的运行,“维”就是运行过程当中针对任何出现的问题进行维护,使业务保持继续运行的能力。运维本质就是让业务稳定、高效的运作,并在此基础上逐步下降运维成本。运维的职责覆盖了产品从设计到发布、运行、成本技术优化及至下线的生命周期。服务器

咱们把运维分红五个层次。
资源:Quota管理、资源规划、资源采购、资源调度、bootstrap
变动:变动信息、应用变动、基础软件变动、网络变动、IDC变动
监控:基础监控、业务监控、链路监控、报警、视图
稳定性:多活、故障修复、故障定位、故障注入、全链路压测
规模化:一键建站、搬迁、腾挪、单元调整
在产品发布前,运维须要对产品的总体架构作合理评估,把控资源诉求,分析产品是否有单点、是否有足够的容量,是否可容错,是否有强耦合等。资源规划评估,包括所需的服务器资源、网络资源以及资源的分布等,同时把相关产品对资源预算申请的合理性,控制服务成本。
当全部的资源都到位后,把服务部署到线上,造成线上运行的业务。因为软件须要不停的迭代,这个过程当中会发生如网络架构的变化、服务器淘汰等各类变动。
在运行过程当中,监控是必不可少的。基础服务、基础软件、业务、舆情等各方面都须要作监控。
互联网的快速发展致使业务必须具有很是快速的迭代、快速部署,这要求运维要有规模化的能力,能进行快速复制。好比,如何让新收购的海外公司融入集团运维体系里,这是一个很是关键的业务。
基础运维平台
运维的五个层次不可能只用一个系统来承载,每一个层次都是有很是多的系统。基础运维平台和应用运维平台主要体如今资源和变动层次,一些监控、规模化的内容也涵盖在这里。咱们把基础运维平台定义成IT运维的基础设施。网络

基础设施是怎样的?电、水、桥梁、机场都是平常生活中的基础设施,这些基础设施都有一些共同特征:稳定、安全、统1、有预见性、无需感知。若是电力的供应不稳定,常常发生断电,咱们的财产和平常工做都会遭受到很是大的损失。若是自来水不安全,居民的生命也会形成很是大的损。在运维领域,咱们也须要有稳定、安全、统1、有预见性的基础设施,保证业务的持续稳定发展。架构

StarAgent就是阿里运维的基础设施,它的稳定性已经达到99.995%。它也很是安全,由于它关系到整个阿里巴巴全部服务器、全部网络、全部业务。它有自我保护措施,保证任何人的操做都不影响整个集团的业务。并发

基础设施的统一包含统一的标准和统一的数据。统一有三个好处;
保证不需重复建设一些系统;
便于作全局优化;
便于统一规划,避免没必要要的返工。
多个BU建设几个一样的基础设施跟一个BU建设一个基础设施的成本投入是有很大差异的。若是不一样团队作同一个设施,只有10%的差异,而专门的团队作基础设施能够作的很是精很是深。在阿里,咱们利用中台的思想,把全部的基础设施统一到StarAgent上。
统一基础设施使咱们能看到全局概况而不是某一个BU的状况,方便作全局的优化和高度抽象,保证系统具备可扩展性,能适应全部场景,这也是阿里中台思想的核心概念。
若是修马路的人只关注修马路而缺少统一规划思想,忽略管线的铺设,把马路修完后又从新刨开处理管线的问题,就会形成很大的损失。运维基础设施也是同样,统一规划能避免重复的返工和成本的浪费。

基础设施必须具有预见性。新一代StarAgent在设计之初就考虑到了服务器数量和业务增加的趋势对稳定性和性能可能带来的冲击,保证在3-5年内无需从新架构,在这两方面都必须有预见性的考虑。
基础设施还有一个特色,就是咱们不须要任何人感知到它的存在。若是人们都能感知到基础设施的存在,说明基础设施不够稳定,性能不够好。阿里作到如今不多有研发真正能感知到StarAgent系统,就像咱们感知不到电,感知不到水,由于如今这些基础设施已经很是稳定,无需咱们关注。
阿里运维基础设施产品介绍
堡垒机主要是负责管理整个阿里帐号、权限、访问控制、高危拦截、过后审计。阿里堡垒机在阿里是很是具备特点和竞争力的产品,能同时容纳5000人在线,也符合ISO的各个行业规范。

图片描述

StarAgent是一个运维通道,是基础设施中最核心的功能。它主要分3层架构:中央管控、每一个机房集群的管控,物理机、虚拟机、容器上的Agent。Agent是一个插件式管理。截止到目前为止,咱们已经有150多个插件,1/3的插件属于后台进程类。

图片描述

StarAgent的职责是保证全部插件、全部后台进程的稳定运行和做为运维的通道。咱们在资源上作了不少限制,在插件安装前,开发者会定义每一个插件所用到的内存、CPU、磁盘、网络上的流量。若是进程的运行超过限定范围,咱们就把这个进程杀掉来保障服务器的安全。在运维通道方面,咱们作了同步命令执行和异步命令执行,目前日均访问量达1个亿。
在安全方面,咱们和集团的安所有合做,安排安全演练和攻防演练,保证系统的安全。咱们也作了不少命令的拦截、全链路命令的加密等。
虽然系统庞大,须要的运维的人员并很少,95%的工做都已经自动化,包括IP端的自动关联、Agent的自检自愈等,所以百万级服务器只需半我的负责运维。固然要从半我的运维进化到无人值守运维是须要付出巨大的努力的。

蜻蜓是基于P2P技术的智能文件分发系统,在架构上与StarAgent相似。下图为蜻蜓与wget的技术对比。X轴表明并发客户端数量,从200到7000;Y轴表明完成一个500Mb文件分发的耗时。

图片描述

从图中能够看到,随着客户端数量的增加,蜻蜓的耗时时间都控制在10秒左右,而传统文件分发工具耗时升高,甚至在客户端增加到1200个后,整个集群已没法工做,由于数据源已经被打爆了。蜻蜓不只能够保护数据源、加快分发速度,也能节省跨IDC带宽,尤为在跨国业务上,能节省不少跨国带宽。在今年11月10日10点, 10000PB同时分发5GB预热数据到上万台服务器,这对蜻蜓是一个史无前例的挑战,也是业务方首次第尝试。今年双11咱们完美完成了这个任务,并达到100%的成功率。

蜻蜓运用的主要场景是软件安装,阿里的发布系统也很是依赖于蜻蜓,目前阿里已总体实现Pouch化,全部的业务都已被容器化,在容器镜像的传输方面也是用的蜻蜓。蜻蜓除了支持特大文件传输外,还包括断点续传及一些智能化特性如智能网络、I/O的流控、智能磁盘I/O控制、智能动态压缩等等。

图片描述

蜻蜓的访问次数已经突破了20亿次,分发量方面已突破了4PB/月,从图中能够看到分发量和镜像分发的占比,经过动态压缩,总体提速了30%。

蜻蜓已经在GitHub上开源了,开源协议是Apache2.0,蜻蜓开源版能够在https://github.com/alibaba/dr...。蜻蜓企业版能够在云效或阿里云容器服务中访问获取。开源版与企业版蜻蜓有略微差异。
开源版功能:P2P文件分发,容器镜像分发、局部限速、磁盘容量预热
企业版功能:断点续传、全局限速、镜像预热、支持内存文件系统、智能网络流控、智能动态压缩、智能调度策略
图片描述

镜像预热能够帮助咱们在业务庞大时快速拉取镜像。好比应用有上万台服务器,若是发布过程当中同时拉取镜像,耗时是很是长的。因此咱们在发布前把镜像推送到就近机房的节点中。在真正发布时,就近拉取镜像,这样能大幅度减少的耗时。在实际运营中,根据双11的数据统计,通过预热后镜像拉取耗时下降了67%。
应用运维平台
应用运维平台是真正面向研发的运维平台,是研发常常须要用到的平台。在应用运维平台上,咱们提供了如下几个能功能。第一个功能是基础设施即代码。一个应用能够经过代码描述的形式把它须要的全部基础设施、全部资源描述清楚,并保存在CMDB上做为用户对应用的资源的需求。全部资源的变动都会被保存下来而且都是版本化的,运维人员能够很是清晰的看到资源的变化状况和操做者是谁。基于这个文本,定义后台全部资源的生产。咱们还有按期巡检,查看实际资源与用户定义是否有差别。若是有差别,咱们会自动化地帮用户调整资源,资源的弹性扩容和缩容也是基于这种方式作的。基于传统模式生产资源构建应用与这种模式相比效率相差几乎20倍。经过这种方式AE能快速在全球部署一个站,快速复制俄罗斯的一个站点等,获得很大的效率提高。

图片描述

第二个功能是无人值守发布变动。传统研发在发布过程的每一步结束时查看各类监控指标及应用日志。在无人值守发布过程当中,这个工做交给系统,系统会告诉你哪项指标有异常。人只须要在接收到指标时作评判和决策。判断异常是否是问题,若是不是,相似的问题可能不会再提出来。举个简单的例子,咱们在写代码的时候都会写日志并保存下来,分析日志里是否发生异常。当分析出异常时,判断这个异常是否从未发生过,若是从未发生过,咱们就会提示用户有一个新的异常,发布暂停并让用户确认。若是这个异常曾经发生过,但频率没有此次发布中高,咱们也会认为这是一个异常并提示用户。相似这样的指标共有四十多项。经过无人值守发布,下降在发布过程当中可能产生的业务故障。实际11月11日的24小时内,咱们有大量的发布同时发生,无人值守系统很是好的保障了上线代码的质量。

图片描述

应用运维平台在WEB端和移动端均可以使用,用户很是容易就能够在手机端获得无人值守发布、资源的建立等状况的消息并快速作出决策。除手机屏外,在阿里双11协同做战中也用到了不少监控大屏,这对沟通成本的下降很是有帮助。实际上,整个业务运维平台上有很是多运维大屏、业务大屏、技术大屏等。整个业务运维平台有PC端大屏、移动端小屏、做战大屏。下图是阿里全新设计的UI,也是在今年双11用到的大屏。

图片描述
阿里智能运维进展
AIOps是2016年Gartner发布的新概念,强调基于算法的IT运维实践,核心是数据和机器学习。在AIOps闭环里会用到监控,观察全部业务运行情况,将这些数据分析处理,最后造成自动化执行任务。在智能运维里,最重要的是场景、数据、算法。因此AIOps跟阿里运维过程是密不可分的,在整个智能运维过程当中核心问题是如何保证业务发展的稳定,在业务发展稳定后如何提高效率和下降成本。

图片描述

“亻动”是日语里的自动化的“动”字,概况了咱们目前在运维领域的状态,实际上咱们所谓的自动化仍是须要人的介入,人是很是关键的一个因素,因此智能化运维跟最终实现无人值守运维还存在很是大的差距。

下图是智能化运维的总体划分,跟自动驾驶很是类似的,从人工运维过渡到自动化,而且能一键化提示,最终实现无人值守运维的过程。

图片描述

咱们在运维平台作的最多的两件事是如何保证业务的稳定性和在业务稳定的基础上如何提高运维效率。在稳定性方面,咱们作了异常检测、根因分析、根源定位,而且尝试作故障的自愈、故障的预测。在运维效率上咱们作了智能参数的调整尝试。蜻蜓跟IDST合做在智能网络流控上作了一些工做,它的核心思想是蜻蜓在网络流控上提供参数,帮助咱们设定蜻蜓可利用网络带宽的量,保证业务不受影响的状况下,最大限度的利用全部网络资源。以前咱们让用户很是方便地设定参数,实际上这是不科学的。咱们会作一个全局设定,经过智能化的参数调控、实时大数据分析知道下一个时刻须要用多少网络带宽,全部参数包括网络、磁盘、智能压缩都再也不须要经过人为设定,而是系统在运行中自动化调整到最优的状态。

在自动化操做包括扩容、限流、降级也是一样的思想,不须要再人为设定固化的参数,让系统自动化的调到最优的状态。咱们核心的思想就是但愿之前基于专家的经验转化成算法和机器学习,充实到整个运维平台里。

图片描述

上图是整个StarOps产品体系,最底层是全部的资源,包括云上资源、混合云资源。在这之上是基础运维平台,基础运维平台里由不少的模块组成的,如堡垒机、文件分发等。在基础运维平台上是应用运维平台,它涵盖资源、变动、监控、故障治理、平常运维等。横向的来看咱们的算法平台覆盖了全部板块。除了上图显示的这些系统外,还有不少流程规范、运维红线、故障管理等。面向用户侧的是最上面的一层,有PC端的web、API、SDK、命令行、移动端运维、大屏等。

相关文章
相关标签/搜索