Management and Scheduling: Puppet focuses mainly on the push and pulls configuration, where the clients pull configurations from the server. Configurations must be written in Puppet’s language. When it comes to scheduling, Puppet’s default settings allow it to check all nodes to see if they are in the desired state. | Management and Scheduling: In Terraform, resource schedulers work similarly as providers enabling it to request resources from them. Thus, it is just not limited to physical providers such as AWS, allowing its use in layers. Terraform can be used to provision onto the scheduled grid, as well as setting up the physical infrastructure running the schedulers. |
Ease of Setup and Use: Puppet is more model-driven, meant for system administrators. Puppet servers can be installed on one or more servers, while the puppet agent requires installation on all the nodes that require management. The model is thus a client-server or agent-master model. Installation times can take somewhere around ten to thirty minutes. | Ease of Setup and Use: Terraform is also simpler to understand when it comes to its setup as well as usage. It even allows users to use a proxy server if required to run the installer. |
Availability: Puppet has one or more masters in case the original master fails. | Availability: Not Applicable in Terraform’s case. |
Scalability: Scalability is less easy to achieve. | Scalability: Scalability is comparatively easily achieved. |
Modules: Puppet’s repository or library is called Puppet Forge. It contains close to 6000 modules. Users can mark puppet modules as approved or supported by Puppet, saving considerable time. | Modules: In Terraform’s case, modules allow users to abstract away any reusable parts. These parts can be configured once and can be used everywhere. It thus enables users to group resources, as well as defining input and output variables. |
GUI: Puppet’s GUI is superior to that of Ansible, capable of performing many complex tasks. Used for efficiently managing, viewing, and monitoring activities. | GUI: Only third party GUIs are available for Terraform. For example, Codeherent’s Terraform GUI. |
Support: Puppet has a dedicated support portal, along with a knowledge base. Additionally, two levels of professional support exist; Standard and Premium. A “state of DevOps report is produced annually by the Puppet community. | Support: Terraform provides direct access to HashiCorp’s support channel through a web portal. |