Salt

Salt is an open-source automation system created by Thomas Hatch and first released in 2011. The Salt Project documentation describes it as “the world’s fastest, most intelligent and scalable automation engine” and as “an event-driven automation tool and framework to deploy, configure, and manage complex IT systems.” It combines two capabilities that are often separate elsewhere: remote execution across many machines and declarative configuration management.

Salt’s distinctive engineering choice is its high-speed message bus. A central Salt master communicates with agents called minions over a publish-subscribe transport, which lets commands fan out to thousands of nodes in parallel and lets results stream back quickly. This bus-based design gave Salt a reputation for speed and made it practical to run ad-hoc commands across very large fleets, not just to apply periodic configuration.

For configuration management, Salt uses state files that describe the desired condition of a system. These states are typically expressed in YAML and, when needed, templated, so that an administrator declares what packages, files, services, and settings should be present and Salt enforces that state on each minion. As with other configuration-management systems, repeated application is meant to be safe, converging a machine toward the declared state rather than blindly re-running steps.

Salt is written in Python, and its open-source codebase is developed at github.com/saltstack/salt. The Python foundation made Salt highly extensible through custom modules, states, and execution functions, and it fit naturally into Python-centric operations environments. Salt also embraced an event-driven model, in which reactors can respond automatically to events on the bus, enabling self-healing and autonomous workflows.

Among the major configuration-management tools of the early 2010s, Salt occupied a niche defined by its message-bus performance and its dual focus on remote execution and configuration. It is frequently grouped with Puppet, Chef, and Ansible as one of the systems that carried configuration management into the DevOps era, with its bus architecture as the feature that set it apart.