You will be forgiven if you haven't heard of the Salt project. The company behind the project, Salt Stack, incorporated only a year ago, and Salt is now a rapidly growing open source systems and configuration management tool. Although Salt Stack is a new name in the configuration management tools pool, the company has already made a big splash. Salt Stack was named Black Duck Software's Open Source Rookie of the Year for 2011, one of four “Cool Vendors in DevOps” by Gartner in April 2013, and at its Structure 2013 event in June, GigaOM selected Salt Stack as the winner of its LaunchPad competition.
In Salt Air episode 1 on YouTube, Salt project CTO and founder Tom Hatch described Salt as a garage project until it was featured on FLOSS Weekly in November 2011. Hatch credits the popular FLOSS Weekly podcast for kickstarting the project's recognition.
And if you are already familiar with Salt, you probably know that Salt's core function is its remote execution. In his Linux Journal article on how to get started with Salt Stack, Ben Hosmer explains—in layman's terms—how Salt Stack works.
“Tools like Salt, Puppet, and Chef allow you to issue commands on multiple machines at once, and install and configure software, too,” Hosmer says. “Salt has two main aspects: configuration management and remote execution.”
“Other systems were designed to do this, of course, but they failed in several ways,” says Salt contributor Corey Quinn in a blog post. Salt's approach is simpler, Quinn says. “Salt leverages the ZeroMQ message bus, a lightweight library that serves as a concurrency framework. It establishes persistent TCP connections between the Salt master and the various clients, over which communication takes place. Messages are serialized using msgpack, (a more lightweight serialization protocol than JSON or Protocol Buffers), resulting in severe speed and bandwidth gains over traditional transport layers, resulting in in the ability to fit far more data quickly through a given pipe.”
Salt also has a reputation for being easy to install and start, it's highly scalable, and it's fast. “Getting up and running is almost embarrassingly simple compared to other configuration management systems,” Quinn says.
Five Things to Know About Salt
1. Salt is not just configuration management. “It is cloud management, orchestration, the Salt reactor, etc.,” says Tom Hatch, Salt Stack CTO. The reactor system was introduced in Salt version 0.11.0, and the idea behind it is that, with Salt's events and ability to execute commands, a logic engine could be put in place to allow events to trigger actions (e.g., reactions).
2. Salt can be used as a lightweight cloud controller. The Salt Virt functionality was included in release 0.14.0, providing a system to allow private clouds to be managed within Salt, easily and quickly.
3. The ZeroMQ socket library is not going to be the only option in release 0.17.0. “We are moving toward a more modular network communication system,” Hatch says. “The new salt-ssh system is coming in 0.17, for instance, and does not require a salt agent to be running on target systems.”
4. The new Salt Web UI, “Halite” (rock salt), will be shipping with Salt 0.17.0. “Halite, like the rest of Salt, is 100% open source,” Hatch says. “We are not open core, like everyone else in the space. Halite is an entirely event driven UI, and in 0.17.0 it can be enabled with only setting a config option and restarting the master.”
5. In 0.17.0, Salt is introducing a new default means for ordering states in the config management system, making states get evaluated in the order in which they are defined, according to Hatch. “This makes Salt both fully imperative and still fully declarative,” Hatch says.
Hatch says that open source plays an important role in the development of Salt Stack, and the company has turned away investors who weren't supportive of open source. Hatch recognizes that open collaboration has offered many benefits to the project, and learning about different needs and perspectives has helped the project develop.
"I would encourage other projects to be as open as they can, to accept contributions and work with contributors," Hatch says. "It really helped build out the community and bring in new ideas to the project and the company."
To learn more about the Salt development community, visit: http://docs.saltstack.com/topics/community.html. Hatch will also be talking about the Salt project at LinuxCon's CloudOpen North America in New Orleans next month.
Rikki Endsley is the former associate publisher of Linux New Media's Linux Magazine, ADMIN, and Ubuntu User magazine. Now she works as a freelance tech journalist, editor, and the community manager for USENIX. Rikki's articles have appeared in a variety of publications and websites, including Linux.com, NetworkWorld, ITWorld, SmartBear.com, and CMSWire. Find her online at rikkiendsley.com or on Twitter at @rikkiends.