Experimentation with 

Immutable Infrastructure.
Timothy Perrett @ Hashiconf 2017
Hello.
!
Immutable Infrastructure.
thou shall not change thy deployment!
Converged Infrastructure.
datacenter resources are finite.
Converged Infrastructure.
staging production
static provisioning
Converged Infrastructure.
machine
application
datacenter
operations
infrastructure
product
Converged Infrastructure.
machine
scheduler
container
mesh
application
datacenter
operations
infrastructure
product
Converged Infrastructure.
resources
scheduling substrate
workloads
Workloads.
• Users demand:
• Blazing fast iteration.
• High degree of observability.
• Seamless traffic migration between application revisions.
• Automated application cleanup.
• Self-service DevOps experience.
Workloads.
• Users demand:
• Blazing fast iteration.
• High degree of observability.
• Seamless traffic migration between application revisions.
• Automated application cleanup.
• Self-service DevOps experience.
2017 minimum

table stakes!
Ex·per·i·men·ta·tion
Process of performing a scientific procedure to determine something.
Ex·per·i·men·ta·tion
Process of performing a scientific procedure to determine something.
Testing in production
Testing in Production.
everyone does it. nobody wants to own up to it.
Emergent Behaviors.
observation of unpredictable, non-deterministic runtime artifacts.
Testing in production.
– Conway’s Law
“Any organization that designs a system will produce a design
whose structure is a copy of the organization's 

communication structure”
– Hyrum’s Law
“With a sufficient number of users of an interface, 

all observable behaviors of your interface will 

be depended upon by somebody.”
Microservice Complexity.
local containerized testing is a fable.
Testing in production.
Inconceivable Scale.
black friday. super bowl. popular cat memes.
Testing in production.
Human Error.
embrace the inevitable.
http://queue.acm.org/detail.cfm?id=2839461
Testing in production.
Prior Art.
Segmentation.
total

population
experiment
group
Segmentation.
control
treatment
Edge
Experiment
Manager
Assignment
Foo
Bar Qux
Design.
Edge
Experiment
Manager
Assignment
Foo
Bar Qux
Design.
interception
Edge
Experiment
Manager
Assignment
Foo
Bar Qux
Design.
segmentation
Edge
Experiment
Manager
Assignment
Foo
Bar Qux
Design.
request
flow
Edge
Experiment
Manager
Assignment
Foo
Bar Qux
Design.
telemetry
Traffic Control.
split. shift. shadow.
1.1.21.1.1
Ingress Load Balancer
1.1.21.1.1
Ingress Load Balancer
1.1.21.1.1
Ingress Load Balancer
1.1.2
Ingress Load Balancer
1.1.2
Ingress Load Balancer
Considered

harmful!
X
I’m sold!
where do I sign?
Scheduling Substrate.
nomad. kubernetes. mesos.
Data Plane.
envoy. linkerd. nginx+.
Control Plane.
istio. linkerd. nelson.
Control Plane.
Challenges.
• How you collect results affects how you read them.
• Twyman’s Law: “Any piece of data or evidence that looks interesting
or unusual is probably wrong!”.
• Disparate data collection in many organizations.
• Instrument everything with segment identifiers.
• Modify all applications to be experiment aware.
• Such systems breed organizational change. Embrace it.
Conclusions.
• Experimentation infrastructure makes your workloads mobile.
• Not only does this make experimentation viable and low-impact,
but it makes your operation vastly more flexible.
• Codify and automate an experimentation process.
• You’re already doing it manually.
• Tools are already available that form the building blocks.
EOF
timperrett
github.com/timperrett
Links
• Nelson: https://verizon.github.io/nelson/
• Istio: https://istio.io/
• Research:
• Microsoft (2013): http://dl.acm.org/citation.cfm?id=2488217
• Etsy (2012): https://www.slideshare.net/danmckinley/design-for-continuous-
experimentation
• Google (2010): https://research.google.com/pubs/pub36500.html
• Microsoft (2009): http://dl.acm.org/citation.cfm?id=2339653

Online Experimentation with Immutable Infrastructure