Windows google apache java HTML5 Firefox linux 开源 php 程序员 Ubuntu mysql Android 微软 wordpress centos linux命令 shell Python nginx

云计算运维之“轻”与“重”

云计算作为改变世界的力量,已经开始在各种应用实现中被不断印证,而现在还只是云计算生命周期的启航,这场变革的演进一定会超乎大多数人的想象。早些年,当我读到尼古拉斯·卡尔《IT不再重要》(The Big Switch: Rewiring the World, from Edison to Google)这类文章的时候,对于云计算所具备水、电般属性的勾勒,既为之兴奋,又苦恼无法为具化这些属性找到实践支撑。而最近三年来,云计算发展风生水起,以我这三年切身参与阿里云计算产品实现和落地的过程为例,恰好是云计算从“虚”到“实”变革演进的一个缩影。这过程中,我对于云计算运维在不断理解、摸索和实现中重构。本篇文章,即是对于云计算运维阶段性积累的部分分享。

云计算是公共资源,是一台超级计算机,大规模,低成本,可服务,是互联网时代的水和电… 云计算贴有很多这样的标签(Tag),但云计算时代的运维,到底为开发者和云计算平台运营商带来了怎样的Big Switch? 我的答案是运维之“轻”与“重”的转移,这“轻”与“重”的背后,体现了云计算运维和传统运维的差异性和核心竞争力的转移。

传统运维之“重”

传统网站的运维模式、业务和规模上虽然各有差异,但在结构上都很相似,从最底层的IDC(数据中心)、网络、服务器和系统等基础运维,到上层数据库、安全和产品等应用运维,需要环环相扣,层层覆盖。尤其对于一些小、微型开发者,麻雀虽小也要五脏俱全,各种运维任务如同一辆满载的货车,面对恶劣的路况(激烈的市场环境),为了保持行驶速度,要不断加油和维修(网站运维持续投入人力、物力,避免运维成为阻碍自身发展的瓶颈);另一方面,由于运维所具有的专业性、规模化和周期性等特点,使得运维投入所换来的产出往往又不如人意。传统网站的运维模式,令许多网站不堪重负。

图1 云计算给开发商带来的变化

开发者运维之“轻”

在云计算时代,对于开发者的变化是什么?随着开发者的网站“上云”,开发者的网站运维将变得很轻、很薄。开发者可以集中优势资源专注于自身产品的研发和运营,把这部分核心竞争力做重、做厚。而产品的绝大部分网站运维工作隐身在背后那朵云里,由云计算平台运营商实现。对于开发者而言,云计算时代的网站运维可以举重若轻,如同将原来满载的货车,换成了快捷的跑车,轻松上路。例如,阿里云某开发者客户,自行维护网站时,需要10人以上的专属运维团队,经常面临网站高可用性、安全事件和设备成本投入等挑战,迁移到阿里云平台后,应用弹性计算ECS、负载均衡SLB、云盾和关系型数据库RDS等产品,其10多人的运维团队资源得到释放,可以补充到产品研发和运营中;网站高可用性得到提升;成本控制更具弹性。

云计算平台运营商运维之“重”

开发者实现网站运维之“轻”,并不是网站运维的挑战在云计算平台上真的减轻,而是这部分工作由云计算平台运营商来提供更专业的运维保障服务。拨开云雾,我们会发现云背后所承载的运维实现构成了云计算平台运营商的运维之“重”。“重”在这里有两层含义。一是“量”之“重”,以阿里云为例,所有的云产品都运行在“飞天”大规模云计算平台上,运维在保障这个平台服务质量中扮演着核心角色,从运维人员组织、过程改进、系统优化到运维支撑自动化系统等,各个环节都紧密围绕云计算平台特性进行协同。如何实现云计算运维的最佳实践,所涉及的技术难度、优化改进和操作强度在“量”上非常之“重”。二是“责任”之“重”,云计算平台的服务质量,直接关系到其上承载的万千开发者产品的可用性、口碑和生命力。过去3年,阿里云的开发者,包括我们的客户、合作伙伴,真正教会阿里云如何去实现一个云计算平台,让我们认识到所运营的云计算平台,如何关乎开发者切身利益,关乎生态系统的健康发展,责任“重”大。

