前不久分享介绍了企业自动化运维的实施经验和工具对比。运维一体?如何从方法论的角度理解和构建自动化运维?这篇文章引起了很多读者的感受和思考。本文将运维爱好者提出的一系列关于自动化运维实施的具体问题和讨论结果进行梳理,总结成文档,供大家参考学习。一、自动化运维平台的风险问题一:如何控制自动化运维的风险?一、所有自动化功能模块的本质都落在代码层面,所以需要对自动化运维功能的代码进行测试,适合开发项目管理二、对于一些删除或修改操作,双重检查和回滚需要考虑方案,不能回滚的操作不能做(这其实和手动操作没什么区别);三是灰度策略,灰度可以用来验证自动化操作的结果是否符合预期。一致则继续,不一致则需要回滚;四是监控配合,监控系统能及时发现有问题的操作,及时报警;第五,权限管理,对于能够操作自动化运维平台的人员,需要严格的权限控制;第六,通过API连接的系统需要有认证机制。问题二:如何控制自动化运维平台的安全和权限?个人认为应该注意以下几个方面:对于网页操作,通过AD域和角色进行访问控制;接口调用需要相应的权限模块;对于运维平台本身,需要防止平台擅自删除、修改生产资源;定期对平台进行安全扫描,扫描平台自身的漏洞。2、自动化运维平台规划问题一:自动化运维建设应该如何规划?这个问题没有固定的答案。需要结合具体情况分几个步骤进行。最终目标是实现所有端到端的交付。一般来说,大致可以分为以下几个阶段:解决最紧迫的痛点(这里泛指运维团队自己的痛点或者其他团队提出的长期没有解决的问题);收集IT部门内其他组(开发和测试团队)的自动化运维需求,计划在内部解决;前两点问题解决后,将各点串联起来,消除点与点之间的人工作业;在初步形成的自动化运维链中查漏补缺,形成正反馈链。问题二:自动化运维建设如何制定标准化规范?标准化需要结合企业的具体情况。一般来说,需要标准化的有以下几个方面(供参考):ServerPod标准化,一个Pod放几台机器,如何连接;物理机类型,计算密集型,内存密集型,IO密集型或存储型,需要将不同厂商的模型归纳为几种标准模型;操作系统标准化,包括操作系统版本、操作系统内核参数、盘符路径等;软件安装标准化,包括软件版本、安装路径、日志路径、日志切割、参数调优等;软件部署标准化,双节点不能部署在同一台物理机同一机柜上,避免Rack级故障。问题三:在实际运维环境中,我们如何制定一套完整的自动化运维管理方案来支撑自动化运维工作?制定自动化运维方案,需要考虑以下几个方面:明确制定自动化运维维护计划的目的,这是制定自动化运维计划的指导思想;明确自动化运维计划服务对象的作用;明确不同对象角色在自动化运维过程中的出发点是什么;明确自动化运维计划实施过程中需要注意的安全问题(如权限细化、调用鉴权、操作审计等);通过调研进一步了解其他同事的运维需求;将自动化运维平台的建设在规划中明确划分为几个阶段,将各个阶段的需求进行分散;明确自动化运维解决方案作为自动化运维平台(自研、外包或基于外包二次开发)的具体实现方式;在自动化运维方案中指定平台使用过程中的正反馈流程。问题四:自动化运维的建设应该分几个阶段进行?应该如何规划?这个问题没有固定的答案,需要结合具体情况进行几个步骤。最终目标是实现所有端到端的交付。大体上可以分为以下几个阶段:解决当前最紧迫的痛点;收集IT部门其他组(开发、测试团队)的自动化运维需求;解决了前两个点的问题后,将每个点串联起来,以消除点与点之间的人工工作;对初步形成的自动化运维链条进行排查补漏。三、CMDB数据采集问题问题一:如何实现CMDB建设过程中的自动发现?CMDB的自动发现一般基于以下几种方式:通过调用采集软件的API接口获取相关信息,如VMware、EMC存储等;通过某种协议(公共或私有协议),如SNMP获取相关配置信息;通过在主机上执行命令并对结果进行处理,比如抓取主机上中间件的信息;通过执行中间件命令来获取信息。自动发现一般通过上述方法的组合来达到自动发现的目的。问题二:自动化运维建设中如何选择CMDB自动采集数据?这个问题有点大。具体来说,在数据采集方面,如果要全面采集CMDB数据,需要从两个方面考虑:一是CMDB采集工具本身的自动采集能力,二是有些数据需要业务系统名称、业务系统运维负责人、开发负责人、测试负责人等,通过流程监督人工录入。这些信息自动收集工具无法收集。是的,需要人工维护。如果需要搭建CMDB系统,有3种思路:完全自研,需要团队研发能力比较强,有的人对ITIL流程比较了解,自动采集速度慢;直接购买商用CMDB产品,优点是可以快速上线,自动采集能力强,缺点是有些需求可能不能直接满足,需要定制开发;基于开源产品二次开发,比如基于IOP,但是自动发现能力还是需要自己实现,优点是有基础可用的框架。问题三:如何同时保证CMDB数据的实时性和一致性?实时性:保证CMDB数据的实时性需要依赖CMDB工具的自动采集能力;一致性:一致性需要过程控制和定期的数据审计操作,数据审计操作可以借助CMDB平台的能力来实现。4、运维工具的选择问题一:选择自动化运维工具应该考虑哪些因素?在选择自动化运维工具时,笔者认为应考虑以下几个方面:自动化运维工具的成熟度,即行业受众。无论是商业的还是开源的,你都可以从这个角度去评估;自动化运维工具的功能是否能满足运维需求;如果选择开源的自动化运维工具,还要考虑工具的技术栈和公司人员的技术栈是否匹配;自动化运维工具在安全方面是否有良好的支持;自动化运维工具在工作过程中对主机性能的影响,特别是并发量大时,对运维工具平台本身服务器的影响压力;还要考虑选择的自动化运维工具是否满足公司后续技术栈的发展需求。问题二:运维工具在自动化运维建设中的规划与集成?目前,大多数公司确实存在这样的问题。在我看来,问题存在的主要原因是前期缺乏宏观统筹,各单位各行其是,没有统筹管理。那么我们如何应对现有的现状呢?在我看来,需要做以下几件事:需要建立一个治理组,成员包括现有各个系统的Owner,然后由一个leader作为组长;建立这个系统的背景,这个系统现在可以解决哪些问题,还有哪些问题还没有解决;根据第二步的讨论结果合并可以合并的系统,合并不能合并但功能重叠的系统。统一开放输出;后续的新系统需要治理团队统一规划,避免类似的事情再次发生。问题三:如何选择自动化运维产品?自动化运维涉及面很广。一般大家讲的包括资源自服务、监控、调度任务、应用发布等。所以在选择产品的时候需要考虑以下几点:梳理自己的痛点,也就是目前最需要解决的问题是什么;规划:你打算在3年内达到什么效果;所选自动化运维平台产品成熟度(同行业案例数);自动化运维平台的发展程度,是否可以进行二次开发或支持功能扩展;平台的技术框架是否为主流技术框架;通过试验检验与当地实际情况的结合程度。5.其他问题1:AIOps和自动化运维有什么关系?AIOps是自动化运维的一部分。该技术应用于现有Ops平台时,一般与大数据技术结合使用。问题2:是否可以结合当前一些先进的技术,比如云计算、大数据等,让自动化运维更加高效、智能?结合云计算能力,快速扩展自动化运维平台的服务能力;结合大数据和人工智能技术,可以让自动化运维平台提供更强大的功能,这就是现在很多人关注的AIOps。风险需要人工审核。例如,如果某个行为是基于大数据和人工智能技术自动操作的,那么当你第一次开始使用这个技术时,你需要手动进行双重检查并分配优先级和重要性级别。对于低优先级和低重要性可以自动处理。问题三:在运维的侧重点上,传统企业和互联网企业有什么区别?传统行业与互联网在运维环节的区别主要有以下几个方面:运维编码:传统行业的运维更多的是停留在人工运维平台的层面,甚至是纯人工操作,而互联网更多的是通过代码来运维,避免人工操作,这也是为什么互联网公司对运维需要开发能力;电化和线性化:传统行业的运维在不同时期购买了很多运维平台,每个运维平台都是独立离散的。而互联网运维平台大多是线性的,可以实现端到端的交付和连接;对人员的要求不同:互联网公司需要一定的开发能力或者对一些原理(代码层面)的深入理解,而传统行业对操作层面的要求更高。问题四:自动化运维平台如何更贴近业务?及时发现业务中已经发生的风险和将要发生的风险?自动化运维要更好的贴近业务,需要收集业务的自动化运维需求,通过平台来满足业务的自动化运维需求,这是第一步。其次,需要对业务系统进行监控。在此基础上,需要将风险指标与业务进行沟通,将风险指标量化,配置在自动化运维平台的监控系统中,724小时利用平台的监控能力监控。当指标达到报警阈值时,将通过短信、微信、邮件等方式发出报警***,通过大数据分析与AI相结合,逐步完善风险指标配置,形成正反馈链适用于各个业务系统。问题五:传统IT运维与自动化运维有什么区别?之所以会出现半自动化运维,是因为这些解决方案都是点问题,每个点的人工操作都变成了脚本化或者平台化的自动化动作是离散的,本质上是点而不是线,更不用说飞机了。真正的自动化运维是实现端到端的自动化交付,也就是把从开发到测试再到运维的整个环节自动化,免去人工操作。举个例子,创建一个Redis中间件,半自动化的做法是:在虚拟化平台上申请一台机器;为网络分配IP地址(手动);通过另一个脚本初始化机器(手动执行脚本);通过安装脚本安装Redis(手动安装);向申请人发送电子邮件或手动通知。自动化的做法是:提交创建Redis需求,自动化平台会做所有的工作,然后调用邮件接口通知申请人。问题六:如何界定自动化运维自主研发的边界?能自主可控,能充分发挥和提高员工的能力吗?自主可控的思维方式有两种,一种是完全自主开发;另一种是基于购买的自动化运维平台进行二次开发。对于第一种情况,要求公司人员具备一定的开发能力。优点是可以充分结合当地的需求。缺点是对人员要求较高,平台成型较慢;对于第二种情况,需要购买平台技术栈,实现与公司开发或运维人员相匹配的平台,并要求平台开源代码或提供丰富的二次开发接口。优点是可以快速满足至少80%的需求。缺点是需要了解现有代码。不够灵活。以上关于企业自动化运维实施的18个问题的解答希望对各位小伙伴有所帮助~笔者介绍汪洋,某基金公司信息技术部基础架构师,曾在金融行业工作蚂蚁金服云部和商业银行IT。信息技术部等专业领域:云计算IaaS和PaaS平台规划和建设基础设施高可用、高性能和容灾设计、容器化(Docker)和微服务等。
