SlideShare a Scribd company logo
1 of 110
Download to read offline
A Tale of Two Workflows
Pete Cheslock
@petecheslock
Age of Wisdom?
Age of Foolishness?
Who Am I?
Pete Cheslock
Currently - Rabble Rouser at Dyn
!
Previously at Sonian - one of the very early Opscode Chef™
Customers (probably?). Also Sensu.
Disclaimer
WARNING: THIS TALK FEATURES TWO CRAZY ASS WAYS
YOU CAN USE CHEF AND IS INTENDED FOR A MATURE
AUDIENCE. PETE CHESLOCK DOES NOT CONDONE THE
WORKFLOWS USED AND DISCOURAGES ANYONE FROM
ATTEMPTING THEM.
Disclaimer
WARNING: THIS TALK FEATURES TWO CRAZY ASS WAYS
YOU CAN USE CHEF AND IS INTENDED FOR A MATURE
AUDIENCE. PETE CHESLOCK DOES NOT CONDONE THE
WORKFLOWS USED AND DISCOURAGES ANYONE FROM
ATTEMPTING THEM.
THIS TALK MAY ANGER YOU - I’M HERE IF YOU NEED
A HUG AFTERWARDS
Double Disclaimer
For the love of all that is DevOps..
Double Disclaimer
For the love of all that is DevOps..
Please don’t Cargo Cult this.
What do you do here?
I’m a people person - I swear.
Biases rule everything around me
Chef
The cause of... and solution to... all of life's problems.
Environments
Databags
Roles are good
Roles are bad
WTF is a Berkshelf?
Librarian?
Chef Server
Chef Zero
Vagrant-Berkswhat?
Hosted Chef
LWRPs
Don’t Use Definitions!
Definitions are Awesome!
Pick Your Poison
Sonian
Founded 2008
2008 AWS Startup Challenge Finalist
I joined in 2009
Very early Chef user - Originally with
Puppet (before Opscode existed)
Pre-Databags, Roles, etc, etc.
Massive growth in short time - reaching
100’s of TB’s of ElasticSearch and well
over a PB of S3 Storage.
https://github.com/opscode/chef-repo
.chef/knife.rb
cookbooks
data_bags
environments
roles
Soon - business started to pick
up - very quickly.
Speed picked up, things moved
fast and we broke stuff
Soon - business started to pick
up - very quickly.
Speed picked up, things moved
fast and we broke stuff
To close some deals we had
contracts signed that would
limit when we could push
changes to the systems.
Customer A:
HEAD
sonian/chef-repo:master
Customer B:
fd50a5c
Customer C:
sonian/chef-repo:tag-v0.1.1
a1add77
Customer A:
HEAD
sonian/chef-repo:master
Customer B:
fd50a5c
Customer C:
sonian/chef-repo:tag-v0.1.1
HEAD
Now imagine that scenario with 20 environments - Each
environment living either on AWS, Rackspace Cloud, HP Cloud or
IBM “SmartCloud”
Each environment has a different contracted deployment schedule.
I know what you are thinking - system changes aren’t a “deploy” -
well next time I’ll bring you to meet with the lawyers on that.
How did this work in practice?
In the past we’d push a small change to Prod - everything would
break terribly. Lots of technical debt - scenarios that no one could
ever believe could happen
This is email archiving - in some cases customers would have mail
forwarded to us via their mail server. We CAN NOT drop that
mail. If they are audited and we are proven to be missing data -
that is really, really bad. Srs super bad.
We liked our single Chef-repo
Every Story had Branch- and we got into the cycle of commit,
merge, push and test
Represented our pre-prod environments as branches in git - using
some internal tooling to manage.
eng-9999
HEAD
(master)
QA
(Daily)
Dev
(Daily)
Cut a new branch
from Master
Developer adds
commits and test
locally
Developer merges to
dev branch for dev
testing
If things “work”
and nothing breaks -
merge to QA
If it passes
regression testing -
merge into master
(with others)
• roles/stack.rb
• base.rb
• nonprod.rb
• cloud.rb (ec2, rackspace)
• roles/application.rb
• application.rb
• service.rb
• etc.rb
“Hold on a minute. I’m
just going to push this small
change to this one role.”
It’s roles all the way down
We got burned all the time.
“Move Fast and Break Everything”
Needed something that worked for
today & the future
Let’s create a Git branching
strategy!
Wut?
I know.
Seriously. I know.
We were trying to answer this one question.
“How do you version the cookbooks, roles,
and databags as one singular asset.”
release/
2011-08-01
release/
2011-07-01
master
(HEAD)
release/
2011-08-01
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Cut a new branch
for the release
At the same time
create a base/
release tag.
release/
2011-08-01
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Cut a new branch
for the release
At the same time
create a base/
release tag.
QA
New code constantly
hitting master
release/
2011-08-01
eng-9999
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Cut a new branch
for the release
At the same time
create a base/
release tag.
QA
New code constantly
hitting master
Checkout a branch
from the Base Tag
Merge code into
Release branch
Merge into master if
you want it to advance
base/
2011-08-01
release/
2011-08-01
eng-9999
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Cut a new branch
for the release
At the same time
create a base/
release tag.
base/
2011-08-01
release/
2011-08-01
eng-9999
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Make individual commits and
Cherry-pick forward
Cut a new branch
for the release
At the same time
create a base/
release tag.
base/
2011-08-01
release/
2011-08-01
eng-9999
base/
2011-07-01
release/
2011-07-01
master
(HEAD)
Cut a new branch
for the release
At the same time
create a base/
release tag.
Rebase & Squash
commits branches
Backwards
That sounds overly complex
We has some git experts - and it
leveled up all our game.
Extensive tooling around our
branching strategy.
We were Release Engineering.
https://github.com/sniperd/mise-en-place
So What Happened?
It actually worked.
Not only that - it really worked well.
20+ Stacks, upgrading 4 per night (6pm to 12pm if you are lucky)
Before “Deploy Week” - we deployed all the time - and things broke
all the time.
Over the course of about 12 months we went from:
Deploy whenever - things break randomly (little testing)
Create a multi-page deploy checklist of mostly manual items
“Deploy Week” - 20 Stacks over 5 days (6pm to 12am - hopefully)
“Deploy Day” - 20 Stack over one night - 6pm to 9pm
“Deploy Day” - Saturday (contracts) - Best time was 20+ stacks ~1 hour
Deploys were drama free	
They were drama free because we tested all the pieces that changes
together. And not just unit and integration testing, but full on
regression testing and user acceptance testing.
DataBags, Roles, Cookbooks, Application Code - It all moved together.
Tooling was built to support the support team (who eventually did the
deploys)
High communication and tight teamwork allowed this to work.
“If I could do it all over again I would do it very differently”
Dyn
Incorporated in 2001, Dyn’s
global presence services more than
four million enterprise, small
business and personal customers.
We specialize in Traffic Management
& Message Management
I joined early in 2013 to run the
System Automation and Release
Engineering Team
	 (We call it DevTools)