云计算改变运维

云计算平台服务端的复杂性和创新性,对于运维是个全新的挑战,运维思路和方式都为之发生改变。这种改变不是简单的在传统运维上的优化,而是基于云计算特征孕育而生的运维重构;这种改变也并非一蹴而就,是随着云计算平台的发展过程不断演进,许多都没有最佳实践可循,是在摸着石头过河中不断积累经验。相对传统的网站运维,云计算平台运维的主要特征如下。

集群是基本运维单位:组成云计算平台的节点都是普通PC服务器,平台的高可用性,不再借助传统的高投入服务器硬件冗余方案(RAID、网络双上连、双电源等)实现,而是通过云计算平台自身的鲁棒性保障。这需要运维改变视角,从原来把服务器作为基本运维单位,转变为以集群作为基本运维单位。传统运维场景下的“及时”维修服务器,在云计算场景下,可以“轻松”定期维修。而这种“轻松”,并不是对运维需求的降低,而是基于对集群整体容量和健康状态的管理能力,即通过有效提炼和过滤各种服务器的个体运行状态,映射出集群的整体状态的能力。集群的容量管理、部署、监控、故障管理等运维任务,都必须以集群为单位进行。

大规模:单集群的规模,是衡量云计算平台能力的重要指标之一。对于生产环境而言,云计算集群也必须达到一定规模,才能实现云计算平台的高可用、低成本等真正价值。因此,在进行运维的规划和实现时,都要以满足大规模为必要条件。

可运维性是云平台基本属性:集群可运维性包括实现高效和大规模的部署、升级、迁移、扩容和故障管理等运维任务,是集群必须具备的能力。云平台从第一天设计开始,就必须包括该属性。开发团队和运维团队需要紧密协同,结合平台和运维特性加以实现。较之传统运维,云计算平台对于大规模集群的可运维性、可管理性等的要求高很多,是集群落地的刚性需求。

规范化:要在大规模下,实现集群部署、迁移、扩容等管理,依赖于从IDC设计、网络设计、服务器选型到云平台实现的全局统筹的规范化,这如同统一“度量衡”,实现“车同轨,书同文,行同伦”。规范化构成了云计算One Infrastructure重要属性。基于One Infrastructure的实现,把一批服务器从A集群迁移到B集群,只是在集群管理系统上对配置的远程变更,而不需要物理服务器实际搬迁。

解构阿里云平台运维

组织建设

阿里巴巴集团技术保障是“一个”团队(one team),阿里云、天猫、淘宝、etao、雅虎中国等阿里巴巴集团旗下产品,都由这个团队统一进行技术保障。团队的统一,可以确保运维体系的统一和运维资源的充分共享。换言之,阿里云的运维体系、网络质量、安全和支撑能力等和淘宝、天猫由同一个技术保障团队护航,在同一个支撑平台下实现。技术保障团队组织建设分横向、纵向两个维度。其中,纵向按照技术职能划分,主要包括基础运维、应用运维、DBA、安全和平台支撑等专业团队,确保各领域的专业性和技术深度;横向为了保障重点产品和项目,打破了团队界限,围绕产品建立“护航小组”。例如,阿里云弹性计算护航小组,成员包括平台和应用运维、DBA、安全和过程改进工程师,在2012年7-8月CCTV 5+网站奥运保障期间,该护航小组贯穿容量管理、压测、预案、性能优化、故障演练、重点赛事保障和资源弹性分配等全过程,之前团队间的任务,在“护航小组”模式下,变为团队内的任务,各角色紧密协同,发挥各自优势,上下游通畅,其高效、专注的工作特点取得良好的成效。

过程改进

