SlideShare a Scribd company logo
BUILDING
EVOLVABLE
INFRASTRUCTURE
(as code)
kief@thoughtworks.com
Head of Cloud Engineering
Twitter: @kief
Book: http://oreil.ly/1JKIBVe
Site: http://infrastructure-as-code.com
SPEED
IMPEDIMENT
CLOUD
QUALITY
Fast
Slow Careless
Careful
State of the DevOps Report
https://devops-research.com/
Accelerate,
Nicole Forsgren, PhD,
Jez Humble,
Gene Kim
Graphic from State of the DevOps Report 2018
The four
metrics
"The highest
performers excel at
throughput and
stability"
State of the DevOps Report 2018
Nicole Forsgren, PhD, Jez Humble, Gene Kim
https://devops-research.com/
Optimize for the capability
to deliver changes
RAPIDLY and RELIABLY
"Since we can't avoid
change, we need to
exploit it"
Building Evolutionary Architectures
Neal Ford, Rebecca Parsons, Pat Kua
How do we make our
infrastructure evolvable?
OPTIMIZE
FOR
CHANGE
AS CODE
Define all your stuff as code
So that everything is visible,
repeatable, and changes
are actionable
OPTIMIZE
FOR
CHANGE
CONTINUOUS
VALIDATION
Integrate and test all work
in progress as we go
So that problems are
discovered and fixed up
front
OPTIMIZE
FOR
CHANGE
Build small, independently
releasable components
So that they are easier and faster
to change, test, and release
SMALL
PIECES
Define all
your stuff
AS CODE
Define infrastructure as code
Infrastructure configuration is:
§ Reusable
§ Consistent
§ Visible
§ Versioned
Configuration drift
Servers start
out identical
But changes
accumulate
over time
Synchronize continuously
INFRASTRUCTURE STACK
Some platforms:
• AWS
• Azure
• Google Cloud Platform
• VMWare
• Digital Ocean
• Bare metal clouds
Infrastructure Platform
A dynamic pool of
compute, storage,
and networking
resources
Infrastructure stack
A collection of infrastructure
resources provisioned and
updated as a unit
Stack management tool
Stack instances
Platform API
Stack definition
Some tools:
• Terraform
• AWS CloudFormation
• Azure Resource Manager
• Google Deployment Manager
• Ansible Cloud Modules
A stack often
includes servers
Server configuration tool
Configuration
tool
Configuration
definitions
Server instance
Some tools:
• Ansible
• Chef
• Puppet
• Saltstack
MANAGING
MULTIPLE
ENVIRONMENTS
MANY-HEADED STACK antipattern
Test Staging Production
our_env/
└── test.tf
└── staging.tf
└── production.tf
Changes have a wide blast radius
Test Staging Production
our_env/
└── test.tf
└── staging.tf
└── production.tf
!
SINGLETON STACK antipattern
our_env/
└── test/
└── servers.tf
our_env/
└── staging/
└── servers.tf
our_env/
└── production/
└── servers.tf
Test
Staging
Production
Code changes by copy/paste
our_env/
└── test/
└── servers.tf
our_env/
└── staging/
└── servers.tf
our_env/
└── production/
└── servers.tf
Test
Staging
Production
!
test instance
staging instance
production instance
TEMPLATE STACK pattern stack
source
code
id=test
Instance parameter values
id=staging
id=production
! Blast radius is managed
! Environments are consistent
! Testing is more reliable
" Adds moving parts
# Requires versioning and
parameterization mechanisms
CONTINUOUSLY
VALIDATE all
work in progress
as you go
Automatically test every change before
applying it
Promote changes to environments using
a pipeline
BUILDLOCAL
APPLY
TO QA
APPLY
TO
PROD
Sandbox
QA Production
APPLY
TO TEST
Test
Processes and
controls are
enforced by code
Every change is logged
and traceable, from
commit to production
Enable
governance with
pipelines
Environment
Definitions
Test Code
Compliance
Specifications
Pipeline
Definitions
Challenge: Feedback cycles
(This stuff is slow. Very. Very.
Slow)
Solution: Break stacks apart
into smaller pieces
BUILD SMALL,
independently
releasable
components
A stack with servers
Stack provisioning
includes creating and
configuring the servers
Testing the stack is slow
Provision the entire
stack on the platform,
with all elements
Or update an
environment that we
keep running all the time
Repeat for
every stage
Break out a server roleApplication
server role
Stack
Server
configurations
Java
Cookbook
Tomcat
Cookbook
Stack
Java
Cookbook
Tomcat
Cookbook
Appserver
Role
Server configuration tool
provisions the server
separately from the stack
Test server configurations
Test configuration
elements separately
Provision and test using
virtual machines or
containers
Test locally or on
build agents
Extract separate pipeline stages
for server configuration
Test stack definition
Test server configuration
Test integrated system
How do we scale?
Monolithic stack
Monolithic stack
Wide blast radius, high coordination overhead
!
Divide infrastructure into multiple,
independently changeable stacks
Each stack has its own pipeline to deliver
changes
Draw boundaries to minimize changes
that cross stacks
CONCLUSION:
Optimize for
change in order to
achieve reliability
kief@thoughtworks.com
Head of Cloud Engineering
Twitter: @kief
Book: http://oreil.ly/1JKIBVe
Site: http://infrastructure-as-code.com

