企业自动化运维平台设计方案目录1.企业运维现状与发展趋势 (3)2.企业运维存在的问题与需求 (3)2.1运维人员的工作效率与工作主动性需要提升 (4)2.2需要建立一套高效的运维机制 (4)2.3缺乏高效的运维技术工具 (4)3.业务流程标准化与健全运维管理制度 (5)3.1实现业务流程标准化,为自动化运维打好基础 (5)3.2建立完整、全面的运维管理制度,为自动化运维的实现保驾护航 (8)4.自动化运维技术路线选型 (9)4.1自动化运维概述 (9)4.2开源运维工具的应用场景与优势 (9)4.3Saltstack 实现服务器部署的自动化 (14)5.自动化运维方案设计 (18)5.1自动化运维规划图 (18)5.2自动化运维平台模块设计 (20)6企业自动化运维方案总结 (21)1.企业运维现状与发展趋势随着企业信息化的不断发展,运维人员需要面对越来越复杂的业务和越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式来保障运维服务能灵活便捷、安全稳定地持续。
某企业从初期的几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、架构优化、过程优化等降低运维服务成本的因素越来越被人们所重视。
其中,自动化开始代替人工操作在企业的运维过程中逐渐体现出来了强大的优势。
运维随着企业业务的发展,自动化作为其重要属性之一已经不仅仅只是代替人工操作,更重要的是深层探知和全局分析,关注的是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。
通过自动化运维能最大限度地在更少的维修时间内实现运维目标,提高运维服务质量。
因此, 对于越来越复杂的运维来说,将人工操作逐渐改变为自动化管理是一个重要发展趋势。
2.企业运维存在的问题与需求某企业初期只有文件共享和邮件服务等几台服务器,运维工作完全由人工操作,随着企业的发展,新业务系统不断上线企业建设了中心机房,运维工作还是以人工为主,但是这一阶段增加了网络管理系统和环境监控系统,这两个系统在一定程度上减轻了运维的工作量,基本上实现了运维的半自动化。
企业在发展,运维工作量在不断的增加,企业的运维工作面临以下的问题及需要解决:2.1运维人员的工作效率与工作主动性需要提升在企业运维过程中,只有当故障已经发生并且造成业务影响时才能发现和着手处理,这种被动“救火”不但使运维人员终日忙碌,也使运维本身质量很难提高,导致IT 部门和业务部门对运维服务满意度都不高。
运维人员日常大部分时间和精力是处理一些简单重复的问题,而且由于故障预警机制不完善,往往是故障发生后或报警后才会进行处理,使得运维人员的工作经常是处于被动的状态,怎样才能在故障发生前及时发现并把故障处理掉,使运维工作变被动为主动?2.2需要建立一套高效的运维机制企业在运维管理过程中缺少自动化的运维管理模式,没有明确的运维人员角色定义和责任划分,使到问题出现后很难快速、准确地找到根本原因,无法及时地找到相应的人员进行修复和处理,或者是在问题找到后缺乏流程化的故障处理机制,而在处理问题时不但欠缺规范化的解决方案,也缺乏全面的跟踪记录,企业需要建立一套高效的运维管理制度为运维工作提供方向和依据。
2.3缺乏高效的运维技术工具随着信息化建设的深入,企业业务系统日趋复杂,各种各样的网络设备、服务器、存储设备、业务系统等让运维人员难以从容应对,即使加班加点地维护、部署、管理也经常会因设备出现故障而导致业务的中断,严重影响企业的正常运转。
出现这些问题部分原因是企业缺乏事件监控和诊断工具等运维技术工具,因为在没有高效的技术工具的支持下故障事件很难得到主动、快速处理。
3.业务流程标准化与健全运维管理制度3.1实现业务流程标准化,为自动化运维打好基础标准化是自动化运维的基础,想要实现标准化,首先识别各个运维对象,然后我们日常做的所有运维工作都应该是针对这些对象的运维。
如果运维操作脱离了对象,那就没有任何意义。
同样,没有理清楚对象,运维自然不得章法。
例如扩容,首先确定是服务器的扩容,还是应用的扩容,还是其它对象的扩容。
你会发现,对象不同,扩容这个场景所实施的动作是完全不一样的。
如果把服务器的扩容套用到应用的扩容上去,必然会导致流程错乱。
同时对于对象理解上的不一致,也会增加无谓的沟通成本,造成运维效率低下。
这种情况下的自动化运维不但不能提升效率,还会越自动越混乱。
实现标准化的第一步是物理基础设施的标准化,例如,识别物理对像服务器、交换机、机柜等硬件;识别这些物理对像的属性,服务器的序列号、ip 地址、厂商等信息;识别这些对像之间的关系,服务器所在的机柜、接入哪个交换机的哪个接口了等信息。
服务器物理基础设施的标准化如下图(其它设备的标准化以此类推):第二步是应用的标准化,应用服务、中间件,数据库等;例如,数据库的表、视图、存储过程的标准化,表的字段名、值,索引等,表和视图之间的关联关系等。
第三步是流程标准化,如备份、软件升级、杀毒,新业务上线等流程的标准化,下图是现在的运维流程:自动化运维是基于流程化的框架,将事件与IT 流程相关联,一旦被监控系统发现性能超标,超过预先配置的阀值或宕机,就会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。
自动化工作平台还可帮助运维人员完成日常的重复性工作,提高运维效率,下图是实现自动化运维的流程图:运维的自动化能够预测故障、在故障发生前能够报警,让运维人员把故障消除在发生前,将所产生损失减到最低。
由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时” 的运维。
3.2建立完整、全面的运维管理制度,为自动化运维的实现保驾护航运维制度的建立包括环境管理、资产管理、介质管理、设备管理、监控管理、网络安全管理、系统安全管理、恶意代码防范管理、密码管理、变更管理、备份与恢复管理、安全事件处置,应急预案管理等制度。
1)运维管理制度是衡量运维工作的一把尺子,完善的管理制度能有效的提升运维工作效率,日常工作以管理制度为依据,按规定的要求和规定的流程操作既快速又准确;2)全面的运维管理制度能在问题和故障还没有出现没有造成损失前就被及时的发现,从而问题得到有效的处理,业务连续性得到了保障;3)运维管理制度为运维工作提供了规范化的解决方案,使运维人员在处理问题时有章可循快速找到问题的根本原因,把问题对业务造成的损失降到最低;4)运维管理制度是为业务服务的,业务是不断发展的,运维管理制度要跟得上业务的不断发展实现管理制度的创新。
4.自动化运维技术路线选型4.1自动化运维概述自动化运维范围包括安装自动化、部署自动化、监控自动化、发布自动化、升级自动化、安全管控自动化、优化自动化、数据备份自动化等。
自动化运维系统包括商用自动化运维系统、开源自动化运维系统,自建(研发)自动化运维系统。
商业的运维系统在功能上要全面一些,服务支持上能好一些,更新与升级有保障,采购成本较高,对运维人员的技术要求相对较低。
开源运维系统更灵活一些,服务支持需要运维人员自身多投入一些时间和精力,更新与升级更个性化一些,相对成本较低。
自建自动化运维系统对人员的技术要求最高,成本也不低,但是当企业发展到一定规模后自建的运维系统才能更适合企业对于自动化运维的要求。
4.2开源运维工具的应用场景与优势1)Puppet 是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,很多大型IT 公司均在使用puppet 对集群中的软件进行管理和部署。
优缺点分析:优点是Web 界面生成处理报表、资源清单、实时节点管理,push 命令可即刻触发变更,缺点是相对其他工具较复杂、需学习Puppet 的DSL 或Ruby,安装过程缺少错误校验和生成错误报表。
2)SaltStack 是一种全新的基础设施管理方式,部署轻松,在几分钟内可以运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。
优缺点分析:优点是可以使用简单的配置模块或复杂的脚本,Web 界面可以看到运行和监控的工作状态、事件日志,扩展能力极强,缺点是缺少生成深度报告的能力。
3)Ansible 是新出现的运维工具是基于Python 研发的综合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。
在进行大规模部署时,手工配置服务器环境是不现实的,这时必须借助于自动化部署工具。
优缺点分析:优点是模块可以用任何语言开发、备管节点不需要安装代理软件、有Web 管理界面、安装运行简单,缺点是对windows 备管节点需要加强、执行效率相对较低。
4)Nagios 是一款免费的开源IT 基础设施监控系统,其功能强大,灵活性强,能有效监控Windows 、Linux、VMware 和Unix 主机状态,交换机、路由器等网络设备的网络设置等。
一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知IT 运维人员,在状态恢复后发出正常的邮件或短信通知。
优缺点分析:优点是配置灵活、监控项目很多、自动日志滚动、支持冗余方式主机监控、报警设置多样性。
缺点是事件控制台功能较弱、无法查看历史数据、插件易用性不好。
5)Zabbix 是一个基于WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
用于监控网络上的服务器或服务以及其他网络设备状态的网络管理系统,后台基于C,前台由PHP 编写,可与多种数据库搭配使用,提供各种实时报警机制。
优缺点分析:优点是企业级开源、功能强大、入门容易、数据可以图形的方式呈现、提供多种API 接口,可定制化开发。
缺点是深层次需求开发难度较大、报警设置复杂、缺少数据汇总功能、数据报表需要二次开发。
各种运维工具只是用于帮助人员进行运维的,每种工具都有其使用的优势领域,Puppet 适用于软件自动化配置和部署;SaltStack 适用于基础设施管理,在几分钟内可运行起来,很容易管理上万台服务器,速度够快;Ansible 适用于批量操作系统配置、批量程序的部署、批量运行命令等;Nagios 适用于IT 基础设施的监控系统,其功能强大,灵活性强,能有效监控各种操作系统的主机、交换路由设备等;Zabbix 提供分布式系统监视以及网络监视功能,用于监控网络上的服务器,服务以及其他网络设备状态的网络管理系统。
以上这五种工具都是开源的,运维人员可以根据企业的规模、业务需要、所要实现的运维功能等要求使用多种工具组合,发挥运维工具各自的优势,运维工具的使用需要人工的干预和决策,工具不能完全代替全部运维工作。
还需要结合实际业务逻辑和业务场景,把工具与业务融合到一起,例如,按业务要求对工具进行二次开发,更好的发挥运维工具的优势,提升运维人员工作效率。