SlideShare a Scribd company logo
BUILDING AND MANAGING
RELIABLE
INFRASTRUCTURE
Mandi Walls, Chef Software
IPExpo Europe, October 8, 2015
With Chef and Chef Delivery
WHO IS CHEF?
• Founded about 8 years ago
• Seattle-based, with offices in London and San
Francisco
• Customers include web-natives, retail, financial
services
• Core product, Chef, is client/server configuration
management
WHOAMI?
• Director of Consulting and Customer Success
EMEA
• Joined Chef in November 2011
• @lnxchk
• These slides will be uploaded
• http://www.slideshare.net/lnxchk
CORE CHEF
• Sophisticated toolset to produce reliable
infrastructure
• Tested, versioned, recorded
THE CODED BUSINESS
• Infrastructure as Code – the underlying idea
that computing components should be
describable in software, versioned, and tested
• Expanded to include risk-reduction, value
acceleration, and expanded trust
EASIER TO FIX BUGS
BEFORE CODE GETS TO
PRODUCTION
PUSHING MORE INTO
PRE-DEPLOY
• Testing with ChefSpec, Test Kitchen, Food
Critic
• Additional system controls via Chef Audit
• Don’t get to production and discover that the
security rules prevent the app from working
• Full 360° view of the application, no
assumptions, everything documented in code
NEED A TOOL THAT MAKES
SUBMITTING, APPROVING,
AND BUILDING FAST AND
EASY
WHY DELIVERY?
• Production of a repeatable pipeline for
software delivery
• Software isn’t creating value at the end of the
build; it creates value after deployment
• Application of key concepts to all code,
including the code that builds other code
NOT JUST APPLICATION
CODE
• We’re now working with infrastructure code,
too
• It should be auditable and traceable
• Incorporate good change management
behaviors
• Reduce risk
CHEF DELIVERY
HOW IT WORKS
CLI
Web
Browser
Job Dispatch
Push
Chef Server
erlang
Delivery
erlang
pgSQL
DB
git
SCM
Build NodeBuild NodeBuild Nodes
U-071982-C
U-071982-C
THE PIPELINE CONCEPT
• The build server should reflect modern
distributed infrastructures
• Preference for smaller, independent, loosely
coupled but dependent services to deliver a
fully functioning application
• Individual software projects ship on their own
schedule, but must integrate!
FAILURE TO SUCCESSFULLY
INTEGRATE MEANS THE BUILD
SHOULD FAIL BEFORE
PRODUCTION
STABLE PIPELINE
Steps
Create a new
change1
Test Change
Locally2
Verification Tests
Submit
Change3
Review
Change4
Build Artifacts
Acceptance Tests
Approve
Change5
Release Process
Deliver
Change6
manual automated
U-071982-C
THE SHARED PIPELINE
• Across various products and teams
• Coordination, integration
• New releases can trigger refreshes on
dependent components
COMMON PIPELINE
One
Pipeline
Delivery Pipeline - Shared
union rehearsal delivered
Acceptance Pipelines - Private
review approve deliverChange
Cookbook [A]
review approve deliverChange
Cookbook [B]
review approve deliverChange
Application [A]
review approve deliverChange
Application [B]
U-071982-C
Infrastructure & Applications
UNIFIED SHAPE
• The stages are fixed. No change goes to
production without flowing through the stages
• Stages include specific phases to reduce
confusion and increase predictability and
stability – these are made up of tasks you’re
probably already doing
• Your goal is to build software that has value
for you, not bikeshed on the pipeline. We did
that.
COMMON PIPELINE
Steps
manual automated
Verify
Lint
Syntax
Unit
Build
Merge
Lint
Syntax
Unit
Quality
Security
Publish
Provision
Deploy
Smoke
Functional
Compliance
Acceptance Union
Provision
Deploy
Smoke
Functional
Compliance
Rehearsal
Provision
Deploy
Smoke
Functional
Compliance
Delivered
Provision
Deploy
Smoke
Functional
Compliance
Stages
customizable
Verify Build
Acceptance
Union
Rehearsal
Delivered
Submit
Change3
Review
Change4
Approve
Change5
Deliver
Change6
Chef Delivery
Create a new
change1
Test Change
Locally2
Workstation
U-071982-C
CUSTOMIZE ACTIVITIES
• Within the phases, the actions taken are
customized to meet the needs of the
application
• Syntax checking, usability testing, etc, can
make use of existing tools
• Test nodes can be provisioned on a variety of
platforms and environments to meet
application needs
BUILD COOKBOOK
├── recipes
├── default.rb
├── lint.rb
├── syntax.rb
├── unit.rb
├── quality.rb
├── security.rb
├── publish.rb
├── provision.rb
├── deploy.rb
├── smoke.rb
└── functional.rb
U-071982-C
BUILD COOKBOOK
• Treating the definition of the build process
with the same care as the code that is going
through it
• Allows for versioning of the build definition,
tracking of changes, linking of new build
definition to new components
PHASE EXECUTION
log "Running unit"
repo = node['delivery_builder']['repo']
execute “run my junit tests" do
command "mvn test"
cwd repo
end
U-071982-C
COOKBOOK WORKFLOW
U-071982-C
Supermarket
Chef Server
review approve deliverChange
Cookbook
Node Node Node
Node Node Node
Node Node Node
APPLICATION WORKFLOW
U-071982-C
review approve deliverChange
Application
Node Node Node
Node Node Node
Node Node Node
Deploy
1 2 3
2 2 3
3 3 3
U-071982-C
CREATE NEW PIPELINES
• Project code repository
• Build cookbook *versioned!*
• Project configuration file *also versioned!*
CONFIG.JSON
{
"version": "1",
"build_cookbook": "./.delivery/build_cookbook",
"build_nodes": {
"default": [“name:*buildnode-*”],
"unit": [“name:*-unittest*”],
"lint": [“name:*-linttest*”],
"build": [“name:*-builder*”]
}
}
U-071982-C
• Delivery gives you a mechanism to create
fully-described build process for complex
applications
• The build process itself benefits from the same
version control and software practices the
code uses
• Prevent bugs and regressions from getting to
production with full integration retrospective
testing
MORE ABOUT DELIVERY
https://www.chef.io/delivery/
VISIT US
BOOTH GG8
UPCOMING EVENTS
• Next London Chef Meetup: October 20
• http://www.meetup.com/Chef-Users-London
• Chef Cookbook Workflow @ AWS Popup Loft
• https://www.chef.io/blog/event/chef-cookbook-workflow-
2/
• Chef Community Summit
• November 3-4 in London
• https://www.chef.io/summit/london/
NEW TO CHEF?
• https://learn.chef.io/
• Online trainings, in-person classroom training,
dates announced regularly
U-071982-C