There is always technical debt in the banana stand
Chef
CFEngine
Puppet
NIH
Develop a pipeline that allows
for simple usage by plugging it
into a CI system for
automated testing and
deployment.
!
But the hardest challenge is that change is dangerous. It’s even
more frightening when you have a MASSIVE chunk of the internet
depending on you to stay running ALL THE TIME.
Do it w/o taking down the internet
If we don’t build in the
necessary gates and levers to
allow for lots of testing and
controlled deploy options out
to our edge systems, bad
things can happen.
Scope of bad
Scope of bad
Scope of bad
Scope of bad
Scope of bad
Scope of bad
Initial Challenges
We have lots of FreeBSD
Change is hard - especially to unknown systems.
We really wanted to deploy a solution that was going to bring in
Zero Dependencies.
I heard you like FreeBSD…
Now that FreeBSD problem is solved - we were able to start
deploying Chef out to all our nodes.
We created a role[base] - which includes a run list of items of things
we wanted in place.
About a month later or so - we wanted to push a change to that role
- at the same time it was linked to some specific cookbook versions.
So basically we wanted a versioned
run list - but we also want to set and
override some attributes also.
So we decided to move our roles (since
we were not using them much yet) and
just focus on using wrapper recipes.
The bonus here is that any person can
just clone a cookbook - and run Test-
Kitchen & Serverspec on that “role”
to get a node just like it. No dealing
with roles from other cookbooks.
Roles vs. No Roles
The wrapper recipe idea made sense to us because we wanted to
make sure that when we used community cookbooks - we never
edited them. So for example we have a dyn_ci recipe which wraps
the functionality inside of the Jenkins recipe.
When Jenkins updates from 1.0 to 2.0 - we simply update and
refactor our wrapper cookbook and set the version constraint in the
metadata as appropriate.
Circular Dependency
We use the default chef-full template and it has a section that looks
like this:
!
Where are most community cookbooks stored? github.com &
community.opscode.com. Who does their DNS? You see where
we are going.
So - we created a new organization on our Enterprise Chef Server
- called the cookbook repo, where we stored community
cookbooks we used.
Later we moved those to Github Enterprise locally for 2 reasons.
1. It allowed anyone to easily see which cookbooks we already had
locally.
2.It allowed us to run short time forks of those cookbooks while we
pushed the changes upstream to the owner. (and for people to see
those changes.
Remove the humans from the equation
!
Foodcritic, chefspec, rubocop,
serverspec
thor-scmversion to automate
versioning and git tagging.
Run will
execute - if
the tests
pass - thor
will version
based on
#patch,
#minor,
#major
So we try to speed up the iteration to master
So - now the development cycle looks like
User cuts a branch - makes changes - runs tests locally (we hope) -
then submits a pull request.
Jenkins tests the PR - if good - report back to GH:E with Green.
When merged - Jenkins runs the tests again - if they pass then
Jenkins will tag the release and upload it to the cookbookrepo.
Development Deployment
How has this worked?
We are the product owner
On-Demand support internally
Training
Mentoring
All new apps come with
cookbooks.
They even come with tests.
(Yay!)
Test Kitchen and Berkshelf
for our local development and
deploy
github.com/dyninc/cookbookapi
So we built our own
cookbook api to use
(with Berks 2) that let
us use our own site
with our own
cookbooks (and the
community cookbooks
in our site repo)
So how do you get it to production?
So - the requirements were such that we wanted a few thing
Easily be able to deploy to a single node in a site
Easily be able to deploy to a single node in many sites
Easily be able to deploy to a single node in every site
Easily be able to deploy to a single node in a region
Easily be able to deploy to a single node in many sites
…… you get the point. EVERY POSSIBLE DEPLOY SCENARIO.
Represent state of chef org in Git
Act as single source of truth
Have Jenkins manage the upload of
those cookbooks to prod
Ensure the environment locks those
cookbooks explictly
So, i already told you we didn’t use roles because we really wanted to be able
to version the run list (many people other than us could be touching that).
We have thor-scmversion auto bumping the versions of cookbooks (and
freezing on upload to the package server) As one does.
We knew that when we ran node in production - we want it in an
environment with very specific cookbook version locks.
And we wanted those environment to be immutable. Created and uploaded
in an automated way.
We’ve been using thor-scm for versioning our cookbooks - why not
our servers too?
1_5_LATEST1_5_0
1_4_123
1_4_LATEST1_4_1251_4_124-alpha_1
app-2
app-1
1_4_LATEST
Virtual Real
=
1_5_LATEST1_5_0
1_4_123
1_4_LATEST1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
6ead49d Deploy dyn_myface v1.0.3
Virtual Real
=
1_5_LATEST1_5_0
1_4_123
1_4_LATEST1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
6ead49d Deploy dyn_myface v1.0.3
Virtual Real
=
1_5_LATEST1_5_0
1_4_123
1_4_LATEST 1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
6ead49d Deploy dyn_myface v1.0.3
d6b0b7e Deploy dyn_myface v1.0.3 to all #patch
Virtual Real
=
1_5_LATEST1_5_0
1_4_123
1_4_LATEST 1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
6ead49d Deploy dyn_myface v1.0.3
d6b0b7e Deploy dyn_myface v1.0.3 to all #patch
Virtual Real
=
1_5_LATEST 1_5_0
1_4_123
1_4_LATEST 1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
=
6ead49d Deploy dyn_myface v1.0.3
d6b0b7e Deploy dyn_myface v1.0.3 to all #patch
Virtual Real
7db580b Deploy dyn_myface v2.0.0 #minor
=
1_5_LATEST 1_5_0
1_4_123
1_4_LATEST 1_4_125
1_4_124-alpha_1
app-2
app-1
1_4_LATEST
=
6ead49d Deploy dyn_myface v1.0.3
d6b0b7e Deploy dyn_myface v1.0.3 to all #patch
Virtual Real
7db580b Deploy dyn_myface v2.0.0 #minor
=
Limited allow list for deploy
Anyone can propose a change to production - but the ops team will
approve those changes. (for #patch or greater that is)
The same workflow applies to pre-release environments.
Databags?
Since we version all of our cookbooks using Thor-scmversion
And we do the same with chef environments.
And we need lots of flexibility with our code deployment process
due to the nature of the system
We built a tool that allows us to version our databags for deploy.
https://github.com/Vanders/knife-databag-version
Version your databags?
Seriously - what is wrong with
you?
We use databags pretty sparingly
- mostly just encrypted databags
for shared secrets and other info.
Our engineers ask us for the
flexibility - we build the tools.
The tools enable the workflow.
What’s this all look like?
assume we have a simple data bag item:
with knife data bag version this becomes a template:
knife data bag version can then create a JSON file using this template:
knife data bag version will emit a JSON file:
All managed by Jenkins - hands off
for the developer
Databags the same as cookbooks -
and allow for more flexible deploy
options for us.
We still use standard databags - this is
just another lever to pull
Room for improvement?
#minor and #major
Site to abstract changing
cookbook versions.
Upload cookbooks early -
control with environment
version locks
Thank You
Pete Cheslock
petecheslock@gmail.com
@petecheslock
Thank You
Pete Cheslock
petecheslock@gmail.com
@petecheslock

More Related Content

What's hot

Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewJosh Padnick
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
 
Game of Codes: the Battle for CI
Game of Codes: the Battle for CIGame of Codes: the Battle for CI
Game of Codes: the Battle for CIAtlassian
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Simplilearn
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeJosh Padnick
 
Built to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxBuilt to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxKim Moir
 
Zero downtime deploys for Rails apps
Zero downtime deploys for Rails appsZero downtime deploys for Rails apps
Zero downtime deploys for Rails appspedrobelo
 
Chef Cookbook Design Patterns
Chef Cookbook Design PatternsChef Cookbook Design Patterns
Chef Cookbook Design PatternsEric Krupnik
 
Distributed Systems at Scale: Reducing the Fail
Distributed Systems at Scale:  Reducing the FailDistributed Systems at Scale:  Reducing the Fail
Distributed Systems at Scale: Reducing the FailKim Moir
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt55020
 
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Domas Lasauskas
 
Avoiding integration hell
Avoiding integration hellAvoiding integration hell
Avoiding integration hellaaronbassett
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrantandygale
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlassian
 
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)Gareth Bowles
 

What's hot (20)

Play Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level OverviewPlay Framework: Intro & High-Level Overview
Play Framework: Intro & High-Level Overview
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Game of Codes: the Battle for CI
Game of Codes: the Battle for CIGame of Codes: the Battle for CI
Game of Codes: the Battle for CI
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
 
Built to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolboxBuilt to Scale: The Mozilla Release Engineering toolbox
Built to Scale: The Mozilla Release Engineering toolbox
 
Zero downtime deploys for Rails apps
Zero downtime deploys for Rails appsZero downtime deploys for Rails apps
Zero downtime deploys for Rails apps
 
Chef Cookbook Design Patterns
Chef Cookbook Design PatternsChef Cookbook Design Patterns
Chef Cookbook Design Patterns
 
Distributed Systems at Scale: Reducing the Fail
Distributed Systems at Scale:  Reducing the FailDistributed Systems at Scale:  Reducing the Fail
Distributed Systems at Scale: Reducing the Fail
 
Don't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen EmeryDon't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen Emery
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt
 
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
Serverless in production, an experience report (Going Serverless, 28 Feb 2018)
 
Avoiding integration hell
Avoiding integration hellAvoiding integration hell
Avoiding integration hell
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
 
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
 
MeteorJS Session
MeteorJS SessionMeteorJS Session
MeteorJS Session
 

Viewers also liked

ChefConf 2014 - Kanban will save You! Will it?
ChefConf 2014 - Kanban will save You! Will it?ChefConf 2014 - Kanban will save You! Will it?
ChefConf 2014 - Kanban will save You! Will it?Marcin Mazurek
 
Lean kanban university presentatie tri ict Hartman & Stroo
Lean kanban university presentatie tri ict Hartman & StrooLean kanban university presentatie tri ict Hartman & Stroo
Lean kanban university presentatie tri ict Hartman & Strooajhartman
 
Kanban in Operations
Kanban in OperationsKanban in Operations
Kanban in Operationsfright
 
Mane wk2 term 2
Mane wk2 term 2Mane wk2 term 2
Mane wk2 term 2takp
 
Inst.1 1° cuat.2016 colinas - finco
Inst.1 1° cuat.2016   colinas - fincoInst.1 1° cuat.2016   colinas - finco
Inst.1 1° cuat.2016 colinas - fincoInstalacionesunon
 
Contoh kajian tindakan 2012
Contoh kajian tindakan 2012Contoh kajian tindakan 2012
Contoh kajian tindakan 2012Rafidah Roslan
 
Ring of fire
Ring of fireRing of fire
Ring of firejmrowde
 
Paraire week 7 term 3 pdf
Paraire week 7 term 3 pdfParaire week 7 term 3 pdf
Paraire week 7 term 3 pdftakp
 
Midia Kit Brasil Game Day (English)
Midia Kit Brasil Game Day (English)Midia Kit Brasil Game Day (English)
Midia Kit Brasil Game Day (English)LeadMedia Publishing
 
Turei wk 10 term 2 2013
Turei wk 10 term 2 2013Turei wk 10 term 2 2013
Turei wk 10 term 2 2013takp
 
Actividades casa por ambiente vertical
Actividades casa por ambiente verticalActividades casa por ambiente vertical
Actividades casa por ambiente verticaltommypalmieri
 
Wenerei week 4 term 3
Wenerei week 4 term 3Wenerei week 4 term 3
Wenerei week 4 term 3takp
 
Digital media : Animation 2012
Digital media : Animation 2012Digital media : Animation 2012
Digital media : Animation 2012Shannon Blackwood
 
Turei wk 4 term 2 pdf
Turei wk 4 term 2 pdf Turei wk 4 term 2 pdf
Turei wk 4 term 2 pdf takp
 
Everything obfuscurity taught me about monitoring
Everything obfuscurity taught me about monitoringEverything obfuscurity taught me about monitoring
Everything obfuscurity taught me about monitoringPete Cheslock
 
Sonian, Open Source and Sensu
Sonian, Open Source and SensuSonian, Open Source and Sensu
Sonian, Open Source and SensuPete Cheslock
 

Viewers also liked (20)

ChefConf 2014 - Kanban will save You! Will it?
ChefConf 2014 - Kanban will save You! Will it?ChefConf 2014 - Kanban will save You! Will it?
ChefConf 2014 - Kanban will save You! Will it?
 
KANBAN FOR IT OPS (DRAGOS DUMITRIU) - LKCE13
KANBAN FOR IT OPS (DRAGOS DUMITRIU) - LKCE13KANBAN FOR IT OPS (DRAGOS DUMITRIU) - LKCE13
KANBAN FOR IT OPS (DRAGOS DUMITRIU) - LKCE13
 
Lean kanban university presentatie tri ict Hartman & Stroo
Lean kanban university presentatie tri ict Hartman & StrooLean kanban university presentatie tri ict Hartman & Stroo
Lean kanban university presentatie tri ict Hartman & Stroo
 
Kanban in Operations
Kanban in OperationsKanban in Operations
Kanban in Operations
 
Mane wk2 term 2
Mane wk2 term 2Mane wk2 term 2
Mane wk2 term 2
 
Inst.1 1° cuat.2016 colinas - finco
Inst.1 1° cuat.2016   colinas - fincoInst.1 1° cuat.2016   colinas - finco
Inst.1 1° cuat.2016 colinas - finco
 
Muka depan sp hsp
Muka depan sp hspMuka depan sp hsp
Muka depan sp hsp
 
Contoh kajian tindakan 2012
Contoh kajian tindakan 2012Contoh kajian tindakan 2012
Contoh kajian tindakan 2012
 
Ring of fire
Ring of fireRing of fire
Ring of fire
 
Paraire week 7 term 3 pdf
Paraire week 7 term 3 pdfParaire week 7 term 3 pdf
Paraire week 7 term 3 pdf
 
Ppt
PptPpt
Ppt
 
Midia Kit Brasil Game Day (English)
Midia Kit Brasil Game Day (English)Midia Kit Brasil Game Day (English)
Midia Kit Brasil Game Day (English)
 
Turei wk 10 term 2 2013
Turei wk 10 term 2 2013Turei wk 10 term 2 2013
Turei wk 10 term 2 2013
 
Actividades casa por ambiente vertical
Actividades casa por ambiente verticalActividades casa por ambiente vertical
Actividades casa por ambiente vertical
 
Wenerei week 4 term 3
Wenerei week 4 term 3Wenerei week 4 term 3
Wenerei week 4 term 3
 
Digital media : Animation 2012
Digital media : Animation 2012Digital media : Animation 2012
Digital media : Animation 2012
 
Turei wk 4 term 2 pdf
Turei wk 4 term 2 pdf Turei wk 4 term 2 pdf
Turei wk 4 term 2 pdf
 
Everything obfuscurity taught me about monitoring
Everything obfuscurity taught me about monitoringEverything obfuscurity taught me about monitoring
Everything obfuscurity taught me about monitoring
 
TRIZ Part 3
TRIZ Part 3TRIZ Part 3
TRIZ Part 3
 
Sonian, Open Source and Sensu
Sonian, Open Source and SensuSonian, Open Source and Sensu
Sonian, Open Source and Sensu
 

Similar to A Tale of Two Workflows: Crazy Chef Workflows and Lessons Learned

Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up LookoutLookout
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateWill Button
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)alloy020
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changesJaewoo Ahn
 
