SlideShare a Scribd company logo
1 of 46
Download to read offline
Workflow Design
Extracting Signal from the Noise
@jonlives
Jon Cowie
Staff Operations Engineer
@jonlives
There is no correct way to
use Chef.
workflow_design
@jonlives
…but I just want to

get stuff done!
@jonlives
Absorb what is
useful.
Discard what is
useless.
@jonlives
“I am not smart enough to
build an ontology … that
can encompass all the
variations in infrastructure.
Nobody is, the world
moves too fast.”
@jonlives
There is no
magic pill.
@jonlives
You are the
expert.
@jonlives
Beware Argument Culture!
Kate Heddleston: bit.ly/argument-culture
@jonlives
[An] argument culture urges us to
approach the world—and the
people in it—in an adversarial
frame of mind
Deborah Tannen “The Argument Culture”
@jonlives
Argument Culture
• Useful in “regulated” environments like law
• Engineering is not one of those environments
• Weed out weak logic, keep strong ideas
• Everybody is on one side or the other
• We attack their position and defend our own
• We can win or lose arguments—just like battles
@jonlives
Argument Culture - Effects
• Emotional interactions
• Winning becomes paramount
• The loud dominate
• People are afraid to speak
• Best practice == repeating the loudest arguments
• Sucks for diversity in cultures and orgs
@jonlives
What a Workflow is…
workflow
noun ( also work-flow) /ˈwɜːkfləʊ/
the way that a particular type of work is
organised, or the order of the stages in a
particular work process
Cambridge Business English Dictionary
@jonlives
What a Workflow is not…
• “The Chef Way”
• “We need to use X tool”
• “We need to be more DevOps”
• “We need our process to be more like Y”
• “Z in Chef is bad. Never do Z.”
@jonlives
A workflow is the key to
solving a problem.
@jonlives
There is no correct way to
use Chef…
@jonlives
There are only lessons
learned by others in the
process of solving their
specific problems.
@jonlives
Case Studies
@jonlives
Case Studies
• Anonymized
• Companies of varying sizes
• First, a quick summary
• Then we look at their motivations
• Finally we look at their solutions
@jonlives
Case Study #1 - Summary
• Small internet video company
• Small Ops team
• EC2 based infrastructure
• Semi-immutable infrastructure
• Packer used to build AMI containers
• Chef run on instances to correct config & service status
• Previously required rolling a new AMI
@jonlives
Case Study #1 - Motivation
• They’re trying to make it as easy to get started as
possible
• Chat or comments in PRs since everybody is remote
• They aren't interested in letting some third party
change stuff unexpectedly
• No auto-deploying master - they had an accidental
push
@jonlives
Case Study #1 - Solution
• Cookbooks live in chef repo
• Dependencies in Berksfile
• “Pull request” development model
• Merge to master & Jenkins runs foodcritic & rubocop
• Merge into “jenkins” branch, triggers upload to server
@jonlives
Case Study #2 - Summary
• One project team inside extremely large company
• On-premise cloudstack infrastructure
• VMs created, then bootstrapped with Chef
• Dev, QA, Staging, Prod environments
• Legacy cookbooks maintained alongside new
• 1 workflow for new cookbooks, one for legacy
@jonlives
Case Study #2 - Motivation
• Too easy to make an innocuous change that broke
several features without knowing about it
• Desire to catch syntax errors or undeclared attributes
• Complete test coverage with minitest, kitchen-ci for
easier PR validation, and local cookbook development
@jonlives
Case Study #2 - Solution
• 1 monolithic project cookbook
• Add dependencies to Berksfile & “berks install”
• Create recipes & write tests
• “kitchen converge” until it works
• Push to git & chef server
• Test in dev, then on to prod
@jonlives
Case Study #3 - Summary
• Mid-sized online marketplace
• Mainly on-premise infrastructure
• Servers often long-lived & not immutable
• Large number of Dev & Ops Chef users
• One main environment
@jonlives
Case Study #3 - Motivation
• Many Chefs
• Many small changes by often inexperienced users
• Historical cookbooks make using community
cookbooks difficult & time consuming
• App deployed using separate deploy tool
• Continuous delivery in “DNA”
@jonlives
Case Study #3 - Solution
• Cookbooks live in monolithic repository
• Roles == attribs, environments == constraints
• Tooling geared for efficiency & iteration vs testing
• Testing done locally with chef-zero & why-run
• …or in prod with whitelists
• Versions always pinned in prod environment
@jonlives
Case Study #4 - Summary
• Mid-sized ecommerce service provider
• Mainly on-premise infrastructure
• Multiple product-based teams
• Multiple environments to support those teams
@jonlives
Case Study #4 - Motivation
• Teams based around the Products they build and run
• Different opinions & requirements for workflow
• Most effort was spent on new greenfield projects
• Trying to avoid “veneering tech debt”
• Chef was new to most people
• Pressure to produce visible & demonstrable results
@jonlives
Case Study #4 - Solution
• 85% of cookbooks in monolithic repo
• Start with community cookbooks
• Wrap as needed
• Team or Product specific environments
• Roles used to set permissions etc
• Optional cookbook pinning
@jonlives
So, how do we create a
Workflow?
@jonlives
Workflow Design
• What problem are you solving?
• Who are you solving it for?
• How does your ideal solution look?
• Choose your Tooling
• Implement your workflow
@jonlives
What Problem are you Solving?
• Write down a simple problem
statement
• “I want to automate app deploys”
• “I want to automate server builds”
• “I want us to test our cookbooks
more”
• Break that down into simple pieces
What
Who
How
Tooling
Implement
@jonlives
Who are you solving it for?
• Understand your stakeholders
• Understand your business priorities
• What do *they* care about most?
• How often will they work with your
solution?
• Conway’s law
What
Who
How
Tooling
Implement
@jonlives
Conway’s Law
“Organizations which design systems ...
are constrained to produce designs which
are copies of the communication
structures of these organizations”
Melvin Conway, 1968
@jonlives
How does your ideal solution look?
• Have an ideal “end goal” in mind
• Agree with stakeholders
• You won’t get there in one go
• But you’ll know what you’re
working towards
What
Who
How
Tooling
Implement
@jonlives
Choose your Weapons!
• Pick candidate tools
• Probe strengths and weaknesses
• Understand their motivations
• Extensibility if tweaking needed?
• Is anybody already using it in the
same way?
What
Who
How
Tooling
Implement
@jonlives
…or make your own Weapons
• Sometimes, you have to invent
• Legitimate approach
• Many popular workflow tools
started this way
• Be sure you have time / resources
• Clear mission statement is vital
What
Who
How
Tooling
Implement
@jonlives
Implementation
• Have realistic expectations
• Start slowly
• Efficiency-Thoroughness Trade-Off
(ETTO)
• Iterate often
• Learn from failures. They will happen.
• Improve
What
Who
How
Tooling
Implement
@jonlives
Don’t Fear the Code!
@jonlives
Don’t Fear the Code!
• Understanding == Effectiveness
• If you know how it works, you can figure out
why it breaks.
• Research known bugs & limitations
• Be prepared to report or fix issues
@jonlives
It’s OK to try stuff!
@jonlives
http://jonliv.es/book
Discount Code: AUTHD
40% off Print
50% off Digital
@jonlives
Thanks!
Questions?
@jonlives / http://jonliv.es / jon@etsy.com

