Saltstack: The open source road to Event Driven Infrastructure.
This is a first of many stories to tell and describe my own experience with Saltstack, I feel that we lack simple and clear documentation of Saltstack technology; tht is why in this story, i will try to interduce the different modules of Saltstack.
What is Saltstack?
Designed around the concept of IT infrastructure run by events, SaltStack is a complex composition of several complementary modules, including:
- salt: Execution modules of administrative tasks!
- salt-mine: the information shared between masters and minions.
- salt-states: Continuous Configuration Management Module.
- salt-cloud: Cloud Agnostic module in charge of the standardization of requests for supply and release of infrastructure servers.
- salt-orchestration: Orchestration module of dependent mechanisms.
- salt-reactor: Event reaction module.
- salt-API: REST API for interfacing with the ecosystem.
Saltstack is a python based solution. From an architectural overview, we identify two implementation of the stack :
- One Master (or Masters) and Minions (Linux and Windows).
- Minions only (Linux and Windows), called masterless architecture.
The role of the master is to initiate requests in the Event Bus shared with the minions; A minion listens to all events in the Bus, and executes the instructions that are linked to it.
The following image illustrates how we can implement saltstack for a production environment :
In this diagram above we have some examples of usage of different saltstack modules:
- Commands 1 & 2 are issued within salt executor module, we can target specific minions to execute specific tasks.
- All minions share its informations with each other through salt mine.
- Salt-cloud allows to create infrastructure defined as a code in a file called a map (YAML Format).
- Salt Reactor and orchestrator Listens and Reacts to events with predifined tasks definded in a SLS File (YAML Format).
- Salt state: send a series of tasks as an SLS file (Yaml Format) that concerned minions will be executing.
- Salt-API interacts with other tools.
As stated earlier this is an introduction, so please keep in mind that i will be publishing more detailed posts of each use case;
In the Next post, i will be explaining how to install saltstack and what caracterize Salt Minion and Salt Master.
Thank you for reading, dont forget to follow and recommand if you enjoyed the article.