本文共 1251 字,大约阅读时间需要 4 分钟。
大多数成功的DevOps组织使用各种特定工具自动使用几个核心类别中的工具:
配置管理。 当DevOps爱好者抛出诸如“自动化基础设施”,“基础设施作为代码”和“可编程基础设施”之类的短语时,他们谈论的是配置管理。这是跟踪和控制软件代码库的更改以及将所有文件版本归档到中央配置管理数据库( CMDB),这使得多个开发人员可以在相同的代码库上工作,同时避免版本控制问题。流行的配置管理工具包括 Ansible, CFEngine, Chef, Puppet, RANCID, SaltStack和 Ubuntu Juju。但真正的问题是您在配置管理方面需要什么?例如,如果您想要接收其他人提供的数据,然后对其执行某些操作,则需要一个能够很好地处理这些数据的工具。
应用部署。应用程序部署工具可实现版本的自动化,是持续交付的核心,也是DevOps的主要原则之一。Capistrano是一个部署库,是此类别中最受欢迎的独立工具。其他用于自动化应用程序部署的流行工具包括 Ansible, Fabric和 Jenkins。同样,关键是要找到一种工具来跟踪历史记录中的行为以更改日志 - 这对于dev和ops都是有意义的。
监测。DevOps需要两种不同类型的监控。应用程序性能监视工具(如 New Relic APM)支持代码级别识别和性能问题修复。在基础架构级别,服务器监控工具(如 New Relic Server)提供了对容量,内存和CPU消耗的可视性,因此可靠性工程师可以在出现问题时立即解决问题。关键是确保每个人都能看到数据,以便他们做出更好的决策。
版本控制。要实现DevOps的优势,不仅要对应用程序代码进行版本,还要对您的基础结构,配置和数据库进行版本控制。这需要编写所有源工件的脚本,但是收益应该是应用程序代码和IT系统和数据库的单一事实来源,允许您快速识别出错的地方,并通过推送来重新创建已知状态按钮。不再需要玩Sherlock Holmes来确定哪些版本的应用程序代码与哪些环境或数据库相关。虽然常用的版本控制工具包括 Git, Perforce和Subversion,但它们在支持DevOps风格协作方面的差异很大。
测试和构建系统。这些工具可自动执行常见的开发人员任务,包括将源代码编译为二进制代码,创建可执行文件,运行测试以及创建文档。此类工具包括 Ant, Gradle, Jenkins和 Maven。Travis和 BuildHive等托管服务提供了更多选择。
DevOps的正确工具链将自动化IT服务,提供对系统和应用程序性能的实时可见性,并为您提供单一的事实来源。但是,比单个工具的功能更重要的是,所有这些都与您组织的战略目标相匹配。这是最大化实现DevOps良好机会的方法。
当然,工具只是DevOps方程的一部分。您还需要创建一种文化,让dev和ops一起朝着相同的目标努力
转载于:https://blog.51cto.com/zhaoxiaolong/2341741