SlideShare a Scribd company logo
Charity Majors
@mipsytipsy
Charity Majors
@mipsytipsy
There and back again: a Chef tale
How we drank the Kool-Aid, sobered up, and
learned to cook responsibly.
Mobile apps platform
500k+ apps
AWS
MongoDB, Cassandra, Mysql, Redis
ruby & rails => golang
Our mission:
• Support relentless growth
• Ship products fast
• Solve mobile apps naively at scale
Active monthly Parse installations
API requests per second
• Support relentless growth
• Ship products fast
• Solve mobile apps naively at scale
Our mission:
our mission
your mission
There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly
There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly
Chef the Base System!!
• bootstrapping nodes with knife-ec2
• configuring system packages
• managing deb versions
• ec2 hostname tags from chef node names
• route53 DNS records from hostname tags
• cron jobs, batch jobs
Chef the Services!!
• haproxy configs
• generate yaml files
• generate host lists
• manage config files for Parse services
• monitoring and graphing based off roles
Chef the Databases!!
• creating/managing mongo replica sets
• provisioning & assembling RAID devices
• assigning cassandra initial tokens
• backups, snapshotting & restores
• community cookbooks for mysql, redis
Chef the Deploys!!
• deploy Parse services?
….??????
wait …
There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly
1) Things we did with
chef badly
2) Things that chef was
not the right tool for
mistakes were made …
• Overloading roles with too much work
• Confusion between role vs instantiation of service
• Using definitions instead of providers
• Using lots of data bags
• One attribute per config entry instead of a hash of all
entries
• Using knife search extensively
mistakes were made …
• Forking + modifying community cookbooks
• Importing community cookbooks with too many
custom dependencies
• Not using repo-per-cookbook / Berkshelf
• Not investing the time into vagrant, unit tests, staging
environment, versioning
• Where is my source of truth?!
but these are all solvable
problems.
but these are all solvable
problems.
what isn’t?
sometimes, chef just
ain’t enough.
• Provisioning from scratch
• Service registration & discovery
• Managing software & configs
• Databases
Problem areas
bootstrapping from vanilla AMIs
launching instances with knife-ec2
Provisioning
bootstrapping from vanilla AMIs
launching instances with knife-ec2
Provisioning
Solution: bake AMI with chef, use ASGs
realtime search needs realtime data
Service discovery
realtime search needs realtime data
Service discovery
Solution: zookeeper, consul, etcd, etc
Service discovery
avoid snowflake hosts
use distributed locking for cron jobs
Managing software & configs
• System software (debs, rpms)
• Developer-owned services
• Internal operations software
Managing software & configs
System software
Managing software & configs
Developer-owned services
• Do not tie code deploys to system changes
• Perform the minimal set of changes
• Configs *are* software. Version together.
Managing software & configs
Internal operations software
• Treat software engineering like software
engineering
• Treat systems-y packages like systems
packages
• Package and version “util” scripts
• Manage package versions with Chef
Databases at scale
Databases
DBA operations
Not really what chef is best at.
Imperative commands
Automatic remediation
Coordinating actions across nodes
Databases
DBA operations
• Create, tear down replica sets or nodes
• Verify backups
• Rolling version upgrade
• Elect new primary / switch masters
• Enable/disable query killer
• Change schemas or indexes
• Compaction, rotation
• Version replica set state
• Etc
Databases
DBA operations
If you don’t have to do a ton of DBA
ops, Chef can manage databases.
Don’t over-engineer in advance of
your actual needs.
Databases
Separation of configuration and state
Base system => chef
Detect and publish state changes => chef, zk
Generate monitoring configs => chef
Imperative commands => db tooling
Databases at scale
We chef for:
• Building base AMIs
• Generating monitoring configs
• Storing encrypted secrets
• Cron jobs (with zk lock)
• Inferring and publishing db state changes
Things we still suck at
• Single source of truth (git / chef-server)
• Isolated staging environment
• Full continuous testing for cookbooks
• Realtime data
• Internal software packaging & management
• Database administration at scale
Things we don’t chef
There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly
Charity Majors
@mipsytipsy

More Related Content

PPTX
Chef for Openstack
PDF
Chef ignited a DevOps revolution – BK Box
PPTX
Chef Tutorial for DEVOPS Newbies
PPTX
Dev-Friendly Ops
PDF
Continuous Testing with Molecule, Ansible, and GitHub Actions
PPTX
Ansible for large scale deployment
PDF
Harnessing Spark and Cassandra with Groovy
PDF
Ansible
Chef for Openstack
Chef ignited a DevOps revolution – BK Box
Chef Tutorial for DEVOPS Newbies
Dev-Friendly Ops
Continuous Testing with Molecule, Ansible, and GitHub Actions
Ansible for large scale deployment
Harnessing Spark and Cassandra with Groovy
Ansible

What's hot (20)

