SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Real-time cloud management with Salt
Unlocked.io Seth House <shouse@saltstack.com>
2013-06-14
1 / 47
Salt philosophy
1 Salt philosophy
Building blocks
What are our building blocks?
Building blocks and complexity
Success comes from simplicity
Salt is aptly named
Flow + state = EVERYTHING
Building on state and flow
Building blocks for infra
Building remote ex
Building states
Building cloud
Building monitoring
Conclusion
2 Salt internals (briefly)
2 / 47
Salt philosophy Building blocks
Building blocks
3 / 47
Salt philosophy Building blocks
Building blocks
Everything we have is built on earlier generations
Building blocks of history
Agriculture
Cities
Governments
Mathematics
Manufacturing
Language
4 / 47
Salt philosophy What are our building blocks?
What are our building blocks?
Computers Systems
Data centers are the modern platform of invention
Large scale computing drives virtually all high level human interactions
Data centers themselves are becoming the building blocks
5 / 47
Salt philosophy Building blocks and complexity
Building blocks and complexity
As systems grow they become more complex
Increased complexity makes using larger building blocks impossible
Building blocks used today are simple
Easy to use
Easy to understand
Yet powerful
6 / 47
Salt philosophy Success comes from simplicity
Success comes from simplicity
Viable building blocks are fundamentally simple
Things that are in themselves simple to understand and use
Concepts that can cross barriers and cleanly apply to many higher level
uses
YAML is a great example
Unix is a great example
7 / 47
Salt philosophy Salt is aptly named
Salt is aptly named
8 / 47
Salt philosophy Salt is aptly named
Salt is aptly named
The name is the vision
Salt is in nature, a building block
Salt is in cooking, a building block
Salt is in life, a building block
Yes, this is where the logo came from
Yes, this is why it is Salt STACK
9 / 47
Salt philosophy Flow + state = EVERYTHING
Flow + state = EVERYTHING
Core idea behind Salt
Flow = Access and control
State = The functional state of the system
Between them All things are controlled
10 / 47
Salt philosophy Building on state and flow
Building on state and flow
Basics
Remote execution built on Flow
Config Management built on State
Ramping Up
Monitoring build on Flow + State
Cloud management is Flow + State
Auto healing is Flow + Flow
Orchestration is Flow + State
Distributed Deployment is Flow + State
11 / 47
Salt philosophy Building blocks for infra
Building blocks for infra
Salt has “Configuration Management”
Salt has “Remote Execution”
12 / 47
Salt philosophy Building remote ex
Building remote ex
Async Message Bus
Micro publish commands
Minion Side Logic
Return to arbitrary location
13 / 47
Salt philosophy Building states
Building states
All about data
Low level data structure calls state functions
High level data structure defines state calls
Languages are now arbitrary
14 / 47
Salt philosophy Building cloud
Building cloud
Remote Ex controls hypers
Remote ex commands hypers
All runs on Live data
15 / 47
Salt philosophy Building monitoring
Building monitoring
Remote Ex build on system libs
Data gathering is already there!
States used to detect the state of a system
States can declare that the state of a system is out of bounds
Fires back to the event bus
16 / 47
Salt philosophy Conclusion
Conclusion
17 / 47
Salt philosophy Conclusion
Conclusion
Salt is comprised of many building blocks
The underlying components are available, but they do not need to be
interfaced with
Salt is made to morph into the needs of the infra
Made to make small infrastructures easy, and large infrastructures
powerful
18 / 47
Salt internals (briefly)
1 Salt philosophy
2 Salt internals (briefly)
Master
Minions
Execution modules
Execution example
State modules
State module example
3 Salt speed
4 Minion data
5 Events
19 / 47
Salt internals (briefly) Master
Master
salt-master -d
Open two ports (pub/sub & reply channel)
20 / 47
Salt internals (briefly) Minions
Minions
salt-minion -d
Connect to the master
No open ports required
Listens for pubs from the master
/etc/salt/minion:
#master: salt
21 / 47
Salt internals (briefly) Execution modules
Execution modules
Contain all the functionality
22 / 47
Salt internals (briefly) Execution example
Execution example
salt ’web-*’ network.interfaces
23 / 47
Salt internals (briefly) State modules
State modules
Wrap execution modules
Before-check
test=true
Call out to execution modules
After-check
24 / 47
Salt internals (briefly) State module example
State module example
top.sls:
base:
’web-*’:
- httpd
httpd.sls:
httpd:
pkg:
- installed
25 / 47
Salt speed
1 Salt philosophy
2 Salt internals (briefly)
3 Salt speed
Communication
pub/sub
4 Minion data
5 Events
6 Schedules
7 What’s coming
26 / 47
Salt speed Communication
Communication
ZeroMQ
msgpack
27 / 47
Salt speed pub/sub
pub/sub
Asynchronous
Minions determine targeting match
Minions do all the work
28 / 47
Minion data
1 Salt philosophy
2 Salt internals (briefly)
3 Salt speed
4 Minion data
Peer
Peer example
Salt Mine
Salt Mine example
Returners
Returner full-circle example
5 Events
29 / 47
Minion data
Live data; peer interface
Recent data; Salt mine
Historical data; returners
30 / 47
Minion data Peer
Peer
/etc/salt/master:
peer:
lb-.*:
- network.interfaces
Be mindful of data security
Communication still goes through the master
31 / 47
Minion data Peer example
Peer example
Configuring haproxy.cfg:
{% for server,ip in
salt[’publish.publish’](
’web*’,
’network.interfaces’,
[’eth0’]).items() %}
server {{ server }} {{ ip[0] }}:80 check
{% endfor %}
32 / 47
Minion data Salt Mine
Salt Mine
/etc/salt/{master,minion}:
mine_functions:
network.interfaces: [eth0]
mine_interval: 60
New in Salt v0.15
Either master or minion config
Be mindful of data security
33 / 47
Minion data Salt Mine example
Salt Mine example
Configuring haproxy.cfg:
{% for server,ip in
salt[’mine.get’](
’web-*’,
’network.interfaces’,
[’eth0’]).items() %}
server {{ server }} {{ ip[0] }}:80 check
{% endfor %}
34 / 47
Minion data Returners
Returners
/etc/salt/{master,minion}:
redis.db: 0
redis.host: myredis
redis.port: 6379
Minions write directly
Can be read into Pillar via ext_pillar
35 / 47
Minion data Returner full-circle example
Returner full-circle example
Collect the data:
salt ’web-*’ network.interfaces eth0 
--return redis_return
Fetch the data via a custom ext_pillar module.
Use the data:
{% for server,ip in
salt[’pillar.get’](’web.ip_addrs’, {}).items()
server {{ server }} {{ ip[0] }}:80 check
{% endfor %}
36 / 47
Events
1 Salt philosophy
2 Salt internals (briefly)
3 Salt speed
4 Minion data
5 Events
Fire events
Watch for events (manually)
Reactor (react to events)
6 Schedules
7 What’s coming 37 / 47
Events Fire events
Fire events
salt ’lb-*’ event.fire_master 
refresh_pool loadbalancer
38 / 47
Events Watch for events (manually)
Watch for events (manually)
Some assembly required
salt/tests/eventlisten.py
Coming soon to salt-api
39 / 47
Events Reactor (react to events)
Reactor (react to events)
/etc/salt/master:
reactor:
- loadbalancer:
- /src/reactor/refresh_pool.sls
/src/reactor/refresh_pool.sls:
{% if data[’type’] == ’refresh_pool’ %}
highstate_run:
cmd.state.highstate:
- tgt: lb-*
{% endif %}
40 / 47
Schedules
1 Salt philosophy
2 Salt internals (briefly)
3 Salt speed
4 Minion data
5 Events
6 Schedules
Add events
Stats gathering
7 What’s coming
41 / 47
Schedules Add events
Add events
/etc/salt/{master,minion} (or pillar):
schedule:
highstate:
function: state.highstate
minutes: 60
42 / 47
Schedules Stats gathering
Stats gathering
schedule:
uptime:
function: status.uptime
seconds: 60
returner: redis
meminfo:
function: status.meminfo
minutes: 5
returner: redis
43 / 47
What’s coming
1 Salt philosophy
2 Salt internals (briefly)
3 Salt speed
4 Minion data
5 Events
6 Schedules
7 What’s coming
Monitoring states
Data resolution
44 / 47
What’s coming
Salt v.0.next
45 / 47
What’s coming Monitoring states
Monitoring states
Configure inline with existing states
Individual components are in place
Needed: glue
Needed: alerting
46 / 47
What’s coming Data resolution
Data resolution
Time-series data
Thin and/or summarize older and older data
Free with some returners
47 / 47

Contenu connexe

Tendances

OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
databus.pro
 

Tendances (20)

Introduction to SaltStack
Introduction to SaltStackIntroduction to SaltStack
Introduction to SaltStack
 
A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
 
Understanding salt modular sub-systems and customization
Understanding salt   modular sub-systems and customizationUnderstanding salt   modular sub-systems and customization
Understanding salt modular sub-systems and customization
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertools
 
Salt conf 2014 - Using SaltStack in high availability environments
Salt conf 2014 - Using SaltStack in high availability environmentsSalt conf 2014 - Using SaltStack in high availability environments
Salt conf 2014 - Using SaltStack in high availability environments
 
SaltStack Configuration Management
SaltStack Configuration ManagementSaltStack Configuration Management
SaltStack Configuration Management
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
 
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
 
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and SaltContinuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
 
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and StatesSaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with Salt
 
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
 
Experiences from Running Masterless Puppet - PuppetConf 2014
Experiences from Running Masterless Puppet - PuppetConf 2014Experiences from Running Masterless Puppet - PuppetConf 2014
Experiences from Running Masterless Puppet - PuppetConf 2014
 
Writing Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesWriting Custom Saltstack Execution Modules
Writing Custom Saltstack Execution Modules
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and Gitlab
 
Integration testing for salt states using aws ec2 container service
Integration testing for salt states using aws ec2 container serviceIntegration testing for salt states using aws ec2 container service
Integration testing for salt states using aws ec2 container service
 

Similaire à Real-time Cloud Management with SaltStack

This is the way - Holistic (Network) Automation
This is the way - Holistic (Network) AutomationThis is the way - Holistic (Network) Automation
This is the way - Holistic (Network) Automation
Maximilan Wilhelm
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
Timothy Spann
 
Serverless (Distributed computing)
Serverless (Distributed computing)Serverless (Distributed computing)
Serverless (Distributed computing)
Sri Prasanna
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
telestax
 

Similaire à Real-time Cloud Management with SaltStack (20)

This is the way - Holistic (Network) Automation
This is the way - Holistic (Network) AutomationThis is the way - Holistic (Network) Automation
This is the way - Holistic (Network) Automation
 
Apply, rinse and repeat: avoid the fidelity gap
Apply, rinse and repeat: avoid the fidelity gapApply, rinse and repeat: avoid the fidelity gap
Apply, rinse and repeat: avoid the fidelity gap
 
[Webinar] Site24x7 - The All-in-One Monitoring Solution for DevOps & IT
[Webinar] Site24x7 - The All-in-One Monitoring Solution for DevOps & IT[Webinar] Site24x7 - The All-in-One Monitoring Solution for DevOps & IT
[Webinar] Site24x7 - The All-in-One Monitoring Solution for DevOps & IT
 
Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015
 
All-in-one monitoring solution for DevOps & IT
All-in-one monitoring solution for DevOps & ITAll-in-one monitoring solution for DevOps & IT
All-in-one monitoring solution for DevOps & IT
 
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaSAutoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
 
Managing and Monitoring Application Performance
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application Performance
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
 
Puppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: KeynotePuppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: Keynote
 
Serverless (Distributed computing)
Serverless (Distributed computing)Serverless (Distributed computing)
Serverless (Distributed computing)
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
OSMC 2015: Monitor Open stack environments from the bottom up and front to ba...
OSMC 2015: Monitor Open stack environments from the bottom up and front to ba...OSMC 2015: Monitor Open stack environments from the bottom up and front to ba...
OSMC 2015: Monitor Open stack environments from the bottom up and front to ba...
 
OSMC 2015 | Monitor OpenStack environments from the bottom up and front to ba...
OSMC 2015 | Monitor OpenStack environments from the bottom up and front to ba...OSMC 2015 | Monitor OpenStack environments from the bottom up and front to ba...
OSMC 2015 | Monitor OpenStack environments from the bottom up and front to ba...
 
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
ChinaNetCloud - The Zabbix Database - Zabbix Conference 2014
 
From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011From MSS to TelScale - Mobicents Summit 2011
From MSS to TelScale - Mobicents Summit 2011
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Restfs internals
Restfs internalsRestfs internals
Restfs internals
 
PDC Highlights
PDC HighlightsPDC Highlights
PDC Highlights
 

Plus de SaltStack

Plus de SaltStack (14)

Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
 
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
 
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
 
Configuration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsConfiguration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needs
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
 
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStackSaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
SaltStack - An open source software story
SaltStack - An open source software storySaltStack - An open source software story
SaltStack - An open source software story
 
Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013
 
Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Real-time Cloud Management with SaltStack

  • 1. Real-time cloud management with Salt Unlocked.io Seth House <shouse@saltstack.com> 2013-06-14 1 / 47
  • 2. Salt philosophy 1 Salt philosophy Building blocks What are our building blocks? Building blocks and complexity Success comes from simplicity Salt is aptly named Flow + state = EVERYTHING Building on state and flow Building blocks for infra Building remote ex Building states Building cloud Building monitoring Conclusion 2 Salt internals (briefly) 2 / 47
  • 3. Salt philosophy Building blocks Building blocks 3 / 47
  • 4. Salt philosophy Building blocks Building blocks Everything we have is built on earlier generations Building blocks of history Agriculture Cities Governments Mathematics Manufacturing Language 4 / 47
  • 5. Salt philosophy What are our building blocks? What are our building blocks? Computers Systems Data centers are the modern platform of invention Large scale computing drives virtually all high level human interactions Data centers themselves are becoming the building blocks 5 / 47
  • 6. Salt philosophy Building blocks and complexity Building blocks and complexity As systems grow they become more complex Increased complexity makes using larger building blocks impossible Building blocks used today are simple Easy to use Easy to understand Yet powerful 6 / 47
  • 7. Salt philosophy Success comes from simplicity Success comes from simplicity Viable building blocks are fundamentally simple Things that are in themselves simple to understand and use Concepts that can cross barriers and cleanly apply to many higher level uses YAML is a great example Unix is a great example 7 / 47
  • 8. Salt philosophy Salt is aptly named Salt is aptly named 8 / 47
  • 9. Salt philosophy Salt is aptly named Salt is aptly named The name is the vision Salt is in nature, a building block Salt is in cooking, a building block Salt is in life, a building block Yes, this is where the logo came from Yes, this is why it is Salt STACK 9 / 47
  • 10. Salt philosophy Flow + state = EVERYTHING Flow + state = EVERYTHING Core idea behind Salt Flow = Access and control State = The functional state of the system Between them All things are controlled 10 / 47
  • 11. Salt philosophy Building on state and flow Building on state and flow Basics Remote execution built on Flow Config Management built on State Ramping Up Monitoring build on Flow + State Cloud management is Flow + State Auto healing is Flow + Flow Orchestration is Flow + State Distributed Deployment is Flow + State 11 / 47
  • 12. Salt philosophy Building blocks for infra Building blocks for infra Salt has “Configuration Management” Salt has “Remote Execution” 12 / 47
  • 13. Salt philosophy Building remote ex Building remote ex Async Message Bus Micro publish commands Minion Side Logic Return to arbitrary location 13 / 47
  • 14. Salt philosophy Building states Building states All about data Low level data structure calls state functions High level data structure defines state calls Languages are now arbitrary 14 / 47
  • 15. Salt philosophy Building cloud Building cloud Remote Ex controls hypers Remote ex commands hypers All runs on Live data 15 / 47
  • 16. Salt philosophy Building monitoring Building monitoring Remote Ex build on system libs Data gathering is already there! States used to detect the state of a system States can declare that the state of a system is out of bounds Fires back to the event bus 16 / 47
  • 18. Salt philosophy Conclusion Conclusion Salt is comprised of many building blocks The underlying components are available, but they do not need to be interfaced with Salt is made to morph into the needs of the infra Made to make small infrastructures easy, and large infrastructures powerful 18 / 47
  • 19. Salt internals (briefly) 1 Salt philosophy 2 Salt internals (briefly) Master Minions Execution modules Execution example State modules State module example 3 Salt speed 4 Minion data 5 Events 19 / 47
  • 20. Salt internals (briefly) Master Master salt-master -d Open two ports (pub/sub & reply channel) 20 / 47
  • 21. Salt internals (briefly) Minions Minions salt-minion -d Connect to the master No open ports required Listens for pubs from the master /etc/salt/minion: #master: salt 21 / 47
  • 22. Salt internals (briefly) Execution modules Execution modules Contain all the functionality 22 / 47
  • 23. Salt internals (briefly) Execution example Execution example salt ’web-*’ network.interfaces 23 / 47
  • 24. Salt internals (briefly) State modules State modules Wrap execution modules Before-check test=true Call out to execution modules After-check 24 / 47
  • 25. Salt internals (briefly) State module example State module example top.sls: base: ’web-*’: - httpd httpd.sls: httpd: pkg: - installed 25 / 47
  • 26. Salt speed 1 Salt philosophy 2 Salt internals (briefly) 3 Salt speed Communication pub/sub 4 Minion data 5 Events 6 Schedules 7 What’s coming 26 / 47
  • 28. Salt speed pub/sub pub/sub Asynchronous Minions determine targeting match Minions do all the work 28 / 47
  • 29. Minion data 1 Salt philosophy 2 Salt internals (briefly) 3 Salt speed 4 Minion data Peer Peer example Salt Mine Salt Mine example Returners Returner full-circle example 5 Events 29 / 47
  • 30. Minion data Live data; peer interface Recent data; Salt mine Historical data; returners 30 / 47
  • 31. Minion data Peer Peer /etc/salt/master: peer: lb-.*: - network.interfaces Be mindful of data security Communication still goes through the master 31 / 47
  • 32. Minion data Peer example Peer example Configuring haproxy.cfg: {% for server,ip in salt[’publish.publish’]( ’web*’, ’network.interfaces’, [’eth0’]).items() %} server {{ server }} {{ ip[0] }}:80 check {% endfor %} 32 / 47
  • 33. Minion data Salt Mine Salt Mine /etc/salt/{master,minion}: mine_functions: network.interfaces: [eth0] mine_interval: 60 New in Salt v0.15 Either master or minion config Be mindful of data security 33 / 47
  • 34. Minion data Salt Mine example Salt Mine example Configuring haproxy.cfg: {% for server,ip in salt[’mine.get’]( ’web-*’, ’network.interfaces’, [’eth0’]).items() %} server {{ server }} {{ ip[0] }}:80 check {% endfor %} 34 / 47
  • 35. Minion data Returners Returners /etc/salt/{master,minion}: redis.db: 0 redis.host: myredis redis.port: 6379 Minions write directly Can be read into Pillar via ext_pillar 35 / 47
  • 36. Minion data Returner full-circle example Returner full-circle example Collect the data: salt ’web-*’ network.interfaces eth0 --return redis_return Fetch the data via a custom ext_pillar module. Use the data: {% for server,ip in salt[’pillar.get’](’web.ip_addrs’, {}).items() server {{ server }} {{ ip[0] }}:80 check {% endfor %} 36 / 47
  • 37. Events 1 Salt philosophy 2 Salt internals (briefly) 3 Salt speed 4 Minion data 5 Events Fire events Watch for events (manually) Reactor (react to events) 6 Schedules 7 What’s coming 37 / 47
  • 38. Events Fire events Fire events salt ’lb-*’ event.fire_master refresh_pool loadbalancer 38 / 47
  • 39. Events Watch for events (manually) Watch for events (manually) Some assembly required salt/tests/eventlisten.py Coming soon to salt-api 39 / 47
  • 40. Events Reactor (react to events) Reactor (react to events) /etc/salt/master: reactor: - loadbalancer: - /src/reactor/refresh_pool.sls /src/reactor/refresh_pool.sls: {% if data[’type’] == ’refresh_pool’ %} highstate_run: cmd.state.highstate: - tgt: lb-* {% endif %} 40 / 47
  • 41. Schedules 1 Salt philosophy 2 Salt internals (briefly) 3 Salt speed 4 Minion data 5 Events 6 Schedules Add events Stats gathering 7 What’s coming 41 / 47
  • 42. Schedules Add events Add events /etc/salt/{master,minion} (or pillar): schedule: highstate: function: state.highstate minutes: 60 42 / 47
  • 43. Schedules Stats gathering Stats gathering schedule: uptime: function: status.uptime seconds: 60 returner: redis meminfo: function: status.meminfo minutes: 5 returner: redis 43 / 47
  • 44. What’s coming 1 Salt philosophy 2 Salt internals (briefly) 3 Salt speed 4 Minion data 5 Events 6 Schedules 7 What’s coming Monitoring states Data resolution 44 / 47
  • 46. What’s coming Monitoring states Monitoring states Configure inline with existing states Individual components are in place Needed: glue Needed: alerting 46 / 47
  • 47. What’s coming Data resolution Data resolution Time-series data Thin and/or summarize older and older data Free with some returners 47 / 47