SlideShare a Scribd company logo
SaltStack
Orchestration & Application Deployment
Arnold Bechtoldt
Oberhausen, 07.11.2015
Arnold Bechtoldt
Systems Engineer @ inovex GmbH
〉  Platform Engineering
〉  System Automation & Development
〉  DevOps Support & Consulting
〉  Open Source Software Contributions
2
1.  Orchestration in General
2.  SaltStack Orchestration Basics
3.  Hands on: Demo
4.  Q&A
Agenda
3
Assets & Links
4
inovex.de arnoldbechtoldt.comgithub.com/bechtoldt/talk-salt-orchestration
Orchestration in General
Highway To Heaven
6
Asset-
Management,
Accounting
Bare-Metal
Deployment
Configuration
Management/
Containerization
Orchestration
Auto-Scaling +
Elasticity
Cloud
〉  Lazy Admins: „Don‘t repeat yourself“ (DRY)
〉  Busy Admins: „I have a lot of other problems and [...]“
〉  Small Teams: „Ask X, but she/he is out of office until next week“
Who needs Orchestration?
7
〉  ... uses remote execution to distribute system commands
〉  ... should be more than just executing commands (most of the tools end here)
〉  ... should be able to respect internal & external dependencies/relations
〉  ... should happen deterministic, imperative and fast
〉  ... must [RFC2119] be easy to understand/learn (YMMV)
Orchestration...
8
9
MCollective + Shell Script
A not-so-cool Example
http://www.ansible.com/blog/orchestration-you-keep-using-that-word
For instance, if you use a single-purpose deployment
tool [...] to trigger some legacy configuration
management, that might be called “orchestrating X
with Y”. In reality, it’s usually just replacing a non-
scaling [...] server solution X with a stand-alone
implementation of Y.
10
SaltStack Orchestration Basics
SaltStack implements the same techiniques that other tools do:
〉  send commands to servers
〉  send commands to servers that have different operating systems
〉  send commands only to a subset of servers
〉  run command A, then B, then C
Some people call this orchestration and wrap this shell-oneliner with
thousands LoC.
SaltStack Orchestration
12
What we really want to have:
〉  scale accross thousands of servers
〉  easy configuration (less software programming)
〉  an interface to implement internal/external relationships (pre/post tasks)
〉  fully automated workflows/procedures (no manual interaction)
SaltStack Orchestration
13
What we really want to have:
〉  scale accross thousands of servers
SOA – Message Bus Architecture
〉  easy configuration (less software programming)
YAML – JSON – Python DSL
〉  an interface to implement internal/external relationships (pre/post tasks)
State – Execution – Pillar – Returner – Beacon – Cloud (~ 600 modules)
〉  fully automated workflows/procedures (no manual interaction)
Event System – Reactor – Runner – APIs
SaltStack Orchestration
14
State A resource should look like {…}
Pillar Database/CMDB (Files, RDBMS, NoSQL)
Execution Execute command X on a server. Used by
other Salt components.
Returner Log store of job results (DB, Elasticsearch,
Syslog, Monitoring)
Beacon Special event triggers (inotify, load, procs,
network/user activity)
Reactor Reacts to events by triggering subsequent
procedures (execution modules)
Cloud IaaS provisioning (EC2, OpenStack, Digital
Ocean, Linode, GCE, VMware)
…
SaltStack Terminology
15
Event-Driven System Automation
16
minion
minion minion
minionminion
minion
minion
minion
minion
minionminion
reactor
(master)
salt/key salt/job/new node/stonith/new update/application
salt/auth salt/job/return scale/out loadbalancer/config/update
salt/minion/start salt/presence/present monitoring/hosts/new firewall/config/update
salt/minion/stop salt/presence/change monitoring/hosts/remove coffee/new
salt/job/20151104191820394966/new {
"_stamp": "2015-11-04T18:18:20.512126",
"arg": [
”orchestration.bootstrap",
{
"__kwarg__": true,
"test": false
}
],
"fun": "state.sls",
"jid": "20151104191820394966",
"minions": [
”mw42"
],
"tgt": ”mw42",
"tgt_type": "glob",
"user": ”root”
}
Event Structure
17
custom/minion/haste_server_started {
"_stamp": "2015-11-04T18:33:54.650568",
"cmd": "_minion_event",
"data": {
”custom": {
"onchanges": [],
"foo": "bar",
"num": 42,
},
"sfun": "wait"
},
"id": "mw2",
"pretag": null,
"tag": "custom/minion/haste_server_started"
}
Event-Driven System Automation
18
minion
minion
minion
minion minion
minionmaster
MySQL
Foreman etcd
MySQL
ElasticsearchSMTP
Syslog Icinga
Appliances
HTTP
Docker
Slack
PostgreSQLminion AWS
Hands on: Demo
Demo Concept
20
1. Tells MW hosts to install MW
4. Tells FE hosts to install FE
6. Tells MW hosts to deploy App
10. Tells FE to reconfigure FE
2. Install Node.JS (MW)
3. Report back to Master
7. Deploy App
8. Send Notification Mail
9. Report back to Master
5. Install Haproxy (FE)
6. Report back to Master
11. Add/Remove HAProxy backends
12. Report back to Master
Salt Master/Reactor MW hosts FE hosts
Demo Concept
21
1. Tells MW hosts to install MW
4. Tells FE hosts to install FE
6. Tells MW hosts to deploy App
10. Tells FE to reconfigure FE
2. Install Node.JS (MW)
3. Report back to Master
7. Deploy App
8. Send Notification Mail
9. Report back to Master
5. Install Haproxy (FE)
6. Report back to Master
11. Add/Remove HAProxy backends
12. Report back to Master
Salt Master/Reactor MW hosts FE hosts
Assets & Links
22
sh.arbe.io/cloud-provision youtu.be/9MzeK4u4pkM (demo)github.com/bechtoldt/talk-salt-orchestration
Q&A
Saltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application Deployment
Saltstack - Orchestration & Application Deployment
Kolleginnen und Kollegen gesucht!
•  Application Development
•  Business Development
•  Consulting
•  Data Management & Analytics
•  IT Engineering & Operations
•  Hamburg
•  Karlsruhe
•  Köln
•  München
•  Pforzheim
inovex.de/jobs
Thank You!
Arnold Bechtoldt
IT Engineering & Operations
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe - Germany
arnold.bechtoldt@inovex.de
CC BY-NC-ND inovex.de +ArnoldBechtoldtGER
github.com/bechtoldt arbe.io youtube.com/
inovexGmbH

