运维自动化是从2010年以后起来的一个运维需求,10年之前,运维项目主要集中在监控和ITIL流程上,当时也有BMC Control-M等产品在推,但是客户接受程度和影响力不如监控和流程。10年之后,运维自动化提上日程,建行开始招运维自动化的标,IBM、BMC、HP都纷纷参与,测了三轮,最后HP opsware中标,只能说一句厉害!工商银行也在自己组织服务商做自己特色的运维自动化平台,做了3、4年,基本成型,服务商也做出了自己的运维自动化产品,正式推向市场。当时运维自动化的主要功能是五项:自动化巡检、配置管理、软件管理、合规审计、任务调度。配置管理主要是对网络设备配置的自动备份、恢复、配置比对等功能,和CMDB不是一回事!
          在金融行业中,实际上对于运维自动化需求最迫切的是证券行业。每天券商都要重复做两件事,开市和闭市。这两件事要按照固定流程在不同的机器上启动不同的应用,固定重复,有专人来做。但是问题来了,由于步骤比较多,人来做就容易错,券商错了可不得了,估计IT老大跳楼的心都会有!所以券商的自动化需求比银行还有火热。这时候有两家自动化产品提供商开始提供这方面的产品,说出来都是大公司:神州数码和宇信恒升(宇信易诚的子公司)。在自动化的江湖上斗得你死我活!话说回来,对于券商开市闭市,自动化产品可以代替人来实现,串行和并行流程、判断执行结果(甚至可以监控页面上小图标颜色的变化来判断执行成功与否)、动作回滚、出错告警、图形化展现流程进度和过程,图形化设定流程等。券商在上生产的时候很谨慎,先是一部分软件做,一部分人工作,发现准确无误后,开始软件做,人盯着,因为安全规定,人必须跟着。
         实际上每个行业对于运维自动化的需求都是不一样的。比如银行对于运维自动化的要求是配合运维保证业务的稳定性;券商对于运维自动化的需求是代替人执行重复性强的机械工作,以防止出现错误;当下很多企业在做运维自动化,使用免费的自动化工具,例如puppet等,实际上puppet功能很强大,但是相比商业自动化工具软件,缺少技术支持、代码无人负责来说,对于用puppet来说,需要几个条件才能用的很大:很好的学习能力;深入的不断探索精神;很强的代码能力;生产环境上允许容错和尝试。这几个条件对于互联网公司来说都不是问题,所以开源自动化工具在互联网行业是用的最好的。
         对于当前云时代来说,实际上企业面对的基本上都是私有云,虚拟化产品可能是虚机,也可能是docker,所以没法一言而盖之。但是要干的活归纳起来无外乎这些:部署测试环境,新业务上线、业务主机维护、保证业务主机的可用性和连续性、业务主机下线等。因为技术的不同,所以使用自动化的技术是千差万别的,不过在企业数据中心提供的服务生命周期中的位置是差不多的,这可以看做共性吧!:

         如何来在企业中实现运维自动化呢?我的建议是这样:
1 首先梳理运维的所有工作,那些工作可以纳入运维自动化范围,那些不能,做到心中有数,如图是我梳理的数据中心运维体系:
      
梳理完,整体考虑运维自动化如何来做!
2 在运维体系梳理的基础上,对能够运维自动化的操作进行标准化归纳,归纳出的操作规范就是未来自动化要执行的标准步骤
3  根据企业实际,选择合适的运维自动化工具软件
4 与研发的密切配合,找到更多的可以纳入自动化的运维内容
5  运维自动化实施的谨慎和专注
          根据企业业务的发展特点,使用符合运维实际的运维自动化工具来提供运维的能力和水平,但是万万不可着急,尤其是准备在生产中使用。至于用商业软件还是开源软件,就看您的了!