SlideShare a Scribd company logo
1
Saltstack at Scale:
Automating the Automation
Steven Gonzales | EMC | Principal Software Engineer
#SaltConf15
2
• We build and run BIG clouds
• Object Storage
• Remote teams
• Smart people
• SRE/DEV
• We are hiring!
EMC2
CLOUD SERVICES
3
• Exabyte+ Object Storage
• Datacenters around the world
• 10,000+ nodes
• 14+ Salt Masters
SALT AT SCALE
WHAT DO WE MEAN BY SCALE?
4
STARTING OUT
FIRST FLIGHT WITH SALT
5
• Salt Version 0.17.x
• Tool for remote command execution
• Developed use of states
• Monolithic Salt repo
• Used in only one project
STARTING OUT
FIRST FLIGHT WITH SALT
6
• Poor code reuse across projects
• Divergent copies across projects
• Difficult to deploy pillar/states
• Hard to test
• Lack of consistent patterns
STARTING OUT
FIRST FLIGHT WITH SALT
7
• Version control
• Design patterns
• Code reuse
• Testing
• Deployment
• Build system!
INFRASTRUCTURE AS CODE
TREAT IT LIKE A SOFTWARE PRODUCT
8
ENTER THE
FORMULA
PATTERNS & PRACTICES
9
• Promotes code reuse
• End divergence
• Project repos should only
contain pillar data
• Test states independently
• Still needs standards
SALT FORMULAS
WHY FORMULAS?
10
SALT FORMULA
LAYOUT
• _modules and _states
• Debian packaging
• The states folder (i.e.: docker)
• Map.jinja
• Test Directory
• Makefile
• Cookiecutter!
11
• Map.jinja
• Every setting is defined and
has a default value
• OS map, defaults, and pillar
merged into settings dict
• Pillar acts as an override
• One place to see configuration
options
SALT FORMULAS
SETTINGS & CONFIGURATION
12
SALT FORMULA
SETTINGS & CONFIGURATION
• States and templates access all data though
the settings dict
13
• Provision VMs
• Built-in Salt provisioner
• Fast for local testing
• Disposable environment
• Private Networks
• Vagrant up!
SALT FORMULAS
TESTING WITH VAGRANT
14
• Write functional tests in
python
• Nosetests
• Tox
• Execute against the
Vagrant environment
SALT FORMULAS
PYTHON TEST TOOLS
15
• Install to /srv/formula
• Support installing _modules and _states
• Support versioning & dependencies
• Easy rollback
• Not every network has access to Git
SALT FORMULAS
HOW TO INSTALL?
16
• Don’t reinvent the wheel!
• `apt-get install salt-formula`
SALT FORMULAS
INSTALL WITH SYSTEM PACKAGES
17
AUTOMATING THE
AUTOMATION
BUILD AND DEPLOYMENT
18
• Salt-formula
• Bootstraps salt masters/minions
• Installs formulas/pillar from system pkgs
• Salt masters highstate themselves
SALT INCEPTION
CORE TO AUTOMATION
19
• Formulas have devel and master branches
• Developers PR against devel
• Merged to master after successful build/testing
WORKFLOWS
GIT BRANCHING
20
• Build server Go.cd
• Dashboard of build status
• Pipeline Templates
• Pipelines for devel and
master
• Notifications
WORKFLOWS
AUTOMATING THE BUILD
21
• Vagrant up & execute functional tests
• Build a package
• Push package into repo
• Devel to testing repo, master to prod repo
WORKFLOWS
BUILD STEPS
22
WORKFLOWS
FORMULA DEPENDENCIES
23
• Developers PR to merge to devel
• Build, package, & push to test repo
• Auto-install to test environment
• Merge devel to master
• Build, package, & push to prod repo
• Ready for Production
WORKFLOW
THE FULL PIPELINE
24
• Still plenty to convert to formulas
• Tests for pillar data
• Improve tooling for formula dependencies
• Expanded use of external pillar
NEXT STEPS
ALWAYS ROOM TO IMPROVE
25
Thoughtworks Go.cd:
Continuous build and delivery system
http://www.go.cd/
Vagrant:
Lightweight VM provisioning software
https://www.vagrantup.com/
Tox Automation Project:
Python test automation for running tests
inside a virtual environment
https://tox.readthedocs.org
USEFUL LINKS
Nosetests:
Python Test Runner
https://nose.readthedocs.org
Cookiecutter:
Project for rendering new projects from a
jinja template
https://cookiecutter.readthedocs.org
SaltConf2015: SaltStack at Scale Automating Your Automation

More Related Content

