DevOps工具越来越多,了解它们以及知道在什么时候使用他们越来越重要。因此,我尝试做一些研究,以便我们可以将DevOps产品分类为大家都熟悉的类别或用途。
在开始讨论DevOps工具和类别之前,让我们了解下DevOps常见术语及其含义。
DevOps –传统上是由 development(开发) 和 operations(运维) 组成 。DevOps的目的是:“减少从系统更改到投入生产之间的时间,同时确保高质量”。
当你考虑构建和运行系统时,实际上会有很多事情要做。以下是要考虑的:
在 DevOps之前,我们曾经有四个不同的团队来完成这项工作:
对于硬件,网络设备和软件的配置,每个团队可能会使用他们自己的脚本和工具集,并且在许多情况下,会手动进行操作。
对于我而言,随着DevOps的出现,关键是能够打破不同团队间障碍,使每个人成为一个团队的一部分,使所有系统的配置,部署和管理方式保持一致。
云 – 最初,当云服务启动时,它们实际上只是其他人的计算机(或在其计算机上运行的VM)或存储。随着时间的流逝,硬件大部分已经被抽象掉了,它们已经演变为一项服务以及许多增值服务。目前,你无法在大多数云服务中购买硬件设备,但可以购买由硬件设备提供的服务。
基础架构即代码(IAC- Infrastructure as Code) –一个新概念,可让我们通过配置文件来定义数据中心内所有项目的完整设置,包括VM,容器和网络设备。我的可以创建一些配置和一些脚本,然后使用CI/CD工具运行它们,它们自动在数据中心中提供我们的所有服务。CI/CD是IAC的前身,多年来一直致力于使构建/测试/集成/部署自动化,而使用云基础架构则是对它的自然扩展。这也降低了成本,加快了投产时间,减少了人为操作风险。
随着IAC的出现,许多传统的开发工具现在都可以用于管理基础结构。DevOps工程师现在可以使用以下工具,例如软件存储库,构建工具,CI/CD,代码分析器和测试工具,来构建和维护基础架构。
现在,我们已经掌握了常见术语,让我回到尝试对DevOps工具进行分类的任务,以使我们更容易确定可在什么时候使用什么工具。
许多工具跨类别,并提供两个或多个类别的功能。
如你所见,Ansible,Terraform和云工具(AWS,GCP和Azure)等正尝试将部署,配置管理和服务编排结合在一起。 较旧的工具集:如Puppet,Chef和SaltStack专注于配置管理和自动化,但已扩展到编排和部署。 还有一些工具,例如GitLab和Azure DevOps,它们试图涵盖几乎所有类别的DevOps。
通过本文,希望可以帮助你了解DevOps的基础知识,工具的类别,以及当今市场上的流行的工具。
译者:王延飞 原文链接:https://dzone.com/articles/the-10-minute-read-to-understanding-devops-tools