

This is also the philosophy of containers. This is the world of Terraform, where new servers replace the existing servers.

If something needs to be updated or changed, new servers are built afresh from a common template with the desired changes. An immutable infrastructure is one in which servers are never modified after they’re deployed. CM tools evolved to manage this complexity and bring order to the configuration and updating of tens to thousands of servers. Administrators are always making tweaks or adding code.


Mutable or immutable? Traditional server environments are mutable, in that they are changed after they are installed. Declarative tools are more familiar to users with a programming background. Procedural languages are more familiar to system admins who have backgrounds in scripting.
Apache app chef how to#
The IaC tool itself then determines how to achieve that state in the most efficient way possible. Terraform, SaltStack, and Puppet use a declarative style where you write code that specifies the desired end state. The onus is on the user to determine the optimal deployment process. There are a number of important differences between these tools that are worth drawing out.Ĭhef and Ansible use a procedural style language where you write code that specifies, step-by-step, how to achieve the desired end state. The table following compares the most popular open-source tools. In practice, some of the tools are going to be a better fit for certain types of tasks. There is overlap in these roles and capabilities, and most tools can be used in both roles. Orchestration tools tend to leave configuration to specialist tools. Which is best?Ĭonfiguration management (CM) tools are great at the config nodes but less good at coordinating complex tasks. The focus here is on coordinating configuration across complex environments and clusters. Orchestration addresses the requirement to provision environments at a higher level than configuration management. They are designed to provision the server instances themselves, leaving the job of configuring those servers to other tools. Tools like Terraform are considered to be orchestrators.
Apache app chef manual#
No more manual configuration or ad-hoc scripts are needed. They do the heavy lifting of making one or many instances perform their roles without the user needing to specify the exact commands.
Apache app chef install#
Generally, Ansible, Puppet, SaltStack, and Chef are considered to be configuration management (CM) tools and were created to install and manage software on existing server instances (e.g., installation of packages, starting of services, installing scripts or config files on the instance). I’m going to look at these two domains so we can then position the different tools. Tasks are generally divided into the domains of configuration management and configuration orchestration. To meet your requirements and fit with available in-house skills, one tool may be a better fit than another.Ĭhoosing the most appropriate tool requires a way of understanding the many tasks involved in app and infrastructure provisioning. Over the years, most have also evolved to address a wide set of use cases and can comfortably fulfill most IaC needs. All of the referenced tools were developed with a specific purpose or intent in mind.