More Related Content

PPTX
Transforming Enterprise Teams to DevOps Workflows
PPTX
Rethinking Your DevOps Strategy
PPTX
"Transforming Enterprise Teams to DevOps Workflows" Mandi Walls
PPT
DevOps Explained
PDF
Managing Agile IT Operation and DevOps processes
PDF
Enterprise DevOps in the Age of Docker & Microservices
PDF
Blueprinting DevOps for Digital Transformation_v4
PDF
DevOps: What, who, why and how?
Transforming Enterprise Teams to DevOps Workflows
Rethinking Your DevOps Strategy
"Transforming Enterprise Teams to DevOps Workflows" Mandi Walls
DevOps Explained
Managing Agile IT Operation and DevOps processes
Enterprise DevOps in the Age of Docker & Microservices
Blueprinting DevOps for Digital Transformation_v4
DevOps: What, who, why and how?

What's hot (20)

PDF
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
PPTX
DevOps, Agile methods and Continuous Improvement in the Software development ...
PDF
5 Steps for a High-Performing DevOps Culture
PDF
DevOps Primer : Presented by Uday Kumar
PDF
Software Release Orchestration and the Enterprise
PPTX
DevOps for Database webinar
PDF
DevOps MythBusters
PDF
What is DevOps?
PPTX
Introduction to DevOps
PDF
Navvia's DevOps journey
PPTX
5 Keys to Building a Successful DevOps Culture
PPTX
DevOps Foundation
PDF
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
PPTX
Continuous Delivery and DevOps at Rabobank
PPTX
Metrics to Power DevOps
PDF
Diving Into Docker
PDF
Four pillars of DevOps - John Shaw - Agile Cambridge 2014
PDF
DevOps Deep Dive Webinar: Building a business case for agile and devops
PPTX
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
PDF
Delivering Better Software Faster (Without Breaking Everything)
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
DevOps, Agile methods and Continuous Improvement in the Software development ...
5 Steps for a High-Performing DevOps Culture
DevOps Primer : Presented by Uday Kumar
Software Release Orchestration and the Enterprise
DevOps for Database webinar
DevOps MythBusters
What is DevOps?
Introduction to DevOps
Navvia's DevOps journey
5 Keys to Building a Successful DevOps Culture
DevOps Foundation
DevOps vs Agile | DevOps Tutorial For Beginners | DevOps Training | Edureka
Continuous Delivery and DevOps at Rabobank
Metrics to Power DevOps
Diving Into Docker
Four pillars of DevOps - John Shaw - Agile Cambridge 2014
DevOps Deep Dive Webinar: Building a business case for agile and devops
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
Delivering Better Software Faster (Without Breaking Everything)
Ad

