Everything's Better With Salt

What is Config Management?


  • A way to define a set of configurations
  • Used to create a known state on a server
  • (Generally) Declarative instead of imperative
  • Replaces ad-hoc bash scripts

Why Is It Important?


  • Provides a known good state
  • Repeatable environments
  • Easier to troubleshoot bugs in application
  • Able to easily scale up and down

What Is Orchestration?


  • Definition: 'Harmonious Organization'
  • Executing tasks in a defined order
  • Managing servers from a central location

Why Is It Useful?


  • Easily execute tasks on multiple hosts
  • Perform tasks in a deterministic order
  • Perform multiple tasks at once
  • Reduces time and effort of performing tasks
  • Central repository of tasks to be performed
  • Consistent and repeatable outcomes of tasks

Mastering Your Infrastructure


  • Master node controls entire infrastructure
  • Central repository for config and orchestration
  • Inventory nodes in infrastructure
  • One-click deployment of entire environment
  • Manage sensitive data outside of source control
  • Web GUI for viewing and controlling minions
    • Written in AngularJS
    • Extensible and customizable

Managing Sensitive Data


  • Sensitive data includes passwords, AWS keys, etc.
  • Unsafe to store in source control (git, mercurial, etc.)
  • With SaltStack can be stored in DBMS (PostGreSQL, MongoDB)
  • Data sent directly to minion, only when needed
  • DBMS can live on the master node

More Fun For Everyone


Proper automation of config and orchestration allows for:
  • Repeatable environments
  • Able to build and destroy entire environments at a time
  • Self provisioning of environments for Dev and QA
  • Fast and easy scaling up or down depending on load
  • Faster and easier disaster recovery
  • Deploy builds to multiple servers
    • Synchronously or in rolling release

Everything's Better With Salt

By blarghmatey

Everything's Better With Salt

  • 798