PDF
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
PDF
Chef Fundamentals Training Series Module 1: Overview of Chef
PPTX
Chef Actions: Delightful near real-time activity tracking!
PDF
Ansible Introduction
PDF
ChefConf 2014 - AWS OpsWorks Under The Hood
PPTX
Chef fundamentals
PDF
Inside the Chef Push Jobs Service - ChefConf 2015
PPTX
Monitor-Driven Development Using Ansible
PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
KEY
Managing Distributed Systems with Chef
PDF
Ansible - Hands on Training
PDF
Ansible 101 - Presentation at Ansible STL Meetup
KEY
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
PDF
Overview of Chef - Fundamentals Webinar Series Part 1
PPTX
Introduction to Ansible - Jan 28 - Austin MeetUp
PDF
Introduction to Cooking with Chef
PDF
Introduction to ansible galaxy
PPTX
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
PPTX
Anton Boyko, "The evolution of microservices platform or marketing gibberish"
PPTX
Chef Cookbook Design Patterns
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Actions: Delightful near real-time activity tracking!
Ansible Introduction
ChefConf 2014 - AWS OpsWorks Under The Hood
Chef fundamentals
Inside the Chef Push Jobs Service - ChefConf 2015
Monitor-Driven Development Using Ansible
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
Managing Distributed Systems with Chef
Ansible - Hands on Training
Ansible 101 - Presentation at Ansible STL Meetup
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
Overview of Chef - Fundamentals Webinar Series Part 1
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Cooking with Chef
Introduction to ansible galaxy
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
Anton Boyko, "The evolution of microservices platform or marketing gibberish"
Chef Cookbook Design Patterns

Viewers also liked (7)

PPT
PCAP, Activity 8. A worked example for History
PDF
Removing Barriers to Going Fast
PDF
Development is Production Too
PDF
The Shard Revisited: Tools and Techniques Used at Etsy
PDF
Crossing the Production Barrier: Development at Scale
PPTX
Convert Wireshark PCAP Files to Sequence Diagrams
PDF
The Etsy Shard Architecture: Starts With S and Ends With Hard
PCAP, Activity 8. A worked example for History
Removing Barriers to Going Fast
Development is Production Too
The Shard Revisited: Tools and Techniques Used at Etsy
Crossing the Production Barrier: Development at Scale
Convert Wireshark PCAP Files to Sequence Diagrams
The Etsy Shard Architecture: Starts With S and Ends With Hard

Similar to There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly (20)

PDF
How to become a chef
PDF
How to Become a Сhef
PDF
Automating your infrastructure with Chef
PDF
PDF
The InstallShield of the 21st Century – Theo Schlossnagle
PDF
OSDC 2013 | Introduction into Chef by Andy Hawkins
PDF
Chef: Smart infrastructure automation
PDF
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
PDF
What is Chef and how we use it at tripsta
PDF
Introduction to Chef
PDF
EC2 AMI Factory with Chef, Berkshelf, and Packer
PPTX
Chef onlinuxonpower
PDF
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
PDF
DOO-009_Powering High Velocity Development for your Infrastructure
PPTX
Chef + AWS + CodeIgniter
ODP
DevOps and Chef improve your life
PDF
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
KEY
Chef meetup presentation
PDF
ChefConf 2013: Beginner Chef Antipatterns
PDF
Introduction to Chef - Techsuperwomen Summit
How to become a chef
How to Become a Сhef
Automating your infrastructure with Chef
The InstallShield of the 21st Century – Theo Schlossnagle
OSDC 2013 | Introduction into Chef by Andy Hawkins
Chef: Smart infrastructure automation
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
What is Chef and how we use it at tripsta
Introduction to Chef
EC2 AMI Factory with Chef, Berkshelf, and Packer
Chef onlinuxonpower
TXLF: Chef- Software Defined Infrastructure Today & Tomorrow
DOO-009_Powering High Velocity Development for your Infrastructure
Chef + AWS + CodeIgniter
DevOps and Chef improve your life
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
Chef meetup presentation
ChefConf 2013: Beginner Chef Antipatterns
Introduction to Chef - Techsuperwomen Summit

More from Chef (20)

