• 快捷搜索
  • 全站搜索

城商金融清算中心的自动化运维

2016-11-18 14:31:16作者:城市商业银行资金清算中心 周晔波编辑:金融咨询网
自动化运维即是一组过程、方法与系统的统称。本文首先分析了自动化运维的前提条件及其递进层次,并简要介绍了自动化运维的实施落地,提出了其中的两个痛点。

自动化运维即DevOps(DeveIopment)和Operations组合)是一组过程、方法与系统的统称。与两年前相比,城市商业银行资金清算中心(以下简称“中心”)的系统部署效率已经大大提升,开发与运维的合作也更为紧密。2016年国内相关的调研报告也指出:高绩效IT组织相比低绩效IT组织,部署代码频率高30倍,部署耗时快200倍,产品稳定性更高,部署失败地频率低60%,故障恢复时间大大降低。

自动化运维的前提条件

  1.标准化

  中心的标准化工作主要包括:系统软硬件的标准化、应用部署的标准化和高可用及负载均衡的标准化。在系统软硬件的标准化方面,采用了主流的虚拟化技术、存储克隆技术和SAN Boot等技术,使得无论是小型机平台还是X86平台等软硬件都能较轻易的实现模板化安装部署,部署的范围涵盖了操作系统、数据库和中间件软件等各个层面。另一方面,通过制定应用部署规范,固化了应用的安装路径、日志路径、各种层面的命名规则,明确了自动化环境准备的需求。在高可用架构方面,也固化为几类部署规范和模型,并形成了最佳实践,使得中心的PaaS(平台即服务)平台整体固化了下来。

  2.安全控制和权限分离

  安全控制主要包含最小化安装、访问控制和执行控制等三项内容。其中,最小化安装主要指系统软件和服务按照最小化安装原则,关停无关的服务;访问控制则主要通过网络访问控制、账户权限分离和密码策略实现;执行控制是在自动化维护过程中,要控制执行内容、分析执行性能。

  安全控制的核心是访问控制中的权限分离。权限分离就需要剥离各类角色和用户,主要针对操作系统、数据库、中间件,根据不同需要去进行角色划分。区分管理员用户、普通用户和只读用户等,并对于不同的用户严格限制权限。例如,数据库可以细分为:应用只读用户、应用程序配置用户、应用数据管理账户、数据库管理员巡检账户和数据库管理员账户等。

  对权限分离等安全控制过程进行精细化的管理,使之达到相对精细化的管理水准,是推动自动化运维的先决条件,能够有效地避免系统性风险的发生。自动化运维是把双刀剑,曾经出现过因为草率的自动化部署导致系统异常的案例,系统停运17小时,造成了重大经济损失。所以,一定要做好精准的安全控制。如果盲目地去推动自动化运维,必然会导致风险提高。

  3.技术团队

  完善的运维管理都是以人为本的管理,这也是自动化运维的根本出发点。重视人才、培养人才,调动技术人员的积极性,积极促成个人利益与团队利益的契合,形成具有高度责任感和技能的团队,才能有效地开展自动化运维,提升整体的管理效率。

  特别值得注意的是,对于自动化运维的工具和平台本身,也必须充分协调好其中的开发、测试资源,严格按照生产系统的维护管理方式,严谨地实施开发、测试和部署,切不可因为是运维团队主导的平台而不顾运维体系的流程和规范。

运维自动化的递进层次

  1.操作自动化

  操作自动化层次的特征是把运维一系列的手工执行的操作,用脚本或工具简单地串接起来,如:把多个Shell脚本串在一起执行,实现某个特定的操作目的。但是,这个层次的自动化,只是部分解决了运维手工执行的问题,一旦操作的条件发生了变化,Shell脚本等内容也要随时变化,运维的压力仍然很大,而且容易出错。这时便需要通过集中代码管理和测试,并同时部署执行时引入灰度方法,化解部分风险。

  2.场景自动化

  场景自动化的层次更近了一步,自动化运维(工具等) 能够根据外部环境判断如何运行,而这些判断条件是事先由运维人员定义好的。该层次的运维系统将各类环境数据作为判断条件,将环境变化作为场景变化输入,来改变操作行为。因此,该层次的自动化运维系统,实现了与其他相关系统的对接,比如:对接了配置管理系统、网络管理系统、监控系统、大数据运维模型、流程引擎、ITI L系统等,将技术和流程良好地衔接起来。

  3.智能化

  在智能化层次,自动化运维系统具备自身的数据核心(也就是运维大数据存储,将所有运营中的数据,按关联关系集中进行存储),具备根据数据自己分析和判断、并自我决策和执行的能力。在此层次,运维人员的主要工作,是为该智能化运维系统增添分析策略,操纵和维护该智能运维系统,以及在系统执行的关键节点上介入,做人工干预和判断。

  这个层次运维的价值最终将会体现在业务上的持续和连续,使业务系统安全和稳定地运行,体现出运维的服务化。所以,运维自动化(或者说是智能化)最终都要表现为运维的服务化,从而构建全面自动化的业务信息系统。

图片1.jpg
图自动化运维系统架构图

自动化运维的实施落地

  在自动化运维的实施落地过程中,我们主要使用的是轻量级的python+paramiko,尽量避免了因为需要自动化而增加节点负担,同时也无需因为平台调整而更改客户端。工作的重点主要是调整集中平台本身,而最后的展示和报表,则通过html方式展现。该平台的使用可以解决两个痛点。

  一是,测试环境的自动化运维。随着接入机构的日益增多,测试环境准备和部署一度成为了中心软件开发最大的瓶颈,耗费了大量的人力资源。中心通过两项措施,实现了自动化的测试环境准备——通过3年的改造优化和调整,测试环境中的主机平台,无论是小型机平台还是X86平台,90%以上采用了全虚拟化方式,能够最需扩展和分配测试节点以及系统软硬件资源;同时,在日常工作中,不断完善和动态调整各类需求表格,整合需求来为测试的PaaS平台业务服务。

  二是,日常生产的自动化巡检。由于中心是国内重要的金融基础设施提供商之一,承载着重要的社会和经济责任。因此,除了单纯的阀值报警、数据趋势分析和日志分析,中心还采用了自动化方式,收集整合各类信息和数据,格式化相关数据,让专业人员有更多的时间掌握系统运行状况并对疑似信息做分析预判。使得技术人员在分析判断的过程中,更多考虑的是场景逻辑和方法论。

自动化运维就是以人为本

  自动化运维不是消灭运维,更不是消灭技术人员。因此,中心在重视PKI、重视管理的同时,通过自动化运维,也体现出了对人才的重视。自动化的过程,是技术技能和人员素质快速提高的过程,是团队中操作人员向技术管理发展的过程,是整体团队能力上升的过程。

(文章来源:《金融电子化》杂志)

扫码即可手机
阅读转发此文

本文评论

相关文章