The History of React-Hot-Loader
The History of React-Hot-LoaderThe History of React-Hot-Loader
The History of React-Hot-LoaderAnton Korzunov
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesdrupalindia
 
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016Codemotion
 
Work Queues
Work QueuesWork Queues
Work Queuesciconf
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
ChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef RetrospectiveChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef Retrospectivegwaldo
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and ChefDavid Benjamin
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPhil Zimmerman
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000'stechopsguru
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniterErik Giberti
 

Similar to A Tale of Two Workflows: Crazy Chef Workflows and Lessons Learned (20)

Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up Lookout
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS Fargate
 
A Tale of Two Apps
A Tale of Two AppsA Tale of Two Apps
A Tale of Two Apps
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
The History of React-Hot-Loader
The History of React-Hot-LoaderThe History of React-Hot-Loader
The History of React-Hot-Loader
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
 
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016
Deploying node.js at scale - Maraschi, Collina - Codemotion Amsterdam 2016
 
Work Queues
Work QueuesWork Queues
Work Queues
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Linuxcon​ 2013
Linuxcon​ 2013Linuxcon​ 2013
Linuxcon​ 2013
 
ChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef RetrospectiveChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef Retrospective
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and Chef
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniter
 

More from Pete Cheslock

How to keep the people you need
How to keep the people you needHow to keep the people you need
How to keep the people you needPete Cheslock
 