More Related Content

PDF
Configuration Management vs. Container Automation
POTX
Mobile 3: Launch Like a Boss!
PDF
Python & Cassandra - Best Friends
PPTX
Application Deployment and Management at Scale at 1&1
PDF
Kubernetes Summit 2018 - Kubernetes: Stateless -> Stateful
PPTX
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
PDF
Building Digital Transaction Systems in the new Banking World
PDF
AWS to Bare Metal: Motivation, Pitfalls, and Results
Configuration Management vs. Container Automation
Mobile 3: Launch Like a Boss!
Python & Cassandra - Best Friends
Application Deployment and Management at Scale at 1&1
Kubernetes Summit 2018 - Kubernetes: Stateless -> Stateful
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
Building Digital Transaction Systems in the new Banking World
AWS to Bare Metal: Motivation, Pitfalls, and Results

What's hot (20)

PPTX
Automate your development environment with Jira and Saltstack
PPTX
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
PDF
Batch Applications for the Java Platform
KEY
Handling Redis failover with ZooKeeper
PDF
Modern Elastic Datacenter Architecture
PPTX
RedisConf17 - Redis in High Traffic Adtech Stack
PDF
Cassandra Day Denver 2014: Setting up a DataStax Enterprise Instance on Micro...
PPTX
Building Big Architectures
PDF
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
PPTX
So Easy, A Ten Year Old Can Do It by Zeph Gardler
PDF
Counting image views using redis cluster
PPTX
A Networking View for the DevOps Crew: SDN
PDF
Konstantin Yakovlev - Event Analysis Toolset | ZabConf2016
PDF
Current State of Icinga - Icinga Camp Zurich 2019
PPTX
PDF
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
PPT
Sebastien goasguen cloud stack and docker
PDF
Ceph with CloudStack
PDF
Ceph and cloud stack apr 2014
PDF
Re-Think of Virtualization and Containerization
Automate your development environment with Jira and Saltstack
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Batch Applications for the Java Platform
Handling Redis failover with ZooKeeper
Modern Elastic Datacenter Architecture
RedisConf17 - Redis in High Traffic Adtech Stack
Cassandra Day Denver 2014: Setting up a DataStax Enterprise Instance on Micro...
Building Big Architectures
DockerCon 2016 Ecosystem - Everything You Need to Know About Docker and Stora...
So Easy, A Ten Year Old Can Do It by Zeph Gardler
Counting image views using redis cluster
A Networking View for the DevOps Crew: SDN
Konstantin Yakovlev - Event Analysis Toolset | ZabConf2016
Current State of Icinga - Icinga Camp Zurich 2019
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
Sebastien goasguen cloud stack and docker
Ceph with CloudStack
Ceph and cloud stack apr 2014
Re-Think of Virtualization and Containerization
Ad

