10分钟了解常见的DevOps工具
计算机/服务器 –具有中央处理器(CPU)、内存(RAM),本地存储(磁盘)并运行操作系统的物理设备。
虚拟机 –在主机上运行的计算机系统的仿真;通常可以在CPU,内存和磁盘使用方面与其他操作系统隔离。
容器 –软件及其所有依赖项的包装,以便它可以在任何基础架构上一致地运行。Docker容器是最受欢迎的。它使你可以打包一堆东西(你的软件,配置和其他软件),以便于部署和迁移。你可以将容器视为虚拟化的下一步发展(在虚拟机之后)。
网络设备 –一种在设备之间路由网络流量的硬件。包括路由器,负载均衡器和防火墙。
软件 –编写并在操作系统上运行的代码。
-
获取计算机/服务器硬件 -
配置计算机/服务器硬件(操作系统,网络等) -
监视计算机/服务器硬件 -
获取网络设备(负载均衡器,防火墙,路由器等) -
配置网络设备 -
监控网络设备 -
构造软件 -
编译软件 -
测试软件 -
打包软件 -
部署/发布软件 -
监控软件
-
开发人员 -他们将执行#7,#8,有时甚至是#10 -
QA团队 –他们将执行#9,有时甚至执行#11 -
系统管理员 –他们将执行#1,#2,#3,#12 -
网络管理员 –他们将执行#4,#5,#6
-
软件存储库 –用于管理软件版本的工具– Git是当今使用最广泛的工具。 -
构建工具 –一些软件需要先进行编译,然后才能打包或使用,传统的构建工具包括Make,Ant,Maven和MSBuild。 -
持续集成工具 –每次你将代码提交存储库时,它都会构建,部署和测试软件。这通常可以提高代码质量和减少投产时间。这个市场上最受欢迎的工具是Jenkins,Travis,TeamCity和Bamboo。 -
代码分析器/查看工具 –这些工具可查找代码格式和质量以及测试覆盖范围中的错误。SonarQube是该领域的流行工具。 -
配置管理 –配置管理工具和数据库,通常会存储有关硬件和软件项目信息,并提供脚本或模板来自动化常见的任务。这个领域常见的工具有:Chef,Puppet,和 Salt。 -
部署工具 –这些工具有助于软件的部署。许多CI工具也是CD工具,可帮助部署软件。传统上,在Ruby中,Capistrano工具已被广泛使用。在Java中,Maven被许多人使用。所有编排工具也都支持这种部署。 -
编排工具 –这些工具可配置,协调和管理计算机系统和软件。它们通常将自动化”和“工作流”作为其服务的一部分。Kubernetes是一种非常流行的编排工具,专注于容器。Terraform也是一种非常流行的编排工具,它的应用范围更加广泛,包括云编排。此外,每个云提供商都拥有自己的一套工具(CloudFormation,GCP Deployment Manager和ARM)。 -
监视工具 –这些工具允许监视硬件和软件。通过监视程序和日志文件等,以确保系统的运行状况。Nagios和Prometheus是一种流行的监视工具。 -
测试工具 –测试工具用于管理测试以及测试自动化,包括性能和负载测试。
如你所见,Ansible,Terraform和云工具(AWS,GCP和Azure)等正尝试将部署,配置管理和服务编排结合在一起。 较旧的工具集:如Puppet,Chef和SaltStack专注于配置管理和自动化,但已扩展到编排和部署。 还有一些工具,例如GitLab和Azure DevOps,它们试图涵盖几乎所有类别的DevOps。