More Related Content

Viewers also liked

Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
 
Sap Customer Service In Manufacturing Industry1
Sap Customer Service In Manufacturing Industry1Sap Customer Service In Manufacturing Industry1
Sap Customer Service In Manufacturing Industry1evil66_in
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
 
Workflow Part1 1
Workflow Part1 1Workflow Part1 1
Workflow Part1 1evil66_in
 
How to create a workflow
How to create a workflow How to create a workflow
How to create a workflow Atlassian
 
Film Production Workflow
Film Production WorkflowFilm Production Workflow
Film Production WorkflowJohn Grace
 
Responsive Design Workflow
Responsive Design WorkflowResponsive Design Workflow
Responsive Design WorkflowIntergen
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Stephen Hay
 
10 Best Practices for Workflow Design
10 Best Practices for Workflow Design10 Best Practices for Workflow Design
10 Best Practices for Workflow DesignKristina Hettne
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsBarry Feldman
 

Viewers also liked (11)

Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Sap Customer Service In Manufacturing Industry1
Sap Customer Service In Manufacturing Industry1Sap Customer Service In Manufacturing Industry1
Sap Customer Service In Manufacturing Industry1
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014
 
Workflow Part1 1
Workflow Part1 1Workflow Part1 1
Workflow Part1 1
 
How to create a workflow
How to create a workflow How to create a workflow
How to create a workflow
 
Film Production Workflow
Film Production WorkflowFilm Production Workflow
Film Production Workflow
 
Responsive Design Workflow
Responsive Design WorkflowResponsive Design Workflow
Responsive Design Workflow
 