More Related Content

PDF
Continuous delivery in Qbon
PDF
2 Epic Migrations at Flo:
PDF
Continuously serving the developer community with Continuous Integration and...
PDF
Continuous Delivery Agile Tour Beirut 2015
PDF
Simple Unit Testing in Appcelerator Titanium Alloy
PPTX
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
PPTX
Don’t Settle for Old-school SCM: Fail Faster? How about Don’t Fail at All?
PPT
Continuous integration - main principles
Continuous delivery in Qbon
2 Epic Migrations at Flo:
Continuously serving the developer community with Continuous Integration and...
Continuous Delivery Agile Tour Beirut 2015
Simple Unit Testing in Appcelerator Titanium Alloy
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
Don’t Settle for Old-school SCM: Fail Faster? How about Don’t Fail at All?
Continuous integration - main principles

What's hot (19)

PPTX
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
PDF
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
PDF
CICD by Teerapat
PDF
Docker, Continuous Integration, and You
PPTX
What’s New in Topaz Workbench Webcast
PPTX
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
PDF
Metrics-driven Continuous Delivery
PDF
Introduction to CICD
PDF
10 Deployments a day - A brief on extreme release protocols
PDF
Microservices testing in the docker era
PDF
Continuous Delivery - Voxxed Days Cluj-Napoca 2017
PPTX
Rewriting DevOps - Lessons from a 15 month software rewrite
PPTX
Fundamentals of DevOps and CI/CD
PDF
Continuous integration
PDF
Becoming a Git Master - Nicola Paolucci
PDF
QA in DevOps: Transformation thru Automation via Jenkins
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
PPTX
DevOps Pipelines and Metrics Driven Feedback Loops
PPTX
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
CICD by Teerapat
Docker, Continuous Integration, and You
What’s New in Topaz Workbench Webcast
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
Metrics-driven Continuous Delivery
Introduction to CICD
10 Deployments a day - A brief on extreme release protocols
Microservices testing in the docker era
Continuous Delivery - Voxxed Days Cluj-Napoca 2017
Rewriting DevOps - Lessons from a 15 month software rewrite
Fundamentals of DevOps and CI/CD
Continuous integration
Becoming a Git Master - Nicola Paolucci
QA in DevOps: Transformation thru Automation via Jenkins
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
DevOps Pipelines and Metrics Driven Feedback Loops
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Ad

Similar to Building Evolvable Infrastructure (20)

PDF
Evolutionary infrastructure agile 2018 - kief morris
PDF
Release Automation: Better Quality, Faster Deployment, Amazing ROI
PPT
Continuous Load Testing with CloudTest and Jenkins
PPT
Continuous Load Testing with CloudTest and Jenkins
PPTX
How to Add Perfecto to Your CI
PPTX
Test Design for Fully Automated Build Architectures
PPTX
Infrastructure as Code for Network
PDF
Infrastructure and Compliance Delight with Chef Automate
PPTX
Test Smarter Not Harder - how to design tests for continuous delivery
PDF
Continuous Delivery for Agile Teams
PPTX
CI CD OPS WHATHAVEYOU
PPTX
Software Factory - Overview
PDF
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
PDF
Microservice Teams - How the cloud changes the way we work
PDF
DevOps Transformation: Learnings and Best Practices
PDF
Transform Digital Business with DevOps
PPTX
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
PDF
From ci to cd - LavaJug 2012
PDF
You Build It, You Secure It: Higher Velocity and Better Security with DevSecOps
PPTX
Jenkins as the Test Reporting Framework
Evolutionary infrastructure agile 2018 - kief morris
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
How to Add Perfecto to Your CI
Test Design for Fully Automated Build Architectures
Infrastructure as Code for Network
Infrastructure and Compliance Delight with Chef Automate
Test Smarter Not Harder - how to design tests for continuous delivery
Continuous Delivery for Agile Teams
CI CD OPS WHATHAVEYOU
Software Factory - Overview
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Microservice Teams - How the cloud changes the way we work
DevOps Transformation: Learnings and Best Practices
Transform Digital Business with DevOps
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
From ci to cd - LavaJug 2012
You Build It, You Secure It: Higher Velocity and Better Security with DevSecOps
Jenkins as the Test Reporting Framework
Ad

Recently uploaded (20)

PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Nekopoi APK 2025 free lastest update
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
history of c programming in notes for students .pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PPTX
ai tools demonstartion for schools and inter college
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Operating system designcfffgfgggggggvggggggggg
wealthsignaloriginal-com-DS-text-... (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How Creative Agencies Leverage Project Management Software.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Nekopoi APK 2025 free lastest update
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PTS Company Brochure 2025 (1).pdf.......
2025 Textile ERP Trends: SAP, Odoo & Oracle
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
How to Choose the Right IT Partner for Your Business in Malaysia
history of c programming in notes for students .pptx
Design an Analysis of Algorithms I-SECS-1021-03
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
ai tools demonstartion for schools and inter college

Building Evolvable Infrastructure