Viewers also liked (15)

DOC
News musica
PDF
Apple&S.Jobs
PDF
Evaluation of the Management and Utilization of Consitituency Development Fun...
PDF
Фейнман Р., Лейтон Р., Сэндс М. Фейнмановские лекции по физике. 7. Физика спл...
PDF
Letter of recomendation_ Inditex
DOCX
Iss nota libertad sindical
PPTX
Ergonomia
PDF
Signboard of montgomery pediatric dentistry princeton, nj 08540
PDF
Effect of Salt and Water Stresses on Jujube Trees under Ras Sudr Conditions
DOCX
Prestação da merenda 2014
PDF
Tante storie alla ribalta, 13 ottobre 2011
PPT
Breve descripción de la Tesorería local
PDF
Anexo 5
PDF
Shahrukh Siddiqui Certificate
PDF
ORCID Today and Tomorrow (L. Haak, A. Meadows, L. Paglione)
News musica
Apple&S.Jobs
Evaluation of the Management and Utilization of Consitituency Development Fun...
Фейнман Р., Лейтон Р., Сэндс М. Фейнмановские лекции по физике. 7. Физика спл...
Letter of recomendation_ Inditex
Iss nota libertad sindical
Ergonomia
Signboard of montgomery pediatric dentistry princeton, nj 08540
Effect of Salt and Water Stresses on Jujube Trees under Ras Sudr Conditions
Prestação da merenda 2014
Tante storie alla ribalta, 13 ottobre 2011
Breve descripción de la Tesorería local
Anexo 5
Shahrukh Siddiqui Certificate
ORCID Today and Tomorrow (L. Haak, A. Meadows, L. Paglione)
Ad

Similar to Saltstack - Orchestration & Application Deployment (20)

PDF
Automated Application Management with SaltStack
PDF
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
PDF
iguazio - nuclio overview to CNCF (Sep 25th 2017)
PDF
nuclio Overview October 2017
PDF
Original slides from Ryan Dahl's NodeJs intro talk
PDF
Expanding your impact with programmability in the data center
PDF
Building a serverless company on AWS lambda and Serverless framework
PPTX
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
PPTX
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
PPTX
M|18 Scalability via Expendable Resources: Containers at BlaBlaCar
PPTX
Develop in ludicrous mode with azure serverless
PPTX
Running High-Speed Serverless with nuclio
PPTX
SolarWinds Scalability for the Enterprise
ODP
Log aggregation and analysis
PPTX
Being HAPI! Reverse Proxying on Purpose
PPTX
StrongLoop Overview
PPTX
Intro to node and mongodb 1
PDF
Network Automation with Salt and NAPALM: Introuction
PDF
Service discovery like a pro (presented at reversimX)
PDF
murakumo Cloud Controller
Automated Application Management with SaltStack
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
iguazio - nuclio overview to CNCF (Sep 25th 2017)
nuclio Overview October 2017
Original slides from Ryan Dahl's NodeJs intro talk
Expanding your impact with programmability in the data center
Building a serverless company on AWS lambda and Serverless framework
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
[Rakuten TechConf2014] [C-5] Ichiba Architecture on ExaLogic
M|18 Scalability via Expendable Resources: Containers at BlaBlaCar
Develop in ludicrous mode with azure serverless
Running High-Speed Serverless with nuclio
SolarWinds Scalability for the Enterprise
Log aggregation and analysis
Being HAPI! Reverse Proxying on Purpose
StrongLoop Overview
Intro to node and mongodb 1
Network Automation with Salt and NAPALM: Introuction
Service discovery like a pro (presented at reversimX)
murakumo Cloud Controller