Business workflow
Business workflowBusiness workflow
Business workflow
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012
 
10 Best Practices for Workflow Design
10 Best Practices for Workflow Design10 Best Practices for Workflow Design
10 Best Practices for Workflow Design
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 

More from Jon Cowie

Building a Healthy Work Life Balance
Building a Healthy Work Life BalanceBuilding a Healthy Work Life Balance
Building a Healthy Work Life BalanceJon Cowie
 
Cheffing Etsy - Do too many cooks spoil the soup?
Cheffing Etsy - Do too many cooks spoil the soup?Cheffing Etsy - Do too many cooks spoil the soup?
Cheffing Etsy - Do too many cooks spoil the soup?Jon Cowie
 
Chef at Etsy
Chef at EtsyChef at Etsy
Chef at EtsyJon Cowie
 
Customizing Chef for Fun and Profit
Customizing Chef for Fun and ProfitCustomizing Chef for Fun and Profit
Customizing Chef for Fun and ProfitJon Cowie
 
Custom Live Media Spinning
Custom Live Media SpinningCustom Live Media Spinning
Custom Live Media SpinningJon Cowie
 
Bring the Noise
Bring the NoiseBring the Noise
Bring the NoiseJon Cowie
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with ChefJon Cowie
 

More from Jon Cowie (7)

Building a Healthy Work Life Balance
Building a Healthy Work Life BalanceBuilding a Healthy Work Life Balance
Building a Healthy Work Life Balance
 
Cheffing Etsy - Do too many cooks spoil the soup?
Cheffing Etsy - Do too many cooks spoil the soup?Cheffing Etsy - Do too many cooks spoil the soup?
Cheffing Etsy - Do too many cooks spoil the soup?
 
Chef at Etsy
Chef at EtsyChef at Etsy
Chef at Etsy
 
Customizing Chef for Fun and Profit
Customizing Chef for Fun and ProfitCustomizing Chef for Fun and Profit
Customizing Chef for Fun and Profit
 
Custom Live Media Spinning
Custom Live Media SpinningCustom Live Media Spinning
Custom Live Media Spinning
 
Bring the Noise
Bring the NoiseBring the Noise
Bring the Noise
 
Michelin Starred Cooking with Chef
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with Chef
 

Recently uploaded

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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
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
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 

Recently uploaded (20)

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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
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.
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 