Similar to Building and Managing Reliable Infrastructure with Chef and Chef Delivery (20)

PDF
DevOps Transformation: Learnings and Best Practices
PDF
Chef Automate - Wellington DevOps August 2, 2017
PPTX
Chef onlinuxonpower
PPTX
IP Expo Nordic: Successful Practices for Continuous Delivery
PDF
Continuous Deployment of your Application @SpringOne
PPTX
Successful Practices for Continuous Delivery CodeCPH
PPTX
Continuous Deployment to the cloud
PDF
Transform Digital Business with DevOps
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
PPTX
A Bit of Everything Chef
PDF
Cooking Up Windows with Chef Automate
PDF
Continuous Deployment of your Application - SpringOne Tour Dallas
PPT
Continuous Delivery Agiles 2014 Medellin
PDF
Continuous Deployment of your Application @JUGtoberfest
PDF
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
PPTX
Delivering Applications Continuously to Cloud
PPTX
Change management in hybrid landscapes
PDF
Adopting PCF At An Automobile Manufacturer
PDF
Adopting PCF At An Automobile Manufacturer
PDF
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
DevOps Transformation: Learnings and Best Practices
Chef Automate - Wellington DevOps August 2, 2017
Chef onlinuxonpower
IP Expo Nordic: Successful Practices for Continuous Delivery
Continuous Deployment of your Application @SpringOne
Successful Practices for Continuous Delivery CodeCPH
Continuous Deployment to the cloud
Transform Digital Business with DevOps
Continuous Deployment To The Cloud @DevoxxPL 2017
A Bit of Everything Chef
Cooking Up Windows with Chef Automate
Continuous Deployment of your Application - SpringOne Tour Dallas
Continuous Delivery Agiles 2014 Medellin
Continuous Deployment of your Application @JUGtoberfest
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
Delivering Applications Continuously to Cloud
Change management in hybrid landscapes
Adopting PCF At An Automobile Manufacturer
Adopting PCF At An Automobile Manufacturer
VMworld Europe 2014: A DevOps Story - Unlocking the Power of Docker with the ...
Ad

More from Mandi Walls (20)

PDF
DOD Raleigh Gamedays with Chaos Engineering.pdf
PDF
Addo reducing trauma in organizations with SLOs and chaos engineering
PDF
Full Service Ownership
PDF
PagerDuty: Best Practices for On Call Teams
PPTX
InSpec at DevOps ATL Meetup January 22, 2020
PPTX
Prescriptive Security with InSpec - All Things Open 2019
PPTX
Using Chef InSpec for Infrastructure Security
PPTX
Adding Security to Your Workflow With InSpec - SCaLE17x
PPTX
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
PPTX
BuildStuff.LT 2018 InSpec Workshop
PPTX
InSpec Workshop at Velocity London 2018
PPTX
DevOpsDays InSpec Workshop
PPTX
Adding Security and Compliance to Your Workflow with InSpec
PPTX
InSpec - June 2018 at Open28.be
PPTX
habitat at docker bud
PPTX
Ingite Slides for InSpec
PPTX
Habitat at LinuxLab IT
PPTX
InSpec Workshop DevSecCon 2017
PPTX
Habitat Workshop at Velocity London 2017
PPTX
InSpec Workflow for DevOpsDays Riga 2017
DOD Raleigh Gamedays with Chaos Engineering.pdf
Addo reducing trauma in organizations with SLOs and chaos engineering
Full Service Ownership
PagerDuty: Best Practices for On Call Teams
InSpec at DevOps ATL Meetup January 22, 2020
Prescriptive Security with InSpec - All Things Open 2019
Using Chef InSpec for Infrastructure Security
Adding Security to Your Workflow With InSpec - SCaLE17x
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
BuildStuff.LT 2018 InSpec Workshop
InSpec Workshop at Velocity London 2018
DevOpsDays InSpec Workshop
Adding Security and Compliance to Your Workflow with InSpec
InSpec - June 2018 at Open28.be
habitat at docker bud
Ingite Slides for InSpec
Habitat at LinuxLab IT
InSpec Workshop DevSecCon 2017
Habitat Workshop at Velocity London 2017
InSpec Workflow for DevOpsDays Riga 2017

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Advanced Soft Computing BINUS July 2025.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced IT Governance
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Approach and Philosophy of On baking technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
NewMind AI Weekly Chronicles - August'25 Week I
Advanced Soft Computing BINUS July 2025.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced IT Governance
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Approach and Philosophy of On baking technology
The AUB Centre for AI in Media Proposal.docx
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks

