SaltStack configuration management tools and their many functions
SaltStack is a relatively new tool in the configuration management market with powerful capabilities and an active user community. Read more about this emerging product here.
SaltStack, also known as Salt, provides configuration management functions by automating the packaging and provisioning of code into an organization's operational IT environment. SaltStack is relatively new to the configuration management market, having been developed by IT architect Tom Hatch in 2011. Tom's background was in using Puppet and Chef, and he needed a faster means of collecting data to orchestrate the provisioning of activities in the systems administration environment.
There is an active community around the open source version of Salt -- Salt Open, also known as Salt O.S.S.. Companies such as British Telecom, LinkedIn, OpenX, Clemson University, Lyft and Overstock.com use SaltStack.
The latest version of Salt Open, 2016.3.3, released in August 2016. The software is made available under the Apache 2.0 licence. A commercial version, SaltStack Enterprise, is also available.
SaltStack is written in Python. It can use scripts written directly in Python, or can render other scripts, such as those written in YAML or JSON, through the use of the PyDSL Salt renderer.
SaltStack Enterprise is positioned as the main tool for managing the orchestration of cloud and IT operations, as well as DevOps.
SaltStack Components
SaltStack can be run either in master-minion or standalone mode. The full master-minion model involves invoking the salt-minion daemon on each node. The minion will then search for and connect to a SaltStack master server. The master server then becomes the controller, collecting all the data on the nodes and managing all provisioning and management activity on it. In standalone mode, the salt-minion daemon is not run; however, the node can either look after itself and/or can provide functionality to look after other nodes that have no connectivity to a master server. A differentiator for SaltStack is the speed in which it can collect data and provision scripts back out. It uses ZeroMQ as a message bus to enable this.
SaltStack uses a series of terms for how it operates:
- Execution Modules represent the functions that are used across the platform;
- State Modules execute pieces of code that enforce, set up or change the configuration of a target node;
- Grains provide a system for gathering static information about a node, holding the information in RAM for rapid access;
- Renderer Modules convert commands and scripts through to the SaltStack engine, enabling it to use any serialized format of scripts; and
- Returners are systems that can collect information sent by nodes, aggregating it sensibly from any arbitrary locations the data was sent.
Runners are master-side applications executed by the SaltStack salt-run command itself.
SaltStack Licensing and Pricing Options
Pricing is available on a case-by-case basis, but is based on either a per-node or a level of support subscription model.
There are three levels of SaltStack support, aligned to offer support to different sizes and types of organization:
- SaltStack Basic offers web portal-based support, with same-day response and a degree of training included. It also provides discounts toward extra training and other services, such as workshops on getting started with SaltStack -- see below for more details -- and on continuous delivery for DevOps.
- SaltStack Priority support provides phone and web portal-based support, with 24/7 response tied into the agreed service-level agreement. Training is also included in this support package, along with the discounts offered with Basic. The package includes an annual implementation health check of the customer's environment.
- SaltStack Premium support makes the annual implementation health check to a quarterly check, and offers an optional named account manager.
All support packages give the user access to the SaltStack brains trust: a mix of community experts and SaltStack employees in the support, quality assurance, engineering and core development teams. SaltStack offers web-based Quickstart guides that help users set up and start utilizing Salt. Within its paid support subscriptions, it also provides Quickstart workshops that instruct customers on private infrastructure automation and public cloud orchestration.
SaltStack states that its tools are suitable for organizations of any size. Certainly, it has the speed and scalability to meet the needs of larger organizations. SaltStack can also work well for smaller organizations based on its capacity to be run in masterless mode, as well having a relatively low learning curve combined with specific support models.