"Introduction to orchestration using MCollective" by Pieter Loubser at Puppet Camp London 2013. Find the video here: http://puppetlabs.com/community/puppet-camp
2. Who am I?
Developer at Puppet Labs in London!
On the MCollective team for 2 years!
@pieterloubser on the twitter!
ploubser on IRC
3. Finite State Machines
Abstract machine that can only be in one of a finite
number of states!
It can move from one state to another when an
event or condition is triggered (transitions)
13. Agents - State Transitions
Agents can change the state the world is in!
Agents can determine what state the world is in !
An agent consists of two parts!
The DDL file which describes the Agent
14.
15. Agents - State Transitions
Agents can change the state the world is in!
Agents can determine what state the world is in !
An agent consists of two parts!
The DDL file which describes the Agent!
An implementation file that defines the actions
16.
17. State
We’re not always looking at the system as
a whole
MCollective uses discovery plugins as the source of
truth!
But touching all the things can sometimes be a bad
idea!
There is a desire for fine grained filtering
24. Filters
Filter on fact sources!
Filter on Puppet classes!
Filter on identity!
Complex filtering based on logical language
25.
26. Data Plugins
Enables you to determine system state by
executing code in a similar manner to agents!
Consist of the same two parts as Agents!
DDL!
Implementation
27.
28.
29.
30. Orchestration
A simple deployment scenario
5 web servers sitting behind a load balancer!
Mark a web server as down!
Update the application!
Mark the web server as up!
Profit
32. Ready for
upgrade
Removed from
load balancer
Pre deployment
Failed upgrade
Successful
upgrade
Ready for
load balancer
Failed to return
to load balancer
Failed to remove
from load balancer
Failed
deploy
Returned to
load balancer
Successful
deploy