Building and Managing Reliable Infrastructure with Chef and Chef Delivery

  • 1. BUILDING AND MANAGING RELIABLE INFRASTRUCTURE Mandi Walls, Chef Software IPExpo Europe, October 8, 2015 With Chef and Chef Delivery
  • 2. WHO IS CHEF? • Founded about 8 years ago • Seattle-based, with offices in London and San Francisco • Customers include web-natives, retail, financial services • Core product, Chef, is client/server configuration management
  • 3. WHOAMI? • Director of Consulting and Customer Success EMEA • Joined Chef in November 2011 • @lnxchk • These slides will be uploaded • http://www.slideshare.net/lnxchk
  • 4. CORE CHEF • Sophisticated toolset to produce reliable infrastructure • Tested, versioned, recorded
  • 5. THE CODED BUSINESS • Infrastructure as Code – the underlying idea that computing components should be describable in software, versioned, and tested • Expanded to include risk-reduction, value acceleration, and expanded trust
  • 6. EASIER TO FIX BUGS BEFORE CODE GETS TO PRODUCTION
  • 7. PUSHING MORE INTO PRE-DEPLOY • Testing with ChefSpec, Test Kitchen, Food Critic • Additional system controls via Chef Audit • Don’t get to production and discover that the security rules prevent the app from working • Full 360° view of the application, no assumptions, everything documented in code
  • 8. NEED A TOOL THAT MAKES SUBMITTING, APPROVING, AND BUILDING FAST AND EASY
  • 9. WHY DELIVERY? • Production of a repeatable pipeline for software delivery • Software isn’t creating value at the end of the build; it creates value after deployment • Application of key concepts to all code, including the code that builds other code
  • 10. NOT JUST APPLICATION CODE • We’re now working with infrastructure code, too • It should be auditable and traceable • Incorporate good change management behaviors • Reduce risk
  • 12. HOW IT WORKS CLI Web Browser Job Dispatch Push Chef Server erlang Delivery erlang pgSQL DB git SCM Build NodeBuild NodeBuild Nodes U-071982-C
  • 13. U-071982-C THE PIPELINE CONCEPT • The build server should reflect modern distributed infrastructures • Preference for smaller, independent, loosely coupled but dependent services to deliver a fully functioning application • Individual software projects ship on their own schedule, but must integrate!
  • 14. FAILURE TO SUCCESSFULLY INTEGRATE MEANS THE BUILD SHOULD FAIL BEFORE PRODUCTION
  • 15. STABLE PIPELINE Steps Create a new change1 Test Change Locally2 Verification Tests Submit Change3 Review Change4 Build Artifacts Acceptance Tests Approve Change5 Release Process Deliver Change6 manual automated U-071982-C
  • 16. THE SHARED PIPELINE • Across various products and teams • Coordination, integration • New releases can trigger refreshes on dependent components
  • 17. COMMON PIPELINE One Pipeline Delivery Pipeline - Shared union rehearsal delivered Acceptance Pipelines - Private review approve deliverChange Cookbook [A] review approve deliverChange Cookbook [B] review approve deliverChange Application [A] review approve deliverChange Application [B] U-071982-C Infrastructure & Applications
  • 18. UNIFIED SHAPE • The stages are fixed. No change goes to production without flowing through the stages • Stages include specific phases to reduce confusion and increase predictability and stability – these are made up of tasks you’re probably already doing • Your goal is to build software that has value for you, not bikeshed on the pipeline. We did that.
  • 19. COMMON PIPELINE Steps manual automated Verify Lint Syntax Unit Build Merge Lint Syntax Unit Quality Security Publish Provision Deploy Smoke Functional Compliance Acceptance Union Provision Deploy Smoke Functional Compliance Rehearsal Provision Deploy Smoke Functional Compliance Delivered Provision Deploy Smoke Functional Compliance Stages customizable Verify Build Acceptance Union Rehearsal Delivered Submit Change3 Review Change4 Approve Change5 Deliver Change6 Chef Delivery Create a new change1 Test Change Locally2 Workstation U-071982-C
  • 20. CUSTOMIZE ACTIVITIES • Within the phases, the actions taken are customized to meet the needs of the application • Syntax checking, usability testing, etc, can make use of existing tools • Test nodes can be provisioned on a variety of platforms and environments to meet application needs
  • 21. BUILD COOKBOOK ├── recipes ├── default.rb ├── lint.rb ├── syntax.rb ├── unit.rb ├── quality.rb ├── security.rb ├── publish.rb ├── provision.rb ├── deploy.rb ├── smoke.rb └── functional.rb U-071982-C
  • 22. BUILD COOKBOOK • Treating the definition of the build process with the same care as the code that is going through it • Allows for versioning of the build definition, tracking of changes, linking of new build definition to new components
  • 23. PHASE EXECUTION log "Running unit" repo = node['delivery_builder']['repo'] execute “run my junit tests" do command "mvn test" cwd repo end U-071982-C
  • 24. COOKBOOK WORKFLOW U-071982-C Supermarket Chef Server review approve deliverChange Cookbook Node Node Node Node Node Node Node Node Node
  • 25. APPLICATION WORKFLOW U-071982-C review approve deliverChange Application Node Node Node Node Node Node Node Node Node Deploy 1 2 3 2 2 3 3 3 3
  • 26. U-071982-C CREATE NEW PIPELINES • Project code repository • Build cookbook *versioned!* • Project configuration file *also versioned!*
  • 27. CONFIG.JSON { "version": "1", "build_cookbook": "./.delivery/build_cookbook", "build_nodes": { "default": [“name:*buildnode-*”], "unit": [“name:*-unittest*”], "lint": [“name:*-linttest*”], "build": [“name:*-builder*”] } } U-071982-C
  • 28. • Delivery gives you a mechanism to create fully-described build process for complex applications • The build process itself benefits from the same version control and software practices the code uses • Prevent bugs and regressions from getting to production with full integration retrospective testing
  • 30. UPCOMING EVENTS • Next London Chef Meetup: October 20 • http://www.meetup.com/Chef-Users-London • Chef Cookbook Workflow @ AWS Popup Loft • https://www.chef.io/blog/event/chef-cookbook-workflow- 2/ • Chef Community Summit • November 3-4 in London • https://www.chef.io/summit/london/
  • 31. NEW TO CHEF? • https://learn.chef.io/ • Online trainings, in-person classroom training, dates announced regularly

