这篇文章上次修改于 1752 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 #####相同点: - 代码即基础设置,均采用DSL - 都可用于状态管理,版本管理 - 都可以通过插件实现全覆盖 #####不同点: - Terraform偏重于不可变环境,如docker,vm(镜像部署模式,read only),Ansible/Saltstack/Puppet偏重于可变环境(如传统部署模式,状态幂等) - 前者偏重于任务编排管理(如扩容缩容),后者偏重于配置管理(节点版本变更) - 前者记录变更历史和结果,后者侧重于当前状态,无历史跟踪 ![1_bVC97LGrOY4R5E4WwzMLzw.png](/usr/uploads/2018/04/2600529606.png) 因此使用何种工具取决于你业务中的场景,主要有以下四点: - Configuration Management vs Orchestration - Mutable Infrastructure vs Immutable Infrastructure - Procedural vs Declarative - Client/Server Architecture vs Client-Only Architecture ref: 1. https://blog.gruntwork.io/why-we-use-terraform-and-not-chef-puppet-ansible-saltstack-or-cloudformation-7989dad2865c 2. https://blog.gruntwork.io/a-comprehensive-guide-to-terraform-b3d32832baca 3. https://www.itculate.io/2017/02/ansible-vs-terraform-vs-salt/ 4. https://selleo.com/blog/terraform-vs-ansible
没有评论