More from inovex GmbH (20)

PDF
lldb – Debugger auf Abwegen
PDF
Are you sure about that?! Uncertainty Quantification in AI
PDF
Why natural language is next step in the AI evolution
PDF
WWDC 2019 Recap
PDF
Network Policies
PDF
Interpretable Machine Learning
PDF
Jenkins X – CI/CD in wolkigen Umgebungen
PDF
AI auf Edge-Geraeten
PDF
Prometheus on Kubernetes
PDF
Deep Learning for Recommender Systems
PDF
Azure IoT Edge
PDF
Representation Learning von Zeitreihen
PDF
Talk to me – Chatbots und digitale Assistenten
PDF
Künstlich intelligent?
PDF
Dev + Ops = Go
PDF
Das Android Open Source Project
PDF
Machine Learning Interpretability
PDF
Performance evaluation of GANs in a semisupervised OCR use case
PDF
People & Products – Lessons learned from the daily IT madness
PDF
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
lldb – Debugger auf Abwegen
Are you sure about that?! Uncertainty Quantification in AI
Why natural language is next step in the AI evolution
WWDC 2019 Recap
Network Policies
Interpretable Machine Learning
Jenkins X – CI/CD in wolkigen Umgebungen
AI auf Edge-Geraeten
Prometheus on Kubernetes
Deep Learning for Recommender Systems
Azure IoT Edge
Representation Learning von Zeitreihen
Talk to me – Chatbots und digitale Assistenten
Künstlich intelligent?
Dev + Ops = Go
Das Android Open Source Project
Machine Learning Interpretability
Performance evaluation of GANs in a semisupervised OCR use case
People & Products – Lessons learned from the daily IT madness
Infrastructure as (real) Code – Manage your K8s resources with Pulumi

Recently uploaded (20)