Editor's Notes

  • #14: Older build and deployment tools reflect the types of systems built in their times – independent projects rather than a family of services working together to create a larger-value application system.
  • #17: All production changes ship through this pipeline. Infrastructure changes. Updates to system software. Security fixes. A change is made to the code, it is tested locally on a developer’s workstation for fast response tests with small resource requirements, it’s submitted to the project pipeline, approved, and moves on. We’re in a position now to catch bugs or changes to behavior caused by updates to underlying software. impacts from security updates can be known quickly so system remediation can happen within a shorter window after a vulnerability is announced and fixed by a vendor. Risk is programmatically reduced by employing testing to all code that goes into the Delivery process.
  • #18: This means the system is able to help coordinate the flow of change across projects and teams from dev workstation all the way out to Production. Each project has its own acceptance pipeline to run its specific internal tests, whether it is java, ruby, php, javascript, etc. The system enforces a single change-at-a-time moving through each of Union, Rehearsal, and Delivered. These changes have already been internally accepted – they’ve passed their own tests and are provably correct for their own behavior, when they come to the shared pipeline, they are tested against all other dependent services in the cluster, constellation, collection to know that their changes don’t impact the whole. This keeps things stable. If something breaks, you can identify the change that introduced the breakage. When a change is made, it is much more obvious that it is changing the entire system, rather than just a small independent component.