过去在很长一段时间中,基础架构的安装、配置、维护等相关的工作都需要手动完成,需要IT团队中的许多人都参与其中,手工过程存在很大的人为错误风险,导致应用程序可用性,安全性和性能不佳。随着DevOps的崛起,让基础架构的自动化成为了可能。现在,有多种工具可以执行基础结构的创建、部署、管理任务。通过这些工具,IT团队可以在低人力的情况下自动化整个基础架构。包括配置基础结构和应用程序设置等复杂任务。
基础架构自动化是使用IaC(基础架构即代码)部署硬件/软件组件,操作系统,网络组件,数据存储组件的过程。这个过程中,只有但编写需要的代码时才需要人工干预,这些代码具有创建和部署必要组件的所有细节。那么,被业界广泛使用的基础架构自动化工具有哪些呢?
Ansible
Ansible是开源的无代理引擎,可自动执行应用程序部署、配置管理和IT编排,用Python编写。为了实现所有自动化,Ansible使用了playbook,其中所有配置都以可读的语言YAML编写。
Ansible具有无代理架构,无需在所有服务器上单独安装任何软件。它遵循基于推送的模型,在模型中,需要具有所有必需配置的本地系统,并将这些配置推送到目标服务器。
Ansible的功能包括:使用简单易读的语言进行自动化;无代理架构,可以通过简单的SSH连接到服务器;推送模型将配置从你操作的本地计算机推送到服务器;基于Python构建,因此它支持许多python库和功能等等。
所以,Ansible技能对于系统管理员,开发者,基础架构工程师非常有用。
SaltStack
SaltStack可以快速执行基础架构管理、配置和编排。与Chef和Puppet等其他类似工具相比,SaltStack的速度是它的最大优势。就像Ansible一样,它也是用Python编写的。
它具有主从结构,其中Salt Master是管理所有内容的主守护程序,Salt Minions是安装在每个受管系统上以执行Salt Master发送的指令的从守护程序。Salt Master将必要的配置和命令发送到Salt Minions,Salt Minions在其计算机上执行它们以应用所有IT自动化。
SaltStack功能包括:专为规模和速度而设计,每个master最多可以处理10000个minions;设置非常简单,具有单个远程执行体系架构;SaltStack中的配置文件支持各种语言;它可以在远程系统上并行执行命令,这有助于快速应用自动化;提供使用Python API的简单编程接口。
Chef
在生产环境中,有时故障的原因之一是应用程序不一致或基础设施配置不一致。而Chef能够有效解决这类问题。
Chef是用于管理基础架构的配置管理工具。它是用Ruby编写的。Chef作为基础架构管理产品使每个环境与基础架构中的相同配置保持一致。它提供各种工具,例如Chef Infra,Chef Automate,Chef Enterprise和Chef Community,用于基础架构管理。
Chef基础架构管理功能有:配置以YAML编写,易于学习;它带有多种开发工具,用于编写配置,测试和依赖性解析;企业版中的轻松协作功能可轻松处理复杂的环境;支持与数百种DevOps工具集成,例如GitHub,Jenkins等等。
Bolt
Bolt是Puppet的开源项目之一。它是用于IT自动化的无代理编排工具。使用Bolt,可以自动执行所有手动任务。如部署应用程序,对服务器进行故障排除,停止重新启动服务,修补和更新系统等任务。
由于Bolt是无代理的,因此无需在远程目标计算机上安装任何代理软件。需要在本地系统上安装Bolt,然后才能使用SSH或WinRM连接远程目标系统。
bolt功能包括:在YAML中编写bolt计划(命令,脚本和任务的组合),易于使用和学习;Puppet Forge(模块库)提供了许多现有的计划和工作流程;轻松将你的自动化从Bolt迁移到Puppet Enterprise,以实现更好的可伸缩性。
Terraform
Terraform是一种开源基础架构调配工具,用于使用基础架构即代码(IaC)创建和部署基础架构。
Terraform与AWS,Azure,GCP,阿里云等云提供商的配合非常好。你可以轻松使用Terraform在任何这些云提供商上部署和管理基础架构。当前,terraform被许多组织广泛用于管理其Kubernetes集群。
Terraform的优势包括:轻松管理不可变基础架构的配置;可以完成基础架构的完整编排,而不仅仅是配置管理;使用易于理解的HashiCorp配置语言(HCL);通过terraform注册表为数百种工具和技术提供现成的模块和提供程序。
结论
以上这5款工具适合中型企业实现基础架构的自动化。如果要进入DevOps,并希望自动化基础架构以及其中涉及的单调任务,那么选择他们是开启基础架构自动化的良机。