#销售额#基础架构即代码的8大优势,以及如何选择工具?( 二 )


基础架构即代码的工具尽管有许多工具可用 , 但选择一种工具可能并不容易 。 以下是一些注意事项 , 可能对大家帮助 。 基础架构即代码的工具大致上可分为两类:配置管理工具和配置工具 。
配置管理工具是用户管理在现有服务器上安装和管理的工具 。 比如 , Chef , Puppet , Ansible和SaltStack都是主要的配置管理工具 。 可以使用配置管理工具在服务器上安装和更新软件 。
Terraform , CloudFormation , OpenStack Heat是配置工具 , 即用于创建服务器 , 数据库服务器 , 负载均衡 , 队列 , 子网 , 防火墙以及基础架构的所有其他组件 。 这些工具对提供程序进行API调用以创建所需的基础结构 。

可变与不可变基础架构

可变基础架构是一种在配置后即可修改的基础架构 。 Chef , Ansible , Puppet和SaltStack能够在现有服务器上安装或更新软件 。 在服务器的生命周期中 , 这可能会发生很多次 。 经过多次更新后 , 每台服务器可能与其他服务器略有不同 , 从而导致配置漂移 。 例如 , 某些在测试服务器上正常运行的更改 , 可能无法在生产服务器上运行 。
【#销售额#基础架构即代码的8大优势,以及如何选择工具?】Terraform和CloudFormation之类的工具能够每次通过计算机镜像或容器镜像创建新服务器 。 如果需要更新服务器 , 就用用新服务器替换它们 。 新服务器启动后 , 可以终止旧服务器 。 每个部署都使用不可变的镜像来创建服务器 , 因此避免了配置漂移 。 不过 , 效率可能有点慢 。
命令式与声明式工具
命令式工具类似于脚本 , 列出了达到所需状态所要采取的步骤 。 声明性工具可以指定结束状态 , 并且工具将制定实现该状态的步骤 。
Chef是主要的命令式工具 , 而Ansible使用混合方法并支持命令式和声明式技术 。
Terraform , CloudFormation , Puppet , OpenStack Heat和SaltStack都属于声明性工具类别 , 可以在其中声明所需的最终状态 。
使用多种工具
尽管这些工具中的每一个都可以单独使用 , 但是一种通用的方法是将它们一起使用 。 例如 , 可以使用Terraform来构建VPC , 子网 , 网关 , 负载均衡和虚拟机 , 然后使用Ansible在这些实例上配置和部署服务 。