标准化配置管理软件,实现更平滑的DevOps

来源:互联网 发布:mac版铃声制作软件 编辑:程序博客网 时间:2024/05/29 08:06

如果您的组织使用不同的配置管理软件进行开发和操作,那么您并不孤单。更好的是,迁移到一个主要工具是没有工程专长的。

创新与标准化始终处于不利地位:标准化鼓励平庸,但缺乏打开混乱与混乱的大门。

随着软件定义的基础设施的出现,许多IT组织的战斗已经从设备和最终用户应用程序标准化转变为DevOps工具链和基础架构自动化,与配置管理软件一样。

配置管理和相关的自动化软件经常进入一个组织,感谢创意个人为提高效率而进行的尝试。组织通常拥有大量配置管理工具,通常具有重叠的功能,安装在不同的部门。个人偏好,特定工作或工作组的特质以及早期采用者说服力,创造出这种非标准化工具集。IT管​​理人员的问题是,如果能够对这些猫进行种植,并且如果在一个工具上实现标准化的好处,例如高效的代码共享,减少培训,可重复的流程,降低管理成本等等,都值得改变,不满的员工和现有代码和流程的修改。 

当涉及基础设施配置管理软件工具时,工具整合引起的干扰往往很少,因为流行的产品(如可复制,厨师和木偶)主要涵盖相同的工作流程。当然,每个都有独特的优势和劣势:厨师将模块集成到一个完整的安装包中,并且Ansible使用分布式,无代理,云优化的架构。每个系统都能自动完成标准的系统和应用程序配置,这意味着团队可以为每个人选择一个工具。

在配置管理软件的选择中,差异特征差异很少成为决定因素。例如,一位软件工程师发现,他加入的公司使用了厨师和木偶,但是之后不久就巩固了。更多的公司的基础设施已经在Puppet中自动化,所以没有太多的代码,工作人员不得不从厨师系统取代。在给定的配置管理软件工具中的经验和积累的代码基础,创造出不愿意学习其他东西 - 惯性通常是在两个或更多基本相同的工具中选择的最佳原因。在快速发展的DevOps和云基础设施领域IT团队没有时间进行详尽的比较和软件审查。

有合法的技术原因可以选择一种工具。该决定最终归结为所期望的结果,流程工作流程和用户的工作责任。对配置管理软件工具进行分类,将DevOps的两个部分(开发和操作)分开,并查看专为开发人员而设计的软件,并为操作定制。

应用和服务组装在开发工具中

配置管理软件起源于自动化应用程序开发。版本控制系统,如并发版本系统和Apache Subversion,以及构建自动化工具,如Make,将配置转换成可重复的脚本。几十年来一直是软件开发的主角随着更多的运行时基础设施变得虚拟化,将软件生命周期自动化的能力扩展到包括系统和应用程序配置和配置。

可配置,厨师,木偶和盐占据这个配置管理软件空间。根据云管理提供商RightScale(参见图)的云用户年度调查,几乎一半的受访者使用或计划在其组织中使用Chef and Puppet,Ansible第三名。这些配置管理软件供应商都在其客户群中引用主要的在线服务和大型企业。


这些配置管理软件工具中的每一个都使用流行的脚本或配置语言,如Erlang,Python,Ruby,YAML或自定义域专用语言(例如Puppet使用的)来描述系统的所需状态或如何程序地实现在可重用的文档中。虽然这些工具最初是为应用程序构建的 配置,它们已经集成了自动化虚拟基础架构部署的功能。例如,亚马逊网络服务(AWS)为其弹性计算云实例的OpsWorks配置管理软件平台采用了Chef。虽然OpsWorks可以部署实例和其他服务,但AWS上的许多操作团队更愿意使用基础架构模板服务(如CloudFormation)来管理实际的资源部署和扩展。应用程序和实例配置和基础架构模板之间的二分法很重要,因为许多组织最终都有多个配置管理工具。

基础设施配置,操作管理

除了虚拟CPU,内存,网络接口以及任何连接的存储卷等实例细节外,IT操作团队(如果有的话)不太关心虚拟机的内部配置,除了底层的操作系统。使用资源模板来标准化云或虚拟服务配置和自动部署的工具比自动化应用程序映像内部状态的软件更有价值。

基础设施协调软件 - AWS CloudFormation,Google Cloud Deployment Manager,HashiCorp Terraform,Tryolabs的Metamon项目 - 主要旨在部署新的云基础设施,而不是管理已经存在的机器的配置。例如,微软与HashiCorp合作使用Terraform来配置Azure服务。业务流程和配置管理软件并不总是足以自动化整个工作流程 - HashiCorp提供了Atlas套件来解决这个问题,并提供了从代码检入和映像创建到基础架构实例化和映像部署的整个应用交付生命周期的工具。

那个复杂的DevOps工具链

自动化是解锁高效,可重复,敏捷的DevOps进程的关键,但软件只是车辆。从一个明确定义和详细的手动过程开始,经过测试和改进。比尔·盖茨明智地表示,高效运行中的自动化提高了效率,相反也是如此。

尽管过程类别中的标准化是有价值和必要的,但复杂的多级DevOps工具链可能需要多个工具来自动化整个生命周期。简化部署过程和提高可重复性的日益普遍的选择是不可变的基础设施,它将服务器配置与应用程序代码集成到一个用作部署的原子单元的映像中。使用该模型的组织对配置管理软件工具的需求较少,而是侧重于源代码控制,映像打包和基础架构部署。

如果对DevOps和应用程序生命周期过程进行大修过于尴尬,那么最佳的行动计划就是将最少数量的工具标准化,以创建一个自动化的工作流程。

正确的配置管理和自动化工具取决于组织的更大的策略,包括云不知情; 支持多云或混合云; 云平台的选择,公共场所和场所; 任何遗留代码; 以及其DevOps人员的语言专长和偏好。


作者:Kurt Marko

原文:http://searchitoperations.techtarget.com/tip/Standardize-configuration-management-software-for-smoother-DevOps