PPTX
Creating SaltStack State data with Pyobjects
PDF
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
PPTX
Integration testing for salt states using aws ec2 container service
PDF
From Chef to Saltstack on Cloud Providers - Incontro DevOps 2015
PDF
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
PDF
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
PPTX
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
PPT
SaltConf14 - Brendan Burns, Google - Management at Google Scale
Creating SaltStack State data with Pyobjects
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
Integration testing for salt states using aws ec2 container service
From Chef to Saltstack on Cloud Providers - Incontro DevOps 2015
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf14 - Brendan Burns, Google - Management at Google Scale

What's hot (20)

PDF
Experiences from Running Masterless Puppet - PuppetConf 2014
PPT
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
PDF
Spot Trading - A case study in continuous delivery for mission critical finan...
PDF
Configuration Management - Finding the tool to fit your needs
PDF
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PDF
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
PDF
Migrating the Online’s console with Docker
PPTX
Salt stack introduction
PPTX
Serverspec and Sensu - Testing and Monitoring collide
PDF
faastRuby - Building a FaaS platform with Redis (RedisConf19)
PDF
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
PPTX
MoldCamp - multidimentional testing workflow. CIBox.
PDF
Real-time Cloud Management with SaltStack
PPTX
Vagrant and Chef on FOSSASIA 2014
PDF
Steamlining your puppet development workflow
PPTX
1 DevOp vs 1.000 servers - Amazon EC2 and Chef automation intro
PDF
Test-Driven Infrastructure with Chef
PDF
Docker
PPTX
Continuous Delivery and Infrastructure as Code
PPTX
Neutron upgrades
Experiences from Running Masterless Puppet - PuppetConf 2014
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
Spot Trading - A case study in continuous delivery for mission critical finan...
Configuration Management - Finding the tool to fit your needs
PuppetCamp Sydney 2012 - Building a Multimaster Environment
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
Migrating the Online’s console with Docker
Salt stack introduction
Serverspec and Sensu - Testing and Monitoring collide
faastRuby - Building a FaaS platform with Redis (RedisConf19)
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
MoldCamp - multidimentional testing workflow. CIBox.
Real-time Cloud Management with SaltStack
Vagrant and Chef on FOSSASIA 2014
Steamlining your puppet development workflow
1 DevOp vs 1.000 servers - Amazon EC2 and Chef automation intro
Test-Driven Infrastructure with Chef
Docker
Continuous Delivery and Infrastructure as Code
Neutron upgrades
Ad

Viewers also liked (9)

PPTX
Saltconf 2016: Salt stack transport and concurrency
PDF
Saltconf16 - Salt is Not Configuration Management
PPTX
Automated OS and Application deployment using Razor and Puppet
PDF
Orchestrate Event-Driven Infrastructure with SaltStack
PDF
Intelligent infrastructure with SaltStack
PDF
Let Salt saltify it self!
PPTX
Automate your development environment with Jira and Saltstack
PDF
Linux tuning to improve PostgreSQL performance
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Saltconf 2016: Salt stack transport and concurrency
Saltconf16 - Salt is Not Configuration Management
Automated OS and Application deployment using Razor and Puppet
Orchestrate Event-Driven Infrastructure with SaltStack
Intelligent infrastructure with SaltStack
Let Salt saltify it self!
Automate your development environment with Jira and Saltstack
Linux tuning to improve PostgreSQL performance
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Ad

Similar to SaltConf2015: SaltStack at Scale Automating Your Automation (20)

PPTX
Automating Your Salt Tests
PDF
Testing Salt States (part 1)
PDF
Salt conf 2014 - Using SaltStack in high availability environments
PDF
Introduction to Systems Management with SaltStack
PDF
Understanding salt modular sub-systems and customization
PDF
Automated Application Management with SaltStack
PDF
Why SaltStack ?
PDF
SaltStack – (Not) just another Automation & Remote Execution Tool
PDF
Configuration Management with Saltstack
PDF
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
PPTX
Salt conf15 presentation-william-cannon
PDF
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
PDF
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
PPT
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
PDF
Introduction to SaltStack (An Event-Based Configuration Management)
PDF
Saltstack for Ansible users
ODP
Configuration Management and Salt
PPTX
SaltStack Configuration Management
PDF
Sweetening Systems Management with Salt
PDF
Salt Essentials 1st Edition Craig Sebenik
Automating Your Salt Tests
Testing Salt States (part 1)
Salt conf 2014 - Using SaltStack in high availability environments
Introduction to Systems Management with SaltStack
Understanding salt modular sub-systems and customization
Automated Application Management with SaltStack
Why SaltStack ?
SaltStack – (Not) just another Automation & Remote Execution Tool
Configuration Management with Saltstack
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Salt conf15 presentation-william-cannon
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
Introduction to SaltStack (An Event-Based Configuration Management)
Saltstack for Ansible users
Configuration Management and Salt
SaltStack Configuration Management
Sweetening Systems Management with Salt
Salt Essentials 1st Edition Craig Sebenik

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PPTX
A Presentation on Artificial Intelligence
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Modernizing your data center with Dell and AMD
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Advanced methodologies resolving dimensionality complications for autism neur...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
A Presentation on Artificial Intelligence
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Electronic commerce courselecture one. Pdf
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Modernizing your data center with Dell and AMD
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

