在上一个博客中,开发运维 –通过组织变革实现成功’我们了解了DevOps的基础知识及其在软件开发中的优势。 DevOps运动推动IT部门改善开发人员,系统管理员和测试人员之间的协作。它还可以提高部署速度,缺陷检测和功能交付。但是技术领导者正在学习DevOps首先是组织的变革。 “执行DevOps”更多地是关于更改流程和简化部门之间的工作流程,而不是使用新工具。因此,将永远不会有一个包罗万象的DevOps工具。
开发运维采用的工具
但是,如果没有合适的工具,软件开发流程将无法高效运行。同样,对于DevOps,您始终可以从正确的工具集中受益。这些工具有助于信息共享,流程自动化,减少部署时间并最终实现连续部署。最常见的DevOps工具是持续集成,配置管理平台和容器化工具。持续集成工具用于自动化测试和反馈过程,并建立文档跟踪。这些用于立即识别和纠正代码库中的缺陷。配置管理工具主要用于跟踪和控制软件中的更改。这些从代码中提取基础结构组件以实现自动化,并保持软件的持续交付。其他工具可帮助标准化构建,改善开发人员与系统管理员之间的协作或监视系统。
5套DevOps工具
根据DevOps生命周期特定阶段的用途,DevOps工具可分为五类。
1.持续集成:詹金斯,特拉维斯,TeamCity
2.配置管理:Puppet,Chef,Ansible,CFengine
3.连续检查:Sonarqube,HP Fortify,Coverity
4.容器化:Vagrant,Docker
5.虚拟化:Amazon EC2,VMWare,Microsoft Hyper-V

持续集成工具
詹金斯
詹金斯是用Java编写的开源持续集成服务器。它可以帮助开发人员持续构建和测试软件,并监视外部运行的作业,例如cron作业和procmail作业。它增加了自动化规模,并在DevOps圈子中迅速流行。 Jenkins几乎不需要维护,并且具有内置的GUI工具来轻松更新。 Jenkins提供了定制的解决方案,因为有400多个插件可以支持几乎任何项目的构建和测试。
团队城市
团队城市(TC)是主要的多合一,可扩展的连续集成服务器。该平台使用Java编写,可通过JetBrains获得。该平台受其他100种现成可用的插件的其他框架和语言支持。 TeamCity安装确实非常简单,并且针对不同的操作系统具有不同的安装包。
特拉维斯
特拉维斯 CI是一种开源托管的分布式连续集成服务,用于构建和测试GitHub上托管的项目。可以使用安装的不同软件将Travis CI配置为在一系列不同的计算机上运行测试。
配置管理工具
木偶实验室
Puppet可以说是这些配置管理平台中最完善的。 DevOps推动力是由喜欢他们的声明性编程语言的简单性和更柔和的学习曲线的操作人员驱动的组织倾向于使用它。 Web UI可以很好地用于管理,但不允许灵活配置模块。报告工具开发完善,提供了有关代理行为方式以及进行了哪些更改的详细信息。
厨师
厨师是一个系统和云基础架构框架,可通过称为“食谱”的短而可重复的脚本来自动化基础架构的构建,部署和管理。对于那些有能力通过Ruby驱动的平台进行基础结构编程的人员,Chef倾向于提供比Puppet更大的灵活性。结果,Chef往往会受到DevOps计划更受开发人员支持的组织的青睐。
Ansible
基于Python构建的Ansible,结合了多节点软件部署,临时任务执行和配置管理。 Ansible更适合于更大或更同质的基础架构。它使用无代理架构。可以从命令行运行Ansible,而无需使用配置文件来完成简单的任务,例如确保服务正在运行,或者触发更新和重启。
连续检查工具
声纳曲贝
SonarQube是管理代码质量的中心位置。它提供跨项目的可视化报告,并允许重播过去的代码以分析度量标准的演变。它是用Java编写的,但是能够分析大约20种不同的编程语言的代码。
惠普要塞
惠普要塞静态代码分析器(SCA)可帮助验证您的软件值得信赖,降低成本,提高生产率并实施安全的编码最佳实践。它扫描源代码,确定软件安全漏洞的根本原因,并对结果进行关联和确定优先级。从而提供代码行指南来消除安全漏洞。
集装箱化工具
码头工人
开发运维团队使用此容器化工具作为开放平台,使开发人员和系统管理员可以更轻松地将代码从开发推送到生产环境,而无需在整个应用程序生命周期中使用不同的冲突环境。 Docker通过其容器化技术为应用程序带来了可移植性,其中应用程序以可在各个平台之间移动的独立单元运行。它提供了标准化以使操作人员感到满意,并提供了使用几乎任何语言或工具链的灵活性,以使开发团队满意。
流浪汉
流浪汉是一种开源产品,称为虚拟机(VM)管理器。这是一个很棒的工具,它允许您编写脚本和打包VM配置以及具有多个VM的配置设置,每个VM都有自己的配置,并由puppet和/或Chef管理。
虚拟化工具
亚马逊EC2
Amazon Elastic Compute Cloud(Amazon EC2)使用Amazon Web Services(AWS)云中的可扩展计算能力来提供虚拟化。 Amazon EC2通过消除对硬件前期成本的投资来减少资本支出。企业可以使用虚拟服务器,配置安全性和网络以及管理存储。
虚拟机
虚拟机通过一系列产品提供虚拟化。它的产品vSphere可以虚拟化您的服务器资源,并提供关键的容量和性能管理功能。 VMWare的NSX虚拟化和Virtual SAN分别提供网络虚拟化和软件定义的存储。
在 马鲁蒂技术实验室, 在DevOps的各个步骤中,我们已成功将TeamCity作为持续集成工具,并将Sonarqube作为检查工具。我们使用Amazon Web Services(AWS)作为用于云计算和启动虚拟服务器的虚拟化工具。