PPT
Introduction Database Management System for Course Database
PDF
medical staffing services at VALiNTRY
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administraation Chapter 3
Introduction Database Management System for Course Database
medical staffing services at VALiNTRY
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
ISO 45001 Occupational Health and Safety Management System
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Wondershare Filmora 15 Crack With Activation Key [2025
Online Work Permit System for Fast Permit Processing
How to Migrate SBCGlobal Email to Yahoo Easily
Upgrade and Innovation Strategies for SAP ERP Customers
ManageIQ - Sprint 268 Review - Slide Deck
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3

Saltstack - Orchestration & Application Deployment

  • 1. SaltStack Orchestration & Application Deployment Arnold Bechtoldt Oberhausen, 07.11.2015
  • 2. Arnold Bechtoldt Systems Engineer @ inovex GmbH 〉  Platform Engineering 〉  System Automation & Development 〉  DevOps Support & Consulting 〉  Open Source Software Contributions 2
  • 3. 1.  Orchestration in General 2.  SaltStack Orchestration Basics 3.  Hands on: Demo 4.  Q&A Agenda 3
  • 4. Assets & Links 4 inovex.de arnoldbechtoldt.comgithub.com/bechtoldt/talk-salt-orchestration
  • 7. 〉  Lazy Admins: „Don‘t repeat yourself“ (DRY) 〉  Busy Admins: „I have a lot of other problems and [...]“ 〉  Small Teams: „Ask X, but she/he is out of office until next week“ Who needs Orchestration? 7
  • 8. 〉  ... uses remote execution to distribute system commands 〉  ... should be more than just executing commands (most of the tools end here) 〉  ... should be able to respect internal & external dependencies/relations 〉  ... should happen deterministic, imperative and fast 〉  ... must [RFC2119] be easy to understand/learn (YMMV) Orchestration... 8
  • 9. 9 MCollective + Shell Script A not-so-cool Example
  • 10. http://www.ansible.com/blog/orchestration-you-keep-using-that-word For instance, if you use a single-purpose deployment tool [...] to trigger some legacy configuration management, that might be called “orchestrating X with Y”. In reality, it’s usually just replacing a non- scaling [...] server solution X with a stand-alone implementation of Y. 10
  • 12. SaltStack implements the same techiniques that other tools do: 〉  send commands to servers 〉  send commands to servers that have different operating systems 〉  send commands only to a subset of servers 〉  run command A, then B, then C Some people call this orchestration and wrap this shell-oneliner with thousands LoC. SaltStack Orchestration 12
  • 13. What we really want to have: 〉  scale accross thousands of servers 〉  easy configuration (less software programming) 〉  an interface to implement internal/external relationships (pre/post tasks) 〉  fully automated workflows/procedures (no manual interaction) SaltStack Orchestration 13
  • 14. What we really want to have: 〉  scale accross thousands of servers SOA – Message Bus Architecture 〉  easy configuration (less software programming) YAML – JSON – Python DSL 〉  an interface to implement internal/external relationships (pre/post tasks) State – Execution – Pillar – Returner – Beacon – Cloud (~ 600 modules) 〉  fully automated workflows/procedures (no manual interaction) Event System – Reactor – Runner – APIs SaltStack Orchestration 14
  • 15. State A resource should look like {…} Pillar Database/CMDB (Files, RDBMS, NoSQL) Execution Execute command X on a server. Used by other Salt components. Returner Log store of job results (DB, Elasticsearch, Syslog, Monitoring) Beacon Special event triggers (inotify, load, procs, network/user activity) Reactor Reacts to events by triggering subsequent procedures (execution modules) Cloud IaaS provisioning (EC2, OpenStack, Digital Ocean, Linode, GCE, VMware) … SaltStack Terminology 15
  • 16. Event-Driven System Automation 16 minion minion minion minionminion minion minion minion minion minionminion reactor (master) salt/key salt/job/new node/stonith/new update/application salt/auth salt/job/return scale/out loadbalancer/config/update salt/minion/start salt/presence/present monitoring/hosts/new firewall/config/update salt/minion/stop salt/presence/change monitoring/hosts/remove coffee/new
  • 17. salt/job/20151104191820394966/new { "_stamp": "2015-11-04T18:18:20.512126", "arg": [ ”orchestration.bootstrap", { "__kwarg__": true, "test": false } ], "fun": "state.sls", "jid": "20151104191820394966", "minions": [ ”mw42" ], "tgt": ”mw42", "tgt_type": "glob", "user": ”root” } Event Structure 17 custom/minion/haste_server_started { "_stamp": "2015-11-04T18:33:54.650568", "cmd": "_minion_event", "data": { ”custom": { "onchanges": [], "foo": "bar", "num": 42, }, "sfun": "wait" }, "id": "mw2", "pretag": null, "tag": "custom/minion/haste_server_started" }
  • 18. Event-Driven System Automation 18 minion minion minion minion minion minionmaster MySQL Foreman etcd MySQL ElasticsearchSMTP Syslog Icinga Appliances HTTP Docker Slack PostgreSQLminion AWS
  • 20. Demo Concept 20 1. Tells MW hosts to install MW 4. Tells FE hosts to install FE 6. Tells MW hosts to deploy App 10. Tells FE to reconfigure FE 2. Install Node.JS (MW) 3. Report back to Master 7. Deploy App 8. Send Notification Mail 9. Report back to Master 5. Install Haproxy (FE) 6. Report back to Master 11. Add/Remove HAProxy backends 12. Report back to Master Salt Master/Reactor MW hosts FE hosts
  • 21. Demo Concept 21 1. Tells MW hosts to install MW 4. Tells FE hosts to install FE 6. Tells MW hosts to deploy App 10. Tells FE to reconfigure FE 2. Install Node.JS (MW) 3. Report back to Master 7. Deploy App 8. Send Notification Mail 9. Report back to Master 5. Install Haproxy (FE) 6. Report back to Master 11. Add/Remove HAProxy backends 12. Report back to Master Salt Master/Reactor MW hosts FE hosts
  • 22. Assets & Links 22 sh.arbe.io/cloud-provision youtu.be/9MzeK4u4pkM (demo)github.com/bechtoldt/talk-salt-orchestration
  • 23. Q&A
  • 27. Kolleginnen und Kollegen gesucht! •  Application Development •  Business Development •  Consulting •  Data Management & Analytics •  IT Engineering & Operations •  Hamburg •  Karlsruhe •  Köln •  München •  Pforzheim inovex.de/jobs
  • 28. Thank You! Arnold Bechtoldt IT Engineering & Operations inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe - Germany arnold.bechtoldt@inovex.de CC BY-NC-ND inovex.de +ArnoldBechtoldtGER github.com/bechtoldt arbe.io youtube.com/ inovexGmbH