非标机械设计论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

自动化运维体系建设关键点分析

2019-2-5 12:19| 发布者: airy| 查看: 213| 评论: 0

摘要: 近几年来,跟着云计算、大数据、人工智能技术的高速发展,DevOps、AIOps等新文化、新理念的冲击,几乎所有企业的信息技术部分都在谋求变革,不仅仅是为了跟上技术潮流,更是为了能适应跟着业务而一起发展的IT系统的 ...
  近几年来,跟着云计算、大数据、人工智能技术的高速发展,DevOps、AIOps等新文化、新理念的冲击,几乎所有企业的信息技术部分都在谋求变革,不仅仅是为了跟上技术潮流,更是为了能适应跟着业务而一起发展的IT系统的运维复杂度和体量,有的走的比较靠前的企业信息部分甚至完成了从支撑业务到引领业务、技术输出的转型。在这场席卷全球企业的变革中,自动化运维体系建设就长短常重要且基础的一部门内容。

   在日语中“动”与“働”是两个不同的汉字,发音和意义都不相同。“动”是直接从中文引进的,“働”则是日本造的汉字,主要用于产业工程领域。自働化是让设备或系统拥有人的"聪明"。当被加工零件或产品泛起不良时,设备或系统能即时判定并自动休止。通过"自働化"改善的设备或系统,可以达到两个目的,一个是不出产不良品(实现零缺陷),即用简便的机械替换人的劳作,减轻功课强度,进步工作效率;另一个是可以节省监控设备运行的看护人(实现省人化),既异常发生时的自动停机功能。 自动化所表达的只是设备自动运转,假如为了防止设备故障、外观破损、不良品产生等,则需要有专门的功课者负责监督;而自働化是有人字偏旁的,夸大的是人机最佳结合,而不是单单的用机械代替身力的自动化。所以,"自働化"与一般意义上的自动化不一样。 
   笔者以为,我们需讨论的自动化运维,实际上应该称之为“自働化”运维,整个体系里面,人的作用,或者说运维专家的作用,在目前的技术背景下是不可或缺的。但为了表述和理解利便,下文仍以自动化表述。 针对自动化运维平台,已经有很多技术专家撰文专门论述,其中大部门内容偏重于平台建设本身。而自动化运维体系则不仅仅包括自动化运维平台,还包括与之结合紧密的企业运维治理轨制、运维专家的作用、运维流程的演进等内容,仅仅完成平台建设是不足以达到自动化运维的目标的。 本文将以某大型金融企业自动化运维平台建设为例,结合治理轨制、企业文化和未来发展方向,与读者一同探讨自动化运维体系的建设。
   1、自动化运维体系综述 一个相对完整的自动化运维体系中至少应包括三类平台或功能组件:自动化变更平台、监控平台、数据平台(CMDB)。另一方面还需要包括一个契合企业实际的治理体系。这四个组成要素缺一不可。假如将自动化体系比作一个健康的人体的话,那么这四要素可以分别比作如下几个组织和器官: 手:自动化变更平台。变更平台是触发变更的工具和平台,它代替运维职员行使变更的职责,犹如人手进行的工作,它会实其实在影响企业的业务系统和基础平台; 眼:监控平台。这是一个轻易被忽视的建设要素,很多人会以为它和自动化无关,实在不然。深入思索一下,我们的变更动作实际上只有两类来源:业务需乞降自身不乱性要求。前者的变更结果需要得到反馈需要监控平台的参与,而后者则能清晰明白地告诉变更平台或运维专家有什么变更可能需要去完成。 血液:CMDB。自动化体系里面数据的活动是前面二者正确交互的条件,而CMDB就承载了这一任务,就比如人体中的血液,健康而充足的血液是各器官运转正常的条件。 神经系统:治理体系。俗话说,事在人为。治理体系的配套建设,就是一个自动化体系是否能保持运转高效的核心。另一方面,很多人以为自动化是双刃剑,它能带来便利也可能带来灾害。一套契合企业实际的治理体系,能将这柄双刃剑当做单刃刀来施展作用。 下文将结合企业实际,围绕这四个要素进行阐述。 就笔者所在企业而言,直接的建设需求有如下方面: A.同时知足系统自动化运维和应用自动化运维两部门内容;(笔者注:系统运维指操纵系统、数据库、中间件等基础环境运维;应用运维指应用系统的部署和发布) B.同时适应尺度化和非尺度化两类变更; C.支持多个操纵系统平台,包括LINUX\UNIX\WINDOWS; D.可由运维专家灵活定制运维流程; E.变更平台需要具备4A系统的特点,即集中认证(Authentication)治理、集中账号(Account)治理、集中权限(Authorization)治理和集中审计(Audit)治理。 非功能需求有如下方面: A.高可用。不仅仅是自动化平台本身提供的服务需要高可用,其执行通道,即平台与出产服务器之间的命令通道也必需是高可用; B.对外提供API或服务总线式的接口,以便更好地与其他运维系统,如CMDB相融合。
   2、自动化运维的手:自动化变更平台 2.1 代办代理选择 自动化变更平台,目前有saltstack、puppet、ansible等一些开源软件能很好地完成自动化变更任务,对于一些中小企业而言,采用这些软件并进行一些定制化开发是最直接、简朴的建设方式,能极大地缩短平台建设周期,降低建设本钱。但对于一些大型企业而言往往不采用这些开源软件,而采用自研代办代理的方式进行建设,主要有如下原因: A.开源软件的不确定性。在变更系统中采用开源软件,如碰到题目,则必需要解决,而解决的途径往往是通过开源社区(企业能投入大量精力研究源码除外)。这种将变更平台不乱性和开源社区热度变相捆绑在一起的方式,对于大型企业一般是不能接受的,变更平台是企业的手,必需保持绝对可用。 B.大型企业里操纵系统种类较多,大部门开源软件对不同操纵系统的支持并不完整。如要全部支持,势必要进行一些改造,或者采用两种以上的不同开源软件,在顶层自行封装。 C.开源软件提供的UI或功能页面往往不能知足大型企业的需求。在此情况下,企业要么全新针对其代办代理接口自研一套前端,要么在其基础长进行代码开发。不管采用哪种方式,其建设本钱都是很高的。
    笔者所在企业的自动化变更平台项目组,以java语言为基础,自研了一套适配所有主流操纵系统的代办代理,作为自动化变更平台的命令通道,经验证,命令执行并发数目可以达到2000以上。而文件传输通道,仍然采用FTP的方式进行,可以知足目前的需求。当然,假如企业大量采用容器化技术,大规模文件分发场景就成为一种必定,自动化变更平台就需要重新考虑文件传输通道的选择了,阿里巴巴自研的DragonFly(蜻蜓)就是一款比较优秀的基于P2P的文件分发系统,已经开源(https://github.com/alibaba/Dragonfly),有爱好的读者可以自行深入研究。 2.2 CaaS—Change as a Service(变更即服务)的探索 一如前文需求所述,自动化变更平台需要同时知足系统运维和应用运维的需要,项目组对该情况进行了深入的分析,并做了大量的行业调研,发现这两类变更有如下四个特点: A.都是基于操纵系统的变更,系统运维一般采用的是高权限操纵系统用户,应用运维则一般是低权限用户。 B.多数情况下都需要在多个节点上批量执行,而执行的范围一般会根据实际情况有调整。例如,针对某部门节点的重启和整个集群的重启。 C.都由多个变更步骤组成,例如系统安装某个补丁需要分为环境检测、安装、完成度检测等步骤,应用部署需要分为休止服务、程序包部署、启动服务、验证等步骤。 D.较难将这些变更提炼成少数几套固化下来的变更流程,尤其是在非尺度化还大量存在的情况下。 针对上述四个特点,我们提炼出一套可由用户,即运维专家进行自主变更流程定制的功能框架。概括而言,有如下特点: A.从主机衍生出来的变更节点。变更节点是在主机的基础上添加了操纵用户、节点属性两类新特性的全新概念。添加操纵系统用户主要是为了区分执行角色,例如linux环境的系统治理员使用root账号执行变更,而应用运维职员采用非root账户。 B.应对非尺度化的节点属性。节点属性可定义可不定义,在平台后端以KEY-VALUE的数据形式存放。设计这个属性的初衷是为了应对非尺度化的情形。例如,软件安装路径在不同节点上不一致,就可以定义一个软件安装目录(app_directory)的属性,其值就是该节点上软件的绝对路径,这样就可以通过脚本对统一属性名称的引用,来完成对所有节点中软件安装目录的遍历。当然,假如路径都同一,这些个性化属性就可以不定义,直接存放在同一脚本中。非尺度化情况越多,需要定义的属性内容就越多,我们通过这种形式变相地鼓励运维职员去尽量地完成尺度化工作。 C.原子化的流程步骤。我们商定,每个步骤里只放置一个功能上尽可能单一的脚本,选择对应的节点(含属性)与其绑定,组成变更流程的基本单元之一。原子化的好处很显著,就是易于理解、维护和更新。另外,我们还将人工审核、确认等操纵步骤也定义为可选的变更流程基本单元,以进步变更流程的灵活度。下图展示了一个用于启动应用的流程步骤。

鲜花

握手

雷人

路过

鸡蛋

相关阅读

QQ|非标机械设计论坛 ( 鲁ICP备18058044号 )

GMT+8, 2019-8-20 21:07 , Processed in 1.119561 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部