Background
The current landscape of IT serving data centers requires a lot of manual intervention when it comes to installation or configuration of packages or files on multiple servers ranging from 10 to millions. The IT system admin staffing count has also increased to serve the request on millions of servers either for the provision or configuration-related activities or tasks. This increases the overall time for the system to be ready for production, with higher chances of getting human-specific errors.
In some cases, we may need to spin up new servers or make some modification to the existing servers. This, in turn, leads to an increase in the staffing cost. So, meeting this kind of requirement manually becomes very tedious and hard to execute. Therefore, we need a configuration management tool that can help to solve this purpose with minimal execution time and a higher success rate.
What and Why SaltStack
Configuration management is a standard process that formulates the procedures to automate the delivery and operation of infrastructure along with continuous monitoring at a faster rate. It also leverages the ability of a system to continuously track the configuration changes. Due to the advancement of IT in terms of software configuration management (SCM) and DevOps, a lot of different types of frameworks are classified as configuration management frameworks that help in provisioning and configuration of components on servers automatically, almost eliminating the need to place additional staffing.
From the available range of configuration management frameworks, one of the most matured and widely used is SaltStack, which is an open-source configuration management and remote execution framework completely written in Python. SaltStack configuration management is very simple to learn and can easily handle simple as well as complex IT infrastructure (servers running in datacenters) tasks at a higher scale and at a faster speed. SaltStack is designed to be highly modular and it works in server/client architecture, where one or more server can serve multiple client nodes parallelly with their independent requirements for installing or provisioning by executing a single command from the server node.
Benefits of SaltStack
- SaltStack minimizes the overall configuration time of setting up 10+ servers in a datacenter from hours to minutes, with independent provisioning of servers running in parallel.
- SaltStack provides support for cloud infrastructure as well, and integrated compatibility with leading cloud service providers like AWS.
- SaltStack is very fast and lightweight and uses ZeroMQ for communication that provides the foundation for the remote execution engine.
Characteristics of SaltStack
- SaltStack supports a declarative approach for execution of configuration files. This means that the order of execution for components defined in the configuration file is random.
- One of the major characteristics of SaltStack is that during the execution of configuration files, if an error occurs in any of the components, then SaltStack will continue the execution of remaining components, and give a detailed summary (covering errors cases in red and successful cases in green) once the execution has been done.
- SaltStack uses YAML language, which is a plain text file with JSON-like formatting and is easy to understand.
- SaltStack maintains a huge active open source community from where anyone can take help in case of issues.
- SaltStack manages simple SSH keys for authentication between the server (master node) and clients (minion nodes) to manage secure data transmission using SSL/TLS protocol.
- SaltStack supports mutable IT infrastructure.
Similar Frameworks for Configuration Management
The following SaltStack configuration management frameworks (with some similar and different functionality) are also available in the market:
Configuration Management | License Type | Type of tool | Features Overview | Reference Link |
Chef | Open-Source | Configuration Management |
|
|
Puppet | Open- Source | Configuration Management |
|
|
Ansible | Open- Source | Configuration Management |
|
https://www.ansible.com/ |
Terraform |
Open-SourceCommercial License for Enterprise Edition |
Orchestration Tool |
|
https://www.terraform.io/ |
Conclusion
SaltStack is advisable to use for meeting the requirements for IT infrastructure in terms of configuration and provision. It makes it easy to setup servers in data centers with minimal installation and configuration time. An administrator can easily follow the available online documentation at https://docs.saltstack.com/en/latest/ and configure it in his/her environment based on the requirements. SaltStack can prove to be an asset for the IT infrastructure in terms of its usability and feasibility by making stable and configurable environments for production as well as developmental use.
References
https://en.wikipedia.org/wiki/Salt_%28software%29
https://en.wikipedia.org/wiki/Chef_(software)
https://en.wikipedia.org/wiki/Puppet_(software)
https://en.wikipedia.org/wiki/Ansible_(software)
https://www.ibm.com/blogs/bluemix/2018/11/chef-ansible-puppet-terraform/