Pick Any Three: Good, Fast, or Safe - Devops from Scratch
Pick Any Three: Good, Fast, or Safe - Devops from ScratchPick Any Three: Good, Fast, or Safe - Devops from Scratch
Pick Any Three: Good, Fast, or Safe - Devops from ScratchPete Cheslock
 
DevOpsDays - Pick any Three - Devops from scratch
DevOpsDays - Pick any Three - Devops from scratchDevOpsDays - Pick any Three - Devops from scratch
DevOpsDays - Pick any Three - Devops from scratchPete Cheslock
 
Everyone has a plan until... Automacon16
Everyone has a plan until...  Automacon16Everyone has a plan until...  Automacon16
Everyone has a plan until... Automacon16Pete Cheslock
 
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the FutureWhy We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the FuturePete Cheslock
 
DevOpsDays PGH: How to Fail With One Weird Trick
DevOpsDays PGH:  How to Fail With One Weird TrickDevOpsDays PGH:  How to Fail With One Weird Trick
DevOpsDays PGH: How to Fail With One Weird TrickPete Cheslock
 
Recruiting is Broken - How Do We Fix It
Recruiting is Broken - How Do We Fix ItRecruiting is Broken - How Do We Fix It
Recruiting is Broken - How Do We Fix ItPete Cheslock
 
