SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System...
Transcript of SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System...
![Page 1: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/1.jpg)
SaltStack Orchestration & Application Deployment
Arnold Bechtoldt
Oberhausen, 07.11.2015
![Page 2: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/2.jpg)
Arnold Bechtoldt Systems Engineer @ inovex GmbH
〉 Platform Engineering
〉 System Automation & Development
〉 DevOps Support & Consulting
〉 Open Source Software Contributions
2
![Page 3: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/3.jpg)
1. Orchestration in General 2. SaltStack Orchestration Basics
3. Hands on: Demo
4. Q&A
Agenda
3
![Page 4: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/4.jpg)
Assets & Links
4
inovex.de arnoldbechtoldt.com github.com/bechtoldt/talk-salt-orchestration
![Page 5: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/5.jpg)
Orchestration in General
![Page 6: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/6.jpg)
Highway To Heaven
6
Asset-Management, Accounting
Bare-Metal Deployment
Configuration Management/ Containerization
Orchestration
Auto-Scaling + Elasticity
Cloud
![Page 7: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/7.jpg)
〉 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
![Page 8: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/8.jpg)
〉 ... 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
![Page 9: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/9.jpg)
9
MCollective + Shell Script
A not-so-cool Example
![Page 10: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/10.jpg)
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
![Page 11: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/11.jpg)
SaltStack Orchestration Basics
![Page 12: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/12.jpg)
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
![Page 13: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/13.jpg)
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
![Page 14: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/14.jpg)
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
![Page 15: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/15.jpg)
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
![Page 16: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/16.jpg)
Event-Driven System Automation
16
minion
minion minion
minion minion
minion
minion minion
minion
minion minion
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
![Page 17: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/17.jpg)
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" }
![Page 18: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/18.jpg)
Event-Driven System Automation
18
minion
minion
minion
minion minion
minion master
MySQL
Foreman etcd
MySQL
Elasticsearch SMTP
Syslog Icinga
Appliances
HTTP
Docker
Slack
PostgreSQL minion AWS
![Page 19: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/19.jpg)
Hands on: Demo
![Page 20: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/20.jpg)
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
![Page 21: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/21.jpg)
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
![Page 22: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/22.jpg)
Assets & Links
22
sh.arbe.io/cloud-provision youtu.be/9MzeK4u4pkM (demo) github.com/bechtoldt/talk-salt-orchestration
![Page 23: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/23.jpg)
Q&A
![Page 24: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/24.jpg)
![Page 25: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/25.jpg)
![Page 26: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/26.jpg)
![Page 27: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/27.jpg)
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
![Page 28: SaltStack - inovex GmbH Bechtoldt Systems Engineer @ inovex GmbH 〉 Platform Engineering 〉 System Automation & Development 〉 DevOps Support & Consulting](https://reader034.fdocuments.in/reader034/viewer/2022042517/5af614247f8b9a9e598eed07/html5/thumbnails/28.jpg)
Thank You! Arnold Bechtoldt IT Engineering & Operations inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe - Germany [email protected]
CC BY-NC-ND inovex.de +ArnoldBechtoldtGER
github.com/bechtoldt arbe.io youtube.com/inovexGmbH