当前位置: 首页 > 科技观察

你需要了解自动化运维的设计思想

时间:2023-03-21 14:00:02 科技观察

需要了解自动化运维的设计思想包括系统架构、运维开发、负载均衡、分布式存储和云计算等,擅长大规模集群运维。三年云计算基础设施规划和OpenStack开发经验。  背??景  随着信息时代的快速持续发展,IT运维已经成为IT服务中最重要的一环。近年来,云计算、大数据等技术日趋成熟,生产应用的自动化运维也被推上了风口浪尖。通过传统方式运维大型计算机集群,即使是简单的日常备份、服务器状态监控和告警,效率也非常低下,自动化运维的需求迫在眉睫。  传统运维的弊端:  1.运维事件由人发起,运维人员被动低效。  2。系统高度异构,缺乏高效的运维流程。  3。随着云计算大数据的爆发带来更大的困难,一套高效的运维工具极度缺乏。  鉴于这些问题的存在,自动化应遵循四个现代化的原则:管理制度化、工作流程化、人员专业化、任务自动化。  以监控为核心的自动化运维概念  运维工作效率不高,主要原因是响应速度。因为大量的人长时间盯着报警页面,等待故障,然后通知相应的人员。因此,在生产系统中,需要将服务器状态监控作为自动化运维的核心问题。下图为自动化运维平台的处理流程图。监控驱动操作和维护事件的启动、处理和结束。ElkStack、Zabbix、Zabbix-Agent获取服务器日常工作状态和服务信息,并生成时序图等进行结果分析。  通过精准有效的告警策略,让专业的人做专业的事。生产系统实现了邮件、微信、短信告警等功能,可以根据故障类型和影响程度及时通知相应人员,并可以根据SLA升级事件。未来可以对微信平台进行持续开发,提供更多的功能,比如模板处理机制的问题。  例如当服务器磁盘使用率达到90%时,会自动通过微信将告警通知给相应的处理人员。此时,处理人员只需从微信中选择并操作相应的清理垃圾模板,如:数据修复模板、清理历史日志模板等,即可进行清理。  模板部署是自动化运维必不可少的工具  对于运维工程师来说,真正意义上的维护服务器的工作并不繁重。真正繁重的工作应该是环境的部署。有时环境的实现和部署会占据运维工作80%以上的时间。由于操作系统版本的不一致,系统环境的手动和随机初始化,以及不同软件包的版本更新等一系列问题,工程师在部署运维工具或公司产品。尴尬的局面。  因此,我把模板化部署作为自动化运维的第二部分。下图为自动化运维平台流程示例。Cobber可以模板化操作系统、系统初始化配置、软件包版本控制,使整个计算机集群的基础环境完全一致。减少因基础环境不同导致的部署错误。  当然,系统模板的标准化还不够。结合AnsiblePlaybook,我们还可以编写运维常用工具的脚本。这不仅是为了减少人为失误点,也是为了大大提高工作效率。同时,也可以通过Ansible进行并行配置管理。  我设计的运维平台有两个核心组件,分别是告警调度引擎(messageserver)和事件调度引擎(jobserver)。告警调度引擎主要用于分析每天的告警信息,通过告警事件、时间、机器、类别等维度生成图表。事件调度引擎的主要功能是根据相应的告警项自动处理事件,达到自动化运维的目的。  自动化技术思路  有了上面的图片和解决方案,相信可以带动大部分的运维效率了。但是,这真的是自动化吗?当然不是。自动化运维不仅仅是工具的创新,更多的是思维的转变和流程的优化。这将是一个不断改进的过程。  首先,运维需要标准化和流程化。其次,运维工具容器化,将常用的运维工具和公司产品内置到容器或VM中,最大限度地减少部署时间。第三,日常维护需要脚本化,通过配置管理工具实现自动配置维护,最大限度减少人工处理和参与。***,是自动化的。  我认为真正的自动化运维平台不仅仅是通过人或者技术来降低人工参与成本,而是需要结合运维产品最终实现智能运维。这样,产品本身就可以实现自我维护,从而形成一个完整的个体。  在我们多年的自动化运维平台建设实践中,往往花费最多的时间在运维流程优化、权限控制、日志审核等功能上。后期我们也整合了跳板机的功能,集成到我们的自动化运维平台中。  部署环境仅需20分钟。100台服务器同时上线效率提升35倍。日常的环境维护或者线上应用的部署,很少登录到单个节点上操作,只要通过系统统一平台操作,基本就可以搞定。我想,或许自动化运维只是Ops向DevOps转型衍生出来的一个特性吧!未来将进入全面智能运维时代。