云计算改变世界的力量,已经开始在各种应用实现中被不断印证,现在还只是云计算生命周期的启航,这场变革的演进一定会超乎大多数人的想象。早些年,当我读到尼古拉斯·卡尔《IT不再重要》(The Big Switch: Rewiring the World, from Edison to GoogleDoes IT Matter?)这类文章的时候,对于云计算所具备水、电般属性的勾勒,既为之兴奋;又苦恼无法为具化这些属性找到实践支撑。而最近三年来,云计算发展风生水起,以我这三年切身参与阿里云计算产品实现和落地的过程为例,恰好是云计算从“虚”到“实”变革演进的一个缩影。这过程中,我对于云计算运维在不断理解、摸索和实现中重构。本篇文章,是对于云计算运维阶段性积累的部分分享。
云计算是公共资源,是一台超级计算机,大规模,低成本,可服务,是互联网时代的水和电… 云计算贴有很多这样的标签(tag),但云计算时代的运维,到底为开发商(developer,开发者)和云计算平台运营商带来了怎样的Big Switch? 我的答案,是运维之“轻”与“重”的转移,这“轻”与“重”的背后,体现了云计算运维和传统运维的差异性和核心竞争力的转移。
一、传统运维之“重”
传统网站的运维模式,业务和规模上虽然各有差异,但在结构上讲都很相似,从最底层的IDC(数据中心)、网络、服务器和系统等基础运维,到上层数据库、安全和产品等应用运维,需要环环相扣,层层覆盖。尤其对于一些小、微型开发者商,麻雀虽小也要五脏俱全,各种运维任务如同一辆满载的货车,面对恶劣的路况(激烈的市场环境),为了保持行驶速度,要不断加油和维修(网站运维持续投入人力、物力,避免运维成为阻碍自身发展的瓶颈);另一方面,因为运维所具有的专业性、规模化和周期性等特点,运维投入所换来的产出往往又不如人意。传统网站的运维模式,另许多网站不堪重负。
二、开发者商运维之“轻”
在云计算时代,对于开发者商的变化是什么?随着开发者商的网站“上云”,开发者商的网站运维将变得很轻、很薄。开发者商可以集中优势资源专注于自身产品研发、运营,把这部分核心竞争力做重、做厚。而产品的绝大部分网站运维工作隐身在背后那朵云里,由云计算平台运营商实现。对于开发者商而言,云计算时代的网站运维可以举重若轻,如同将原来满载的货车,换成了快捷的跑车,轻松上路。例如,阿里云某开发者商客户,自行维护网站时,需要10人以上的专属运维团队,经常面临网站高可用性、安全事件和设备成本投入等挑战,迁移到阿里云平台后,应用弹性计算、SLB、云盾和RDS等产品,其10多人的运维团队资源得到释放,可以补充到产品研发和运营中;网站高可用性得到提升;成本控制更具备弹性。
三、云计算平台运营商运维之“重”
开发者商实现网站运维之“轻”,并不是网站运维的挑战在云计算平台上真的减轻,而是这部分工作由云计算平台运营商来提供更专业的运维保障服务。让我们拨开云雾,云背后所承载的运维实现构成了云计算平台运营商的运维之“重”。“重”在这里有两层含义:一是“量”之重,以阿里云为例,所有的云产品都运行在“飞天”大规模云计算平台上,运维在保障这个平台服务质量中扮演着核心角色,从运维人员组织、过程改进、系统优化到运维支撑自动化系统等,各个环节都紧密围绕云计算平台特性进行协同。如何实现云计算运维的最佳实践,所涉及的技术难度、优化改进和操作强度在“量”上非常之“重”;二是责任之重,云计算平台的服务质量,直接关系到其上承载的万千开发商开发者产品的可用性、口碑和生命力。过去3年,阿里云的开发者,包括我们的客户、合作伙伴,真正教会阿里云如何去实现一个云计算平台,让我们认识到所运营的云计算平台,如何关乎开发商开发者切身利益,关乎生态系统的健康发展,责任“重”大。
四、云计算改变运维
云计算平台服务端的复杂性和创新性,对于运维是个全新的挑战,运维思路和方式都为之发生改变。这种改变不是简单的在传统运维上的优化,而是基于云计算特征孕育而生的运维重构;这种改变也并非一蹴而就,是随着云计算平台的发展过程,不断演进,许多都没有最佳实践可循,是在摸着石头过河中不断积累经验。相对传统的网站运维,云计算平台运维的主要特征如下:
集群是基本运维单位:组成云计算平台的节点都是普通PC服务器,平台的高可用性,不再借助传统的高投入服务器硬件冗余方案(RAID、网络双上连、双电源等)实现,而是通过云计算平台自身的鲁棒性保障。需要运维改变视角,从原来把服务器作为基本运维单位,转变为以集群为基本运维单位。传统运维场景下的“及时”维修服务器,在云计算场景下,可以“轻松”定期维修。而这种“轻松”,并不是对运维需求的降低,而是基于对集群整体容量和健康状态的管理能力,即通过有效提炼、过滤各种服务器的个体运行状态,映射出集群的整体状态的能力。集群的容量管理、部署、监控、故障管理等运维任务,都必须以集群为单位进行。
大规模:单集群的规模,是衡量云计算平台能力的重要指标之一。对于生产环境而言,云计算集群也必须达到一定规模,才能实现云计算平台的高可用、低成本等真正价值。所以,在进行运维的规划和实现时,都要以满足大规模为必要条件。
可运维性是云平台基本属性:集群可运维性包括实现高效和大规模的部署、升级、迁移、扩容和故障管理等运维任务,是集群必须具备的能力。云平台从第一天设计开始,就必须包括该属性。开发团队和运维团队需要紧密协同,结合平台和运维特性加以实现。云计算平台,对于大规模集群的可运维性、可管理性,较之传统运维,要求高很多,是集群落地的刚性需求。
规范化:要在大规模下,实现集群部署、迁移、扩容等管理,依赖于从IDC设计、网络设计、服务器选型到云平台实现的全局统筹的规范化,如同,统一“度量衡”,实现“车同轨,书同文,行同伦”。规范化构成了云计算One Infrastructure重要属性。基于One Infrastructure的实现,把一批服务器从A集群迁移到B集群,只是在集群管理系统上对配置的远程变更,而不需要物理服务器实际搬迁。
五、解构阿里云平台运维
5.1.组织建设
阿里巴巴集团技术保障是“一个”团队(one team),阿里云、天猫、淘宝、etao、雅虎中国等阿里巴巴集团旗下产品,都由这个团队统一进行技术保障。团队的统一,可以确保运维体系的统一和运维资源充分共享。换言之,阿里云的运维体系、网络质量、安全和支撑能力等和淘宝、天猫由同一个技术保障团队护航,在同一个支撑平台下实现。技术保障团队组织建设分横向、纵向两个维度。其中,纵向按照技术职能划分,主要包括基础运维、应用运维、DBA、安全和平台支撑等专业团队,确保各领域的专业性和技术深度;横向,为了保障重点产品和项目,打破了团队界限,围绕产品建立“护航小组”。例如,阿里云弹性计算护航小组,成员包括平台和应用运维、DBA、安全和过程改进工程师,在2012年7月~8月CCTV 5+网站奥运保障期间,该护航小组贯穿容量管理、压测、预案、性能优化、故障演练、重点赛事保障和资源弹性分配等全过程,之前团队间的任务,在“护航小组”模式下,变为团队内的任务,各角色紧密协同,发挥各自优势,上下游通畅,其高效、专注的工作特点得到良好的成效。
5.2.过程改进
运维过程从左到右将一个产品的生命周期中业务研发,发布变更到生产运维贯穿起来。各个阶段的流程均具备可量化的KPI指标,能够清晰指示产品运维的健康程度和优化方向。例如,“生产变更提前计划率”可以指示一个产品release的计划性和规范性,避免因为发布管理不善,而引发线上故障的风险。这3年阿里云的发展,让我们深刻认识到,因云计算平台自身的技术复杂性、大规模等特点,故障具备全局性、泛洪等特点,规范的运维流程和制度保障至关重要。
5.3.支撑系统
云计算平台和产品的高可用性实现,大规模、稳定、成本和效率之间的有效结合,都依赖于一套健壮、实用的运维支撑体系。服务于阿里云的运维支撑体系不是简单套用ITIL,或拼凑开源运维工具,而是根据云计算集群大规模分布式的特点,由飞天和技术保障开发团队自主研发,并不断完善中的一套系统,其中子系统主要包括:基础运维、配管、生产变更、故障管理、集群容量、监控、集群运维等部分。从快速部署一套包括几千个计算、存储节点的飞天集群,到监控集群上万的任务和服务对象,运维支撑系统在可管理、可扩展、健壮性和自动化程度的提升,既是解放运维生产力的过程,也是云计算是否真正落地的重要标志之一。围绕飞天平台运维保障,从操作系统安装、飞天平台搭架、应用部署、变更发布、监控、容量管理、仪表盘(Dashboard),都有专门的运维工具实现,工具之间并相互关联和协同。
六、云运维面临的挑战
高可用!开发商开发者需要一个安全、高可用的网站环境开展业务,如何确保云计算平台和产品提供高可用性服务,是我们一直投入最大力量之所在。以故障管理为例,据相关机构统计,2012年国际知名云计算公司,先后发生多起云服务中断事件,此类事件的数量较2011年呈上升趋势,故障影响的周期从小时到天级别。分析这些故障背后的触发因素,包括代码bug、IDC电力故障、网络故障、设备故障、配置变更错误等诸多因素,可见云计算的风险隐患较之传统网站并不少,结合云计算平台自身所具备大规模等特点,故障在云计算集群因为规模化而存在被放大的隐患,故障恢复也因为海量数据等因素而延长,所以如何对于故障进行容错、容灾、有效隔离影响和快速恢复对于云计算运营商至关重要。面对这些挑战,阿里云产品开发团队和技术保障团队,把平台的高可用性放在最高优先级加以实现,这也是阿里云飞天平台重要的核心竞争力。其中,集群多Master HA、热升级、动态迁移、集群管理平台等,已经在产品中普遍应用;技术保障团队在故障预案、容灾演练、工具自动化和应急响应等方面,在不断改进和完善。
七、共创云运维生态系统
阿里云计算平台是一个开发的生态系统,其中围绕云计算的运维,是构成这个生态系统重要的生态链。从云产品开发商开发者的“轻”运维,到云平台运营商的“重”运维,相得益彰,相互促进,才能打造健康的发展环境。这条运维生态链充满潜力,例如可以为第三方运维工具开发商软件提供商(ISV)、第三方运维服务提供商提供平台,创造更细分和垂直的运维服务系统,丰富云生态系统,创造价值。以2012年11月的阿里云开发者大会为例,参赛作品中有相当比例是基于OSS和ECS等开发的管理类工具,这些第三方管理工具在云生态系统中,就可能找到自己需求方,从而产生价值。第三方运维服务商也同样可以通过提供更细分、定制化的服务内容,在云生态系统中满足开发商开发者用户的个性运维需求。
云计算方兴未艾,小荷才露尖尖角,精彩刚开始。运维作为云计算天然组成部分,会越来越展示其重要性,成为云计算核心竞争力之一。让我们携手所有的阿里云开发者共创一个健康、开放的云计算运维生态环境;让阿里云计算平台运维重如泰山,稳若磐石;让开发者运维举重若轻,轻松在路上。