《企业私有云建设指南》一2.7.2 自动化运维工具
2.7.2 自动化运维工具
开源或商业的自动化运维工具有很多,本书并不能一一枚举。这里只对业内著名的开源配置自动化工具进行介绍。
Puppet:Puppet是一种Linux、UNIX、Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。Puppet把这些系统实体称为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。Puppet采用C/S星状结构,所有客户端和一个或几个服务器交互。每个客户端周期地(默认为半个小时)向服务器发送请求,获得其最新配置信息,以保证与该配置信息同步。Puppet使用一种建模方法来配置自动化配置清单,通过推送的方式来更新所有服务器。
Chef:该工具类似于Puppet,它也是使用编程脚本来实现服务器、操作系统和应用软件自动化部署和更新的。Chef使用Git编程语言,它能够提供非常详细和定制化的脚本,受到IT运维团队的青睐。
Ansible:Ansible是一款基于Python的自动化运维工具,集合了众多运维工具(Puppet、Chef)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。管理节点上的Ansible将命令通过SSH协议(或者Kerberos、LDAP)推送到被管理节点上并执行命令,通过这种方式能够在管理节点上控制一台或多台被管理节点,以执行安装软件、重启服务等命令。
Salt:Salt在配置自动化脚本或者部署应用软件方面的功能类似于Puppet和Chef。你可以通过使用Python或PyDSL编程语言创建定制化的脚本或模块,还可以下载预制模块。Salt的最大优势在于其伸缩性和弹性能力。
Git:Git是一个开源的分布式版本控制系统,用于Linux内核开发的版本控制工具,可以有效、高速地处理从很小到非常大的项目版本管理。与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不需要服务器端软件的支持(注:这需要区分使用的是什么样的服务器端,使用HTTP协议或者Git协议等不太一样。并且在push和pull时与服务器端还是有交互的),使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux Kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。
Foreman:Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通、配置管理以及报告功能,与Puppet一样,Foreman也是一个Ruby on Rails程序。与Puppet不同的是,Foreman更多地关注服务开通和管理数据中心的能力,如PXE启动服务器、DHCP服务器及服务器开通工具进行集成。Foreman可以与Puppet集成使用,通常是作为Puppet的前端接入。Foreman能够通过Facter组件显示系统目录信息,并且可以从Puppet主机报表中提供实时信息,能够自动化完成所有手工管理工作。Foreman还能够管理大规模(当然也包括小规模)的企业级网络,可能有很多域、子网和很多Puppet Master节点。Foreman也可以实现配置版本的回溯。
2.7.3 云环境下的新型IT运维体系
在企业私有云环境下,虚拟化通过资源优化整合,大幅降低了硬件投入、能源、数据中心的物理空间等成本,虚拟服务器正在承担着企业基础甚至核心架构的重任。但虚拟化却增加了IT运维的复杂性,加之很多企业都是重建设、轻运维,没有理念的转变和IT运维管理工具、运维策略的支撑,“后虚拟化时代”带来的这些新问题将会使得IT部门麻烦重重。
据调查,很多企业中云化的业务系统运行状况并不乐观。比如,IT部门优化了服务器资源,但网络资源却没有升级,一台实体服务器向外连接的带宽还与从前一样,如果被虚拟化承载的多个业务系统是跨越多个实体物理机进行部署的,那么网络性能与交换机背板带宽将成为虚拟机流量交换的“短板”,业务系统反而会因为虚拟化变得更加缓慢。因此,如果企业不能将业务系统里的基础数据导入IT运维最为关键的CMDB(配置管理数据库)中,而迫不及待地点击“安装”,等待他们的将是另一个危机陷阱。当然,我们也可以通过建立负载均衡来优化工作负载,或者对多个业务系统进行划分,把高CPU高I/O、高CPU低
I/O、低CPU高I/O、低CPU低I/O的不同业务应用系统区分开来,并放到不同配置的实体物理机上或纳入不同配置的资源池,以避免混乱划分带来的风险。随着每台实体服务器上托管的虚拟机数量增多,资源的整体利用率提高了,但业务系统的潜在风险因大集中反而更高了,此时实体服务器性能监测的重要性不言而喻。
如何构建云环境下的IT运维体系呢?基于云计算的弹性、灵活快速扩展、降低运维成本、自动化资源监控、多租户环境等特性,云环境下的运维需要从以下两个方面来考虑。
1)改变现有的IT运维管理工具。
IT运维工具需要能够管理IaaS平台。IaaS平台可以看作一个大型数据中心,它具有大型数据中心的异构化、虚拟化和大容量的特点,这要求管理云计算的IT运维工具必须具有标准化、虚拟化和自动化的特点:
①通过标准的数据采集方式管理异构的云平台。
②能够监控和管理虚拟化的云设施,包括虚拟服务器、虚拟数据库等。
③具有高度的自动化能力以完成对大量物理、虚拟设备的监控管理并能主动发现潜在问题、及时进行告警。
2)为用户提供SaaS模式的运维服务。
云的到来无疑给中小企业带来了利好消息,企业无须投入大量资金、人力进行运维管理平台体系的建设,只须购买基于SaaS的运维管理服务,即可享受先进的运维管理工具和运维管理体系。基于云的IT运维管理工具必须提供基于PaaS模式的标准软件接口,用户可以在云上添加针对专业设备的监控管理工具模块或开发个性化的运维功能模块,这样既可以满足自身业务的需求,也使云运维管理工具日渐完善。
构建云环境下的新型IT运维体系则需要注意以下三点:
1)打破原有各运维资源之间的分割,进行一体化监控和管理。
打破以往的运维分割,对复杂异构的IT资源环境(如网络设备、服务器、存储、安全设备、操作系统、中间件、数据库、业务系统、前端应用等)进行一体化监控和管理,保障IT基础架构稳定可靠运行、降低系统和业务应用宕机风险,实现提高运维效率和优化运维流程、控制运维成本的目标。
2)把安全管理作为体系框架的核心,针对资源池化的特点进行合理的控制与调度,实现资源的统一管理、安全运行。
在企业中,安全管理中心作为运维管理平台与资源池之间的连接纽带,便于信息安全管理的贯彻与落实;虚拟化资源池的建立可以实现IT系统对资源分配进行统一管理,同时,整合虚拟化管理平台则可实现统一运维管理。系统和应用的部署由人工操作变为模板控制,大大减少了对集成商和运维人员的依赖;原有对基础设施的维护分解为对物理机和虚拟系统的维护。当物理机或虚拟设施发生故障时,可调用不同的基础设施来替换,降低了发生单点故障的可能性;事件、流程、人员与安全中心并列,形成对资源池的全面管理,实现了资源的统一管理和安全运行。
3)建立业务导向的一体化管理,实现高效运维。
云计算体系下的运维目标首先应该以业务为导向,如新业务的快速部署、系统容量的平滑扩容、随需而变的资源分配等,根据业务目标形成IT服务的管理目标,保证IT服务达到要求的等级标准。其次通过自动化运维工具完成系统部署、配置管理以及监控报警等功能,降低故障发生率,提升故障发生后的响应处理效率,实现业务的快速恢复。最后通过改进运行维护服务能力管理过程中的不足,持续提升运行维护服务能力。
- 点赞
- 收藏
- 关注作者
评论(0)