常见开源运维工具应用场景与优缺点分析:Puppet、SaltStack、Ansible……

企业在发展,运维工作量在不断的增加,企业的运维工作面临着制度、技术路线,运维工具的选择等方方面面的问题需要解决,为了帮助大家解决这些问题,社区组织对企业中自动化运维平台的方案设计进行了深入交流。以下是嘉宾聂奎甲分享总结的企业级自动化运维平台方案设计应该先了解的6个问题,供大家参考阅读。

1.企业在运维管理过程中如何建立一套高效的运维管理制度为运维工作提供方向和依据?

运维制度的建立包括环境管理、资产管理、介质管理、设备管理、监控管理、网络安全管理、系统安全管理、恶意代码防范管理、密码管理、变更管理、备份与恢复管理、安全事件处置,应急预案管理等制度。

1) 运维管理制度是衡量运维工作的一把尺子,完善的管理制度能有效的提升运维工作效率,日常工作以管理制度为依据,按规定的要求和规定的流程操作既快速又准确;

2) 全面的运维管理制度能在问题和故障还没有出现没有造成损失前就被及时的发现,从而问题得到有效的处理,业务连续性得到了保障;

3) 运维管理制度为运维工作提供了规范化的解决方案,使运维人员在处理问题时有章可循快速找到问题的根本原因,把问题对业务造成的损失降到最低;

4) 运维管理制度是为业务服务的,业务是不断发展的,运维管理制度要跟得上业务的不断发展实现管理制度的创新。

2.企业在自动化运维过程中,对于运维人员有哪些要求?

企业在自动化运维建设与实际操作过程中,运维人员的工作有

1、监控运维:由值班人员724小时,维护监控工具,做简单的故障处理和告警通知。

2、系统运维:由系统管理员和DBA负责,处理系统级问题

3、应用运维:由应用人员负责,补丁更新、优化应用程序,支撑业务开发

以上3类工作划分,是IT组织架构中较为常见的运维分工。但是,在自动化运维过程中,企业需要进行大量二次开发,来实现自动化运维的工具化、平台化、定制化。因此就需要运维开发这个角色,但目前该角色定义比较模糊,传统运维角色也存在一个转型的过程。个人认为,自动化运维也是一个能将运维人员从后台辅助角色转变为保障业务质量领导者的一个过程。

3.开源运维工具的应用场景与优势?

开源运维工具常用的有Puppet、SaltStack和Ansible

1)Puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,很多大型IT公司均在使用puppet对集群中的软件进行管理和部署。

优缺点分析:优点是Web界面生成处理报表、资源清单、实时节点管理,push命令可即刻触发变更,缺点是相对其他工具较复杂、需学习Puppet的DSL或Ruby,安装过程缺少错误校验和生成错误报表。

2)SaltStack是一种全新的基础设施管理方式,部署轻松,在几分钟内可以运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

优缺点分析:优点是可以使用简单的配置模块或复杂的脚本,Web界面可以看到运行和监控的工作状态、事件日志,扩展能力极强,缺点是缺少生成深度报告的能力。

3)Ansible是新出现的运维工具,是基于Python研发的综合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。在进行大规模部署时,手工配置服务器环境是不现实的,这时必须借助于自动化部署工具。

优缺点分析:优点是模块可以用任何语言开发、备管节点不需要安装代理软件、有Web管理界面、安装运行简单,缺点是对windows备管节点需要加强、执行效率相对较低。

更为详细的比较分析请参考:

4.自动化运维技术路线选择?

自动化运维范围包括安装自动化、部署自动化、监控自动化、发布自动化、升级自动化、安全管控自动化、优化自动化、数据备份自动化等。

自动化运维系统包括商用自动化运维系统、开源自动化运维系统,自建(研发)自动化运维系统。

商业的运维系统在功能上要全面一些,服务支持上能好一些,更新与升级有保障,采购成本较高,对运维人员的技术要求相对较低。开源运维系统更灵活一些,服务支持需要运维人员自身多投入一些时间和精力,更新与升级更个性化一些,相对成本较低。自建自动化运维系统对人员的技术要求最高,成本也不低,但是当企业发展到一定规模后自建的运维系统才能更适合企业对于自动化运维的要求。

5.自动化运维平台模块设计需要遵循哪些原则?

自动化运维平台以ITIL标准为依据在此规范上开发的,第一阶段已经做到了业务流程的标准化,现阶段从事件管理子系统开始逐渐完善各个子系统,把各种配置当作服务来看待,CMDB也可以理解成统一的元数据库,比如说机房信息、服务器信息、人员信息、服务信息、业务信息以及他们之间的物理和业务拓扑关系等,上层的所有系统都应该关联到CMDB,以CMDB为中心,变更后的数据信息必须实时反馈到CMDB中,各个运维子系统才能看到最新的数据信息,确保其他系统能同步这份变更,以达到统一同步的目的。因此把CMDB系统当作运维的核心系统来对待,有利于后续各个系统之间的互通。

6.如何应对自动化运维工具大规模使用后带来的风险?

自动化运维平台运行时,对于大批量操作,如版本变更,批量发布等一定要经过测试后才能进行批量操作。

风险就是不知道执行的是否成功,有了校验也不知道校验的是否完全和执行是否成功。一般有了执行脚本就会有校验脚本。所以一下几点值得注意:

1、制定比较通用的校验架构,按脚本规范编写脚本利于脚本的校验;

2、有一些像配置核查的功能也能够帮助我们找出配置的不一致,这些校验功能帮助我们查出风险;

3、自己编写一些脚本各数据的脚本做成定时任务执行,定时的反馈信息;

4、还有就是一些报表,报表也可以校验数据。不同的校验方法针对不同校验级别的数据和功能。

还有限制一些风险的操作,例如:rm,像这些操作就要有审核机制或者其他管理方法。应对风险还有一种就是操作日志,可以通过操作日志进行方向操作能够找回数据。

聂奎甲:十余年工作经验,主要参与政府、电力、国土等行业的系统集成项目,包括主机存储、oracle数据库,精通计算机网络与安全。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019B0C7EX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券