Workflow Design - Extracting Signal from the Noise

  • 3.
  • 4. @jonlives There is no correct way to use Chef. workflow_design
  • 5. @jonlives …but I just want to
 get stuff done!
  • 7. @jonlives “I am not smart enough to build an ontology … that can encompass all the variations in infrastructure. Nobody is, the world moves too fast.”
  • 10. @jonlives Beware Argument Culture! Kate Heddleston: bit.ly/argument-culture
  • 11. @jonlives [An] argument culture urges us to approach the world—and the people in it—in an adversarial frame of mind Deborah Tannen “The Argument Culture”
  • 12. @jonlives Argument Culture • Useful in “regulated” environments like law • Engineering is not one of those environments • Weed out weak logic, keep strong ideas • Everybody is on one side or the other • We attack their position and defend our own • We can win or lose arguments—just like battles
  • 13. @jonlives Argument Culture - Effects • Emotional interactions • Winning becomes paramount • The loud dominate • People are afraid to speak • Best practice == repeating the loudest arguments • Sucks for diversity in cultures and orgs
  • 14. @jonlives What a Workflow is… workflow noun ( also work-flow) /ˈwɜːkfləʊ/ the way that a particular type of work is organised, or the order of the stages in a particular work process Cambridge Business English Dictionary
  • 15. @jonlives What a Workflow is not… • “The Chef Way” • “We need to use X tool” • “We need to be more DevOps” • “We need our process to be more like Y” • “Z in Chef is bad. Never do Z.”
  • 16. @jonlives A workflow is the key to solving a problem.
  • 17. @jonlives There is no correct way to use Chef…
  • 18. @jonlives There are only lessons learned by others in the process of solving their specific problems.
  • 20. @jonlives Case Studies • Anonymized • Companies of varying sizes • First, a quick summary • Then we look at their motivations • Finally we look at their solutions
  • 21. @jonlives Case Study #1 - Summary • Small internet video company • Small Ops team • EC2 based infrastructure • Semi-immutable infrastructure • Packer used to build AMI containers • Chef run on instances to correct config & service status • Previously required rolling a new AMI
  • 22. @jonlives Case Study #1 - Motivation • They’re trying to make it as easy to get started as possible • Chat or comments in PRs since everybody is remote • They aren't interested in letting some third party change stuff unexpectedly • No auto-deploying master - they had an accidental push
  • 23. @jonlives Case Study #1 - Solution • Cookbooks live in chef repo • Dependencies in Berksfile • “Pull request” development model • Merge to master & Jenkins runs foodcritic & rubocop • Merge into “jenkins” branch, triggers upload to server
  • 24. @jonlives Case Study #2 - Summary • One project team inside extremely large company • On-premise cloudstack infrastructure • VMs created, then bootstrapped with Chef • Dev, QA, Staging, Prod environments • Legacy cookbooks maintained alongside new • 1 workflow for new cookbooks, one for legacy
  • 25. @jonlives Case Study #2 - Motivation • Too easy to make an innocuous change that broke several features without knowing about it • Desire to catch syntax errors or undeclared attributes • Complete test coverage with minitest, kitchen-ci for easier PR validation, and local cookbook development
  • 26. @jonlives Case Study #2 - Solution • 1 monolithic project cookbook • Add dependencies to Berksfile & “berks install” • Create recipes & write tests • “kitchen converge” until it works • Push to git & chef server • Test in dev, then on to prod
  • 27. @jonlives Case Study #3 - Summary • Mid-sized online marketplace • Mainly on-premise infrastructure • Servers often long-lived & not immutable • Large number of Dev & Ops Chef users • One main environment
  • 28. @jonlives Case Study #3 - Motivation • Many Chefs • Many small changes by often inexperienced users • Historical cookbooks make using community cookbooks difficult & time consuming • App deployed using separate deploy tool • Continuous delivery in “DNA”
  • 29. @jonlives Case Study #3 - Solution • Cookbooks live in monolithic repository • Roles == attribs, environments == constraints • Tooling geared for efficiency & iteration vs testing • Testing done locally with chef-zero & why-run • …or in prod with whitelists • Versions always pinned in prod environment
  • 30. @jonlives Case Study #4 - Summary • Mid-sized ecommerce service provider • Mainly on-premise infrastructure • Multiple product-based teams • Multiple environments to support those teams
  • 31. @jonlives Case Study #4 - Motivation • Teams based around the Products they build and run • Different opinions & requirements for workflow • Most effort was spent on new greenfield projects • Trying to avoid “veneering tech debt” • Chef was new to most people • Pressure to produce visible & demonstrable results
  • 32. @jonlives Case Study #4 - Solution • 85% of cookbooks in monolithic repo • Start with community cookbooks • Wrap as needed • Team or Product specific environments • Roles used to set permissions etc • Optional cookbook pinning
  • 33. @jonlives So, how do we create a Workflow?
  • 34. @jonlives Workflow Design • What problem are you solving? • Who are you solving it for? • How does your ideal solution look? • Choose your Tooling • Implement your workflow
  • 35. @jonlives What Problem are you Solving? • Write down a simple problem statement • “I want to automate app deploys” • “I want to automate server builds” • “I want us to test our cookbooks more” • Break that down into simple pieces What Who How Tooling Implement
  • 36. @jonlives Who are you solving it for? • Understand your stakeholders • Understand your business priorities • What do *they* care about most? • How often will they work with your solution? • Conway’s law What Who How Tooling Implement
  • 37. @jonlives Conway’s Law “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Melvin Conway, 1968
  • 38. @jonlives How does your ideal solution look? • Have an ideal “end goal” in mind • Agree with stakeholders • You won’t get there in one go • But you’ll know what you’re working towards What Who How Tooling Implement
  • 39. @jonlives Choose your Weapons! • Pick candidate tools • Probe strengths and weaknesses • Understand their motivations • Extensibility if tweaking needed? • Is anybody already using it in the same way? What Who How Tooling Implement
  • 40. @jonlives …or make your own Weapons • Sometimes, you have to invent • Legitimate approach • Many popular workflow tools started this way • Be sure you have time / resources • Clear mission statement is vital What Who How Tooling Implement
  • 41. @jonlives Implementation • Have realistic expectations • Start slowly • Efficiency-Thoroughness Trade-Off (ETTO) • Iterate often • Learn from failures. They will happen. • Improve What Who How Tooling Implement
  • 43. @jonlives Don’t Fear the Code! • Understanding == Effectiveness • If you know how it works, you can figure out why it breaks. • Research known bugs & limitations • Be prepared to report or fix issues