在过去十年里,云计算从一个概念迅速发展成为一个大家普遍接受、并广泛应用于实际生产中的新型IT基础设施。尤其是在公有云IaaS领域,以AWS、阿里云为代表的厂商取得了令人瞩目的成就。如此同时,和云计算几乎同步发展起来的DevOps理念也随着云计算的普及而逐步被人们接受,并成为主流的软件生产方式。
根据Puppet Labs 2014年度调查报表显示,目前有超过半数的受访者已经在实践DevOps。并且该调查报告还显示采用DevOps软件生产方式是企业打造出高效IT服务能力的有利武器,而一个高效的IT服务能力能够把软件和服务部署的频率提升30倍、同时降低50%的失败率。因此,我们认为企业IT领域正处在重要的变革器,即:IaaS和DevOps已经变成企业IT领域的新常态。随着IaaS及DevOps成为新常态,企业IT系统的运维管理体系也需要做出明显变革,以适应新常态的需求。
一、新常态下的IT运维管理变化
从IT系统进入企业起至今已经有几十年的发展历史。在这个过程中,IT运维管理也逐步成熟起来,并形成了以ITIL为代表的完整运维管理体系。 ITIL以传统IT服务为管理目标,提出了一整套从系统设计、实现到运维的完整流程。这个体系强调流程与规范,以对内输出服务为主要目标。但是,现如今的企业IT服务已经不再仅仅是企业内部的业务支撑系统,而是需要直接面对最终用户,快速响应市场变化,并已经成为企业核心竞争能力之一。这些新情况对以 ITIL为核心的传统运维管理体系提出了迫切的变革需求。而 IaaS 和 DevOps 成为新常态后,这种变革需求则变得更为直接和具体。
变化一:IaaS成为新常态后,企业的运维管理重心转到应用运维
在IaaS出现之前,企业的IT运维管理职责一般包括基础运维和应用运维。这种职责划分甚至都能直接映射到很多企业内部运维团队的组织架构上。很多公司的运维团队就会分成以基础运维为主要职责的基础运维团队,以应用运维为主要职责的应用运维团队,部分公司还会有支撑如上两个团队的运维开发团队。但是,IaaS成为新常态后,企业的基础设施已经变成IaaS平台,其基础运维工作已经完全由IaaS平台供应商负责。而最终企业用户则只需要关注应用运维层面的工作。这会导致很多以基础运维为核心和出发点的工具(如传统ITOM管理软件)及其实践方式都不再适用。当然,采纳IaaS后,整个运维管理团队必须要有自己的云平台策略,并为之配套相应的运维管理工具,以充分发挥IaaS平台的优势,做好应用运维这个重心工作。
变化二:DevOps成为新常态后,企业的运维管理目标转为持续交付
在传统软件生产方式中,Dev和Ops两个团队相对独立,甚至因为组织结构上的原因形成了隔阂。这种情况对于给最终用户交付IT系统价值非常不利, 并经常导致整个运维管理流程以控制变更为目标而忽视交付给最终用户的价值要求。DevOps则强调让Dev和Ops相互融合,并以大化交付价值为最根本的追求。这种思想下的一个重要原则就是持续交付、快速迭代。为执行这个原则,自服务IT、自动化一切、持续部署等最佳实践被广泛采纳。同时,IaaS平台提供的“可编程”基础设施让这些最佳实践更容易得以实施并极大推进了DevOps软件生产方式的落地。
二、Iaas和DevOps成为新常态下的企业IT运维管理面临的问题
在IaaS和DevOps成为新常态之后,企业的IT运维管理同样会面临着一些新问题。具体总结为如下几个方面。
问题一:IaaS成为新常态后,如何统一管理不同云平台的资源
当企业决定采纳云平台作为其IT基础设施,就需要面对统一管理不同类型基础设施的问题。部分基础设施为公有云平台资源,部分则可能来自遗留的企业内部虚拟环境或者物理机。即使无遗留IT基础设施,企业也经常选择多家公有云平台来避免被一家供应商锁定。另外,出于业务安全或者合规要求,企业非常有可能采用混合云架构。下图来自RightScale 2015年企业采用云计算平台现状的调查报告,其调查结果也佐证了这个观点。
当混合云成为普遍选择时,企业IT资源的统一管理就会成为一个新的挑战。例如,企业经常需要面对下面几个问题:
◆如何统一管理公有云主机、私有云主机和物理机?
◆如何以应用视角管理基础设施?
◆如何集成云API,实现自动伸缩?
新型IT运维管理体系只有解决以上几个基本问题才能实现对于不同来源基础设施进行标准化无差别管理,同时也充分发挥IaaS平台带来的弹性基础设施的优势。
问题二:DevOps成为新常态后,如何真正实现持续部署和交付
如前所述,现如今IT系统的交付周期越来越短。而且还需要在持续交付的过程中保证服务的高可用和性能的高稳定。但是,整个IT系统的持续部署和交付需要一个较长的流程来保障。例如,下图就是一个典型的从代码到最终服务的流程。
在这过程中,阻碍整个持续交付流程顺利进行下去的常见问题有:
◆如何建立统一的Artifact仓库?
◆如何保证测试环境和生产环境的一致性?
◆如何在部署后实现快速反馈?
企业在实施IT持续交付过程中经常会因为未解决以上常见问题而导致最终的持续交付流程流于形式,未能达到支持业务创新的目标。
问题三:IT服务能力成为企业核心竞争力后,如何高效运维管理越来越庞大的IT系统
随着互联网+浪潮的逐步深入推进,企业IT系统承载的业务会越来越多,也越来越重要。这也意味着需要更高效的运维方式管理越来越庞大的IT系统,尤其是需要管理日益增多的虚机。同样来自于RightScale 2015年的报告,大部分企业的虚机数量已经超过50台(如下图)。
一般来说,超过50台虚机的规模意味着传统手工运维管理已经很难保证效率和质量。这时企业就会在日常运维管理中,遇到以下常见的问题:
◆如何同时给1000台虚机打补丁?
◆如何实现端到端的监控?
◆如何实现故障自动修复?
要解决企业IT系统规模增加带来的运维挑战,自动化成为现代运维管理系统普遍的选择。这其中就包括自动化构建、自动化测试,自动化部署、自动化修复等一系列最佳实践。
三、新常态下的IT运维管理解决方案
针对IaaS和DevOps成为新常态下的IT运维管理需求,传统以ITIL为标准的ITOM管理软件及相关运维管理实践已经无法适用。克服这些问 题,除了需要新的理念,新的组织架构,也同样期待新型的统一云管理平台(Cloud Management Platform,CMP),这个平台需要具备如下几个方面的能力:
◆管理平台能够统一管理不同来源的IT基础设施,解决企业IT基础设施碎片化的问题。同时需要深度对接主流IaaS平台,响应企业业务对于新型IaaS的需求。
◆管理平台需要以应用为核心构建整个管理体系,而不再是以管理IT基础设施为核心。无论是IT资源的组织方式、服务监控告警的展示方式,还是各种日常运维的操作和部署都需要从应用的角度设计。
◆管理平台需要提供一站式的全栈工具链集成能力,让开发、测试和运维人员都能在其上对于一个应用进行协作和管理。并且,这个平台还需要能够构建应用的全面反馈体系(需要全面的自动化测试和监控),并基于这个反馈体系实现整个工具链的自动化。
对于企业级用户来说,选型统一的云管理平台也就需要充分考虑以上这些要素。具体实施来说,企业可以有以下几种可能途径:
◆基于IaaS平台控制台及相关管理类服务搭建。这种方式是企业用户最容易上手的途径,尤其是在企业IaaS供应商非常单一的情况下可以很快有初步结果。但是这个途径的大风险在于会被某一个IaaS供应商所锁定(lock-in)。越深入的使用云供应商的管理服务就会越深的被它锁定。
◆基于开源软件完全自建。自建自己的统一云管理平台对于很多企业用户非常有吸引力,尤其是在开源软件如此丰富的今天。如果选择自建云管理平台(尤其是直接利用开源软件搭建)时,企业用户要非常注意传统平台经常会出现的“烟囱效应”,即不同应用场景下使用的工具完全不一样,且相互的信息无法打通。例如,运维管理平台最基础的CMDB层应该在监控、运维以及代码部署等很多运维场景中复用,以便始终保持数据的一致性,降低运维维护负担。但是常见的开源软件基本是以单一场景出发,并未提供一体化解决方案,所以需要用户自身来完成相关整合工作。另外,企业好还要评估自建平台的成本及收益,做到有的放矢。
◆购买第三方独立供应商软件。目前,在市场上存在的第三方云管理平台大致可以分成两类。一类是以传统运维管理平台演化而来的产品(包括CA、 BMC、IBM等),这类软件对基础设施层管理能力比较强,非常适合公司云基础设施集中管理(包括权限管理、账号管理、费用管理、审计管理等)。而另外一 类则是以RightScale为代表的新型云管理平台。这一类产品则更多的关注云上应用管理(包括应用监控、运维和部署等),非常适合面向公司内部云上应用的开发、测试和应用运维人员。
对于企业级用户,在确定公司的云战略中,云管理层会是一个非常必要的组成部分。无论企业最终选择那种方式来实现,好都需要在规划阶段就能够仔细考 虑,使其成为公司云战略的一部分。这样才能在未来更好的实施云战略,并促成公司达到采纳云的初衷:利用IT能力加速企业的业务创新。