Chef boston-workflows
Chef boston-workflowsChef boston-workflows
Chef boston-workflowsPete Cheslock
 

More from Pete Cheslock (10)

How to keep the people you need
How to keep the people you needHow to keep the people you need
How to keep the people you need
 
Pick Any Three: Good, Fast, or Safe - Devops from Scratch
Pick Any Three: Good, Fast, or Safe - Devops from ScratchPick Any Three: Good, Fast, or Safe - Devops from Scratch
Pick Any Three: Good, Fast, or Safe - Devops from Scratch
 
DevOpsDays - Pick any Three - Devops from scratch
DevOpsDays - Pick any Three - Devops from scratchDevOpsDays - Pick any Three - Devops from scratch
DevOpsDays - Pick any Three - Devops from scratch
 
The Vasa Redux
The Vasa ReduxThe Vasa Redux
The Vasa Redux
 
Everyone has a plan until... Automacon16
Everyone has a plan until...  Automacon16Everyone has a plan until...  Automacon16
Everyone has a plan until... Automacon16
 
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the FutureWhy We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
 
DevOpsDays PGH: How to Fail With One Weird Trick
DevOpsDays PGH:  How to Fail With One Weird TrickDevOpsDays PGH:  How to Fail With One Weird Trick
DevOpsDays PGH: How to Fail With One Weird Trick
 
Recruiting is Broken - How Do We Fix It
Recruiting is Broken - How Do We Fix ItRecruiting is Broken - How Do We Fix It
Recruiting is Broken - How Do We Fix It
 
Rubix cube
Rubix cubeRubix cube
Rubix cube
 
Chef boston-workflows
Chef boston-workflowsChef boston-workflows
Chef boston-workflows
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

A Tale of Two Workflows: Crazy Chef Workflows and Lessons Learned