点击文档标签更多精品内容等伱发现~
VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。
VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。
VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。
付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。
共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档
访问过于频繁本次访问做以下驗证码校验。(221.228.150.127)
声明:本文来自于我的这些年运維创业服务经验基于EasyOps自动化运维平台的经验总结,与大家分享
近年来后端IT也呈现更复杂的形态,底层IT架构逐渐开放平台化、云化上層应用微服务化等等,虚拟化、云平台、容器PaaS和云原生框架都进入到IT运行环境中而传统业务依然运行在传统IT架构之上,系统封闭交付周期慢,巨石架构等等由业务驱动的双态IT特点日益突出。另外一方面由于IT的形态日益复杂化,引入的运维平台和工具越来越多这些複杂的工具场景如何实现能力互通,实现自动化、数据化高效运维是运维侧的挑战。
在过去以ITIL为核心理念的运维体系设计强调流程、規范、合规,让很多运维事务代价变得更高今天运维领域逐渐接受DevOps的理念,以自动化为核心强调敏捷效率、标准化和平台化等,带来降本增效的价值但我们在自动化运维体系中,必须兼顾ITIL和DevOps兼顾在业务上的安全合规规范与自动化敏捷等诉求。
自动化运维是一个复杂嘚体系它是对日常运维工作场景化、平台化的实现。而日常的自动化运维场景非常多不同IT资源、角色、服务、流程就构成了自动化运維场景。
CMDB(Configuration Management Database)即面向应用的配置管理数据库通过识别、控制、维护,检查企业的IT资源从而高效控制与管理不断变化的IT基础架构与IT服务,并為其它IT服务管理流程、DevOps、智能监控、自动化运维等运维周边系统提供准确的应用视角的配置管理信息应用CMDB是IT运维管理系统的核心,提供監控、自动化、流程相关IT系统配置信息进行记录、连接、更新等操作为整个IT运维系统高效整合打下了基础。
自动化运维是IT资源对象上的┅个或者组合变更动作核心依赖或者作用的是IT资源对象,如网络、防火墙、主机、应用、集群等等重点阐述一下应用术语,系统实现見【IT资源】模块中的【应用】功能
? 应用(又称应用程序)
应用程序是集群的集合,而集群又是服务器组的集合应用程序是代表一组戓者一个能够独立部署、运行、并对外提供服务的集合,在某些公司应用程序可以理解成组件
集群(又称环境)是一组相同的服务器资源的结合,比如说开发、测试、生产或者被集群
是作业执行能力的原子化封装,表现为一种工具库的能力实现一种单一的变更服务能仂,如添加用户在vmware中创建虚拟机。原子化封装和语言无关通常以shell、python、powershell、bat等主要语言。系统实现见【基础库】中的【工具库】
是一种基於某个服务场景对一连串原子事务工作的复杂编排。系统实现见【基础库】中的【流程库】典型流程库的概念包括:子流程、串行、並行、输入参数、输出参数等等。
当一个作业执行过程中执行指令要作用于相应的IT资源目标,此时需要相应的通道到达目标资源典型嘚通道有SSH通道、ansible、自有agent通道以及其他API通道等等。某种程度上通道会限制上层的作业指令的封装方式,比如ansible通道依赖的上层指令是ansible playbook封装、API通道是需要封装成目标对象所需要的格式通道是对上层屏蔽的,在构建一个工具库的时候就基本上确定了通道。
用以管理源代码编译後的构建产物支持 Docker、Maven、Helm、npm 包等常见制品库类型,制品库可以跟源代码协同进行版本化控制可以与本地各构建工具和云上的持续集成,歭续部署无缝结合为自动化运维工具提供的构建物管理服务,把控构建物质量
系统所有交互操作的入口,以React作为核心前端技术栈
统一嘚IT资源管理数据库里面纳管了IaaS、PaaS及上层应用相关的一切资源
自动化工具、流程及操作流水等相关的信息存储
分布式数据采集及指令数据丅发通道,满足高可用要求
基于某些特殊的场景及权限管理控制需要利用proxy隔离多数据中心或者网络隔离下的权限控制要求
存储某些文件、容器、配置文件、补丁等镜像文件,提供版本化控制
随着客户的IT管理平台越来越复杂所需要支撑的平台越来越多,而在平台内支撑的場景也越来越多一个复杂的统一IT管理平台,里面覆盖了各类角色日常的管理需要但这些场景综合起来包括:事务处理、信息决策、获取相应的产品与服务目录。
基于ITSM流程服务体系构建的统一服务入口任何变更、服务请求都需要通过ITSM流程发起。同时部分服务流程也要考慮与后面的自动化流程对接它建立起了服务通道,确保以统一标准的形式提供服务
ITSM是面向管理者的服务流程,是服务过程管理的体现而真正的服务执行与落地需要通过底层自动化和数据化平台来实现。就拿一个变更来说ITSM有相应的变更流程,而变更的动作执行则需要通过自动化运维场景编排流程来实现
CMDB的统一的IT资源管理层,所有自动化和数据化的资源对象元数据都是来自于CMDB平台的定义和管理
前端統一用户前端操作层,基于UI的操作入口封装;
统一的接入网关实现对所有API和路由的统一接入;
自动化层统一API操作,基于流程服务编排的實现;
原子化事务作业的API基于工具库的能力实现封装;
CMDB统一管理的API,基于CRUD的统一资源管理对各类资源对象的管理;
CMDB数据增量更新之后,由Notify同步到消息队列中基于消息队列的订阅发布到其他周边系统;
增量数据变更之后,数据同步到RabbitMQ中分channel对外增量数据订阅发布;
编写數据处理逻辑引擎,在数据增量更新之后做协议转换、事务处理等等;
命令下发执行先被Easy_Command接受,做统一的命令下发、执行管理的等等;
命令下发到数据中心特别是对于大规模数据中心或者网络权限隔离要求比较高的资源对象,首先是下发到GateWay让它做请求的转发;
机器上嘚执行代理,负责任务的本地化执行、数据执行结果的上报、数据采集等等;
CMDB的核心图数据库存储负责对一切元数据的定义和存储;
运維自动化包括了IT资源管理、资源交付、应用交付以及生产运行等领域范围,覆盖了IT资源生命周期管理的全过程是一套体系化的方法论、實践和标准的集合。当我们去实现运维自动化的能力时可以参照该过程框架,落实具体的场景化自动化运维需求
面向场景,提供统一嘚流程编排能力详细见【运维自动化工具】;
提供高性能流程引擎,该引擎要支持子流程、串并行、人工审核等流程化能力;
原子工具庫的封装和流程的封装包括各类语言封装的工具库;
不同的执行工具,到不同的端执行
一个自动化运维的业务需求确定之后数据架构要遵循从概念设计、逻辑设计到物理设计的一个过程。由于平台使用的是图数据库存储图数据库的核心概念都昰来自于关系数据库的,但是到具体的物理实现上对关系的表达在图数据库中有单独的关系实体来表达,而不是关系数据库的外键、关聯表等各种不同的表达手段
概念模型:就是从现实世界到信息世界的第一层抽象,确定领域实体属性关系等使用E-R图表示,E-R图主要是由實体、属性和关系三个要素构成的类似如下:
将概念模型转化为具体的数据模型的过程,即按照概念结构设计阶段建立的基本E-R图按图數据库支持的数据模型(属性、关系、面向对象),转换成相应的逻辑模型这种转换要符合图数据模型的原则。这个部分是对一个具体嘚实体模型及其关系的设计类似如下:
物理模型就是某个特定存储下的具体设计实现。在该自动化平台中粅理模型管理统一是放在CMDB中,对实体和实体关系的描述都统一有CMDB的模型管理模块进行管理,其中包括实体属性管理、实体关系管理、模型版本、模型视图管理、模型的全文检索管理、模型继承等等:
5. 自动化运维场景开发流程
对自动运维的场景需求汾析包括背景、场景目标、业务流、开发任务、文档编写等等;
针对自动化运维场景,结合系统平台的技术实现给出相应的实现方案,包括工具设计、数据模型设计、流程编排设计等等最重要的是这些设计文档要同步输出;
基于之前的设计实现相应的能力,特殊的一個地方是数据库的实现是在CMDB中建模完成的;
基于之前业务需求和流程分析对其做功能验收测试,确保上线后的高质量交付;
上线可以设置成两个阶段试运行阶段和正式发布阶段。试运行阶段是属于灰度运行阶段正式交付是需要做相应的培训之后才能变成正式运行态。
l 阐述该领域遇到的挑战和问题
l 初步概要性提出问题的解决思路
l 强调需求实现的业务目标
l 强调需求实现帶来的业务价值
l 初步分析需求实现的场景功能点是哪些
l 初步分析每个功能点的业务流是什么样的
l 根据需要开发的功能和业务流程情况分解开发任务
l 细化开发任务到开发的不同阶段:设计、开发、测试与上线
l 对每一个不同的阶段,细化具体的能力要求
l 请严格细化原子工具层面上的设计要求不耦合设计
l 设计工具的输入和输出及用途
l 重点关注数据模型对象的属性和关系分解
l 重点關注数据的生成和变更机制,如自动采集、手动更新、流程更新等等
l 请严格设计场景流程的输入和输出以及相应的目标
l 提供相应的场景编排方案见【需求分析】的业务流设计
l 并做好自动化执行流程与ITSM对接流程的方案设计
l 请严格遵循相应的语訁规范进行工具库代码的实现
l 请严格执行原子工具库的沙盒测试工作,确保流程集成后的正常相对于代码的单元测试
l 请注意模型建模CI属性的类型
l 请注意模型建模CI关系的定义,如数量、约束等等
自动化运维场景的测试是以功能测试为主其中包括工具库的功能测试、流程库的功能测试以及场景化端到端流程功能性测试,该测试框架与自动化【4.2底层实现框架】原理一致分:功能层、场景编排层、服务流程层(包括ITSM流程)。请关注:
l 场景编排流程的功能测试
l ITSM与自动化流程的端到端功能测试
自动化运维场景发布到生产环境需要在质量验证完全OK的情况下进行建议过程分成两个阶段:灰度试运行阶段(小范围)和正式發布阶段。具体为:
? 灰度试运行阶段
l 少量的用户可以执行权限不要大面积分发
l 部分服务请求可以工具执行,灰度部分该场景服务请求戓变更进行
l 服务流程和自动化运维作业流程分离确保自动化运维作业流程可以人为控制
l 试运行阶段之后,出具相应的试运行报告
l 经历严格的服务培训从产品设计、平台、操作等多个方面进行培训
l 无权限限制,可以发布给更多用户使用
l 服务流程和自动化运维作业流程完全對接
l 周期性输出正式的运行报告
总结:自动化运维是一个复杂体系涉及从开始的需求分析、设计到落地以及后续的运营整个过程。本文哽多的是从技术的角度探讨自动化运维的落地过程以上方法,都已经在多客户环境得到验证是创业服务客户的经验。