SaltConf2015: SaltStack at Scale Automating Your Automation

  • 1. 1 Saltstack at Scale: Automating the Automation Steven Gonzales | EMC | Principal Software Engineer #SaltConf15
  • 2. 2 • We build and run BIG clouds • Object Storage • Remote teams • Smart people • SRE/DEV • We are hiring! EMC2 CLOUD SERVICES
  • 3. 3 • Exabyte+ Object Storage • Datacenters around the world • 10,000+ nodes • 14+ Salt Masters SALT AT SCALE WHAT DO WE MEAN BY SCALE?
  • 5. 5 • Salt Version 0.17.x • Tool for remote command execution • Developed use of states • Monolithic Salt repo • Used in only one project STARTING OUT FIRST FLIGHT WITH SALT
  • 6. 6 • Poor code reuse across projects • Divergent copies across projects • Difficult to deploy pillar/states • Hard to test • Lack of consistent patterns STARTING OUT FIRST FLIGHT WITH SALT
  • 7. 7 • Version control • Design patterns • Code reuse • Testing • Deployment • Build system! INFRASTRUCTURE AS CODE TREAT IT LIKE A SOFTWARE PRODUCT
  • 9. 9 • Promotes code reuse • End divergence • Project repos should only contain pillar data • Test states independently • Still needs standards SALT FORMULAS WHY FORMULAS?
  • 10. 10 SALT FORMULA LAYOUT • _modules and _states • Debian packaging • The states folder (i.e.: docker) • Map.jinja • Test Directory • Makefile • Cookiecutter!
  • 11. 11 • Map.jinja • Every setting is defined and has a default value • OS map, defaults, and pillar merged into settings dict • Pillar acts as an override • One place to see configuration options SALT FORMULAS SETTINGS & CONFIGURATION
  • 12. 12 SALT FORMULA SETTINGS & CONFIGURATION • States and templates access all data though the settings dict
  • 13. 13 • Provision VMs • Built-in Salt provisioner • Fast for local testing • Disposable environment • Private Networks • Vagrant up! SALT FORMULAS TESTING WITH VAGRANT
  • 14. 14 • Write functional tests in python • Nosetests • Tox • Execute against the Vagrant environment SALT FORMULAS PYTHON TEST TOOLS
  • 15. 15 • Install to /srv/formula • Support installing _modules and _states • Support versioning & dependencies • Easy rollback • Not every network has access to Git SALT FORMULAS HOW TO INSTALL?
  • 16. 16 • Don’t reinvent the wheel! • `apt-get install salt-formula` SALT FORMULAS INSTALL WITH SYSTEM PACKAGES
  • 18. 18 • Salt-formula • Bootstraps salt masters/minions • Installs formulas/pillar from system pkgs • Salt masters highstate themselves SALT INCEPTION CORE TO AUTOMATION
  • 19. 19 • Formulas have devel and master branches • Developers PR against devel • Merged to master after successful build/testing WORKFLOWS GIT BRANCHING
  • 20. 20 • Build server Go.cd • Dashboard of build status • Pipeline Templates • Pipelines for devel and master • Notifications WORKFLOWS AUTOMATING THE BUILD
  • 21. 21 • Vagrant up & execute functional tests • Build a package • Push package into repo • Devel to testing repo, master to prod repo WORKFLOWS BUILD STEPS
  • 23. 23 • Developers PR to merge to devel • Build, package, & push to test repo • Auto-install to test environment • Merge devel to master • Build, package, & push to prod repo • Ready for Production WORKFLOW THE FULL PIPELINE
  • 24. 24 • Still plenty to convert to formulas • Tests for pillar data • Improve tooling for formula dependencies • Expanded use of external pillar NEXT STEPS ALWAYS ROOM TO IMPROVE
  • 25. 25 Thoughtworks Go.cd: Continuous build and delivery system http://www.go.cd/ Vagrant: Lightweight VM provisioning software https://www.vagrantup.com/ Tox Automation Project: Python test automation for running tests inside a virtual environment https://tox.readthedocs.org USEFUL LINKS Nosetests: Python Test Runner https://nose.readthedocs.org Cookiecutter: Project for rendering new projects from a jinja template https://cookiecutter.readthedocs.org