如图2所示,运维过程从左到右将一个产品的生命周期中的业务研发、发布变更到生产运维贯穿起来。各个阶段的流程均具备可量化的KPI指标,能够清晰指示产品运维的健康程度和优化方向。例如,“生产变更提前计划率”可以指示一个产品发布的计划性和规范性,避免因为发布管理不善,而引发线上故障的风险。这3年阿里云的发展让我们深刻认识到,由于云计算平台自身的技术复杂性、大规模等特点,使得故障具备全局性、泛洪等特点,因此规范的运维流程和制度保障至关重要。

图2 云计算运维过程的改进

支撑系统

云计算平台和产品的高可用性实现,大规模、稳定、成本和效率之间的有效结合,都依赖于一套健壮、实用的运维支撑体系。服务于阿里云的运维支撑体系不是简单套用ITIL或拼凑开源运维工具,而是根据云计算集群大规模分布式的特点,由飞天和技术保障开发团队自主研发并不断完善中的一套系统,其子系统主要包括:基础运维、配置管理、生产变更、故障管理、集群容量、监控、集群运维等部分。从快速部署一套包括几千个计算、存储节点的飞天集群,到监控集群上万的任务和服务对象,运维支撑系统在可管理、可扩展、健壮性和自动化程度的提升,既是解放运维生产力的过程,也是云计算是否真正落地的重要标志之一。围绕飞天平台运维保障,从操作系统安装、飞天平台搭建、应用部署、变更发布、监控、容量管理、仪表盘(Dashboard),都有专门的运维工具实现,并且工具之间相互关联和协同。

图2 云计算运维过程的改进

云运维面临的挑战

高可用!开发者需要一个安全、高可用的网站环境开展业务,因此如何确保云计算平台和产品提供高可用性服务,是我们一直投入最大力量之所在。以故障管理为例,据相关机构统计,2012年国际知名云计算公司,先后发生多起云服务中断事件,此类事件的数量较2011年呈上升趋势,故障影响的周期从小时到天级别。分析这些故障背后的触发因素,包括代码Bug、IDC电力故障、网络故障、设备故障、配置变更错误等诸多因素,可见云计算的风险隐患较之传统网站并不少,结合云计算平台自身所具备的大规模等特点,故障在云计算集群因为规模化而存在被放大的隐患,故障恢复也因为海量数据等因素而延长,所以如何对于故障进行容错、容灾、有效隔离影响和快速恢复对于云计算运营商至关重要。面对这些挑战,阿里云产品开发团队和技术保障团队,把平台的高可用性放在最高优先级加以实现,这也是阿里云飞天平台重要的核心竞争力。其中,集群多Master HA、热升级、动态迁移、集群管理平台等,已在产品中普遍应用;技术保障团队在故障预案、容灾演练、工具自动化和应急响应等方面,在不断改进和完善。

共创云运维生态系统

阿里云计算平台是一个开放的生态系统,其中围绕云计算的运维,是构成这个生态系统的重要的生态链。从云产品开发者的“轻”运维,到云平台运营商的“重”运维,相得益彰,相互促进,才能打造健康的发展环境。这条运维生态链充满潜力,例如可以为第三方软件提供商(ISV)、第三方运维服务提供商提供平台,创造更细分和垂直的运维服务系统,丰富云生态系统,创造价值。以2012年11月的阿里云开发者大会为例,参赛作品中有相当比例是基于OSS和ECS等开发的管理类工具,这些第三方管理工具在云生态系统中,就可能找到自己的需求方,从而产生价值。第三方运维服务商也同样可以通过提供更细分、定制化的服务内容,在云生态系统中满足开发者用户的个性化运维需求。

云计算方兴未艾,可谓小荷才露尖尖角,精彩刚刚开始。运维作为云计算的天然组成部分,会越来越展示其重要性,成为云计算核心竞争力之一。让我们携手所有的阿里云开发者共创一个健康、开放的云计算运维生态环境;让阿里云计算平台运维重如泰山,稳若磐石;让开发者运维举重若轻,轻松在路上。

延伸阅读

评论