PPTX
Habitat Managed Chef
PPTX
Automation, Audits, and Apps Tour
PPTX
Automation, Audits, and Apps Tour
PDF
Compliance Automation Workshop
PPTX
London Community Summit 2016 - Adopting Chef Compliance
PPTX
Learning from Configuration Management
PPTX
London Community Summit 2016 - Fresh New Chef Stuff
PPTX
London Community Summit - Chef at SkyBet
PPTX
London Community Summit - From Contribution to Authorship
PPTX
London Community Summit 2016 - Chef Automate
PPTX
London Community Summit 2016 - Community Update
PPTX
London Community Summit 2016 - Habitat
PPTX
Compliance Automation with Inspec Part 4
PPTX
Compliance Automation with Inspec Part 3
PPTX
Compliance Automation with Inspec Part 2
PPTX
Compliance Automation with Inspec Part 1
PPTX
Application Automation with Habitat
PPTX
Achieving DevOps Success with Chef Automate
PDF
Nike pop up habitat
PDF
Nike popup compliance workshop
Habitat Managed Chef
Automation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
Compliance Automation Workshop
London Community Summit 2016 - Adopting Chef Compliance
Learning from Configuration Management
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit - Chef at SkyBet
London Community Summit - From Contribution to Authorship
London Community Summit 2016 - Chef Automate
London Community Summit 2016 - Community Update
London Community Summit 2016 - Habitat
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 3
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 1
Application Automation with Habitat
Achieving DevOps Success with Chef Automate
Nike pop up habitat
Nike popup compliance workshop

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Empathic Computing: Creating Shared Understanding
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Modernizing your data center with Dell and AMD
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Empathic Computing: Creating Shared Understanding
Advanced methodologies resolving dimensionality complications for autism neur...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
The AUB Centre for AI in Media Proposal.docx
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Modernizing your data center with Dell and AMD

There and Back Again: How We Drank the Chef Kool-Aid, Sobered Up, and Learned to Cook Responsibly

  • 3. There and back again: a Chef tale How we drank the Kool-Aid, sobered up, and learned to cook responsibly.
  • 4. Mobile apps platform 500k+ apps AWS MongoDB, Cassandra, Mysql, Redis ruby & rails => golang
  • 5. Our mission: • Support relentless growth • Ship products fast • Solve mobile apps naively at scale
  • 6. Active monthly Parse installations
  • 8. • Support relentless growth • Ship products fast • Solve mobile apps naively at scale Our mission:
  • 12. Chef the Base System!! • bootstrapping nodes with knife-ec2 • configuring system packages • managing deb versions • ec2 hostname tags from chef node names • route53 DNS records from hostname tags • cron jobs, batch jobs
  • 13. Chef the Services!! • haproxy configs • generate yaml files • generate host lists • manage config files for Parse services • monitoring and graphing based off roles
  • 14. Chef the Databases!! • creating/managing mongo replica sets • provisioning & assembling RAID devices • assigning cassandra initial tokens • backups, snapshotting & restores • community cookbooks for mysql, redis
  • 15. Chef the Deploys!! • deploy Parse services? ….??????
  • 18. 1) Things we did with chef badly 2) Things that chef was not the right tool for
  • 19. mistakes were made … • Overloading roles with too much work • Confusion between role vs instantiation of service • Using definitions instead of providers • Using lots of data bags • One attribute per config entry instead of a hash of all entries • Using knife search extensively
  • 20. mistakes were made … • Forking + modifying community cookbooks • Importing community cookbooks with too many custom dependencies • Not using repo-per-cookbook / Berkshelf • Not investing the time into vagrant, unit tests, staging environment, versioning • Where is my source of truth?!
  • 21. but these are all solvable problems.
  • 22. but these are all solvable problems. what isn’t?
  • 24. • Provisioning from scratch • Service registration & discovery • Managing software & configs • Databases Problem areas
  • 25. bootstrapping from vanilla AMIs launching instances with knife-ec2 Provisioning
  • 26. bootstrapping from vanilla AMIs launching instances with knife-ec2 Provisioning Solution: bake AMI with chef, use ASGs
  • 27. realtime search needs realtime data Service discovery
  • 28. realtime search needs realtime data Service discovery Solution: zookeeper, consul, etcd, etc
  • 29. Service discovery avoid snowflake hosts use distributed locking for cron jobs
  • 30. Managing software & configs • System software (debs, rpms) • Developer-owned services • Internal operations software
  • 31. Managing software & configs System software
  • 32. Managing software & configs Developer-owned services • Do not tie code deploys to system changes • Perform the minimal set of changes • Configs *are* software. Version together.
  • 33. Managing software & configs Internal operations software • Treat software engineering like software engineering • Treat systems-y packages like systems packages • Package and version “util” scripts • Manage package versions with Chef
  • 35. Databases DBA operations Not really what chef is best at. Imperative commands Automatic remediation Coordinating actions across nodes
  • 36. Databases DBA operations • Create, tear down replica sets or nodes • Verify backups • Rolling version upgrade • Elect new primary / switch masters • Enable/disable query killer • Change schemas or indexes • Compaction, rotation • Version replica set state • Etc
  • 37. Databases DBA operations If you don’t have to do a ton of DBA ops, Chef can manage databases. Don’t over-engineer in advance of your actual needs.
  • 38. Databases Separation of configuration and state Base system => chef Detect and publish state changes => chef, zk Generate monitoring configs => chef Imperative commands => db tooling
  • 40. We chef for: • Building base AMIs • Generating monitoring configs • Storing encrypted secrets • Cron jobs (with zk lock) • Inferring and publishing db state changes
  • 41. Things we still suck at • Single source of truth (git / chef-server) • Isolated staging environment • Full continuous testing for cookbooks
  • 42. • Realtime data • Internal software packaging & management • Database administration at scale Things we don’t chef