your cloud native future
Andrew Clay Shafer
you have to be serious
you can’t be so irreverent
do you have to be so serious?
you are a zealot
Humans are allergic to change. They love to say,
"We've always done it this way." I try to fight that.
It is not necessary to change.
Survival is not mandatory.
- W. Edwards Deming
Andrew Clay Shafer
Andrew Clay Shafer
@littleidea
Andrew Clay Shafer
@littleidea
@littleidea
software is eating the world
insurmountable opportunity
transform human experience
transform human performance
you are building a
software business
or losing to someone who is
you are building software
or losing to someone who is
talks I am not giving today…
devops, managing complex
systems at scale
building for failure and MTTR
configuration services, service
discovery, and circuit breakers
continuous delivery,
microservices and you
faster and safer
BLAH BLAH BLAH BLAH
OODA LOOP
SMALL BATCHES
three stone cutters walk into a
Pareto Inefficient Nash Equilibrium
Three Stone Cutters
What do you do?
I get paid
to cut stones
I am an
expert craftsmen.
I build cathedrals.
In Conclusion…
you are building a
learning organization
or losing to someone who is
Software is Eating the World
BS
Software just all of a sudden got hungry?
what is disrupting everything are
the experiences being created
super computers in every
pocket connected to each other
and all human knowledge by
high speed networks
every aspect of human performance
and experience that can be optimized
will be
what is the solution?
let’s talk about #winning
tale of two software projects
It was supposed to be a "killer app," but a system deployed to
volunteers by Mitt Romney's presidential campaign may have
done more harm to Romney's chances on Election Day
Aurich Lawson / Thinkstock
if you don’t experiment before
putting things into production
production is always an experiment
might have lost the election
but Harper is an unicorn,
we don’t have the talent
“Netflix hired them from you,
and got out of their way.”
Principles > Practices >Tools
why > what
success and failure are
correlated with learning
software is creating experiences
software is creative
software is complex
software is prone to failure
software is not digging ditches
software is closer to art than science
software is a socio-technical
evolution of our capabilities
to succeed at software you
need the capacity to create
to succeed at software you
need to be willing to fail
you are building a
learning organization
or losing to someone who is
you haven’t learned anything
until you change your behavior
devops,
platforms,
continuous delivery,
microservices…
These things
are all one…
same patterns emerged in high
performing organizations that
deliver highly available
applications continuously at scale
from now on, I’m going to call all
that together… ‘Cloud Native’
–Leo Devops Tolstoy
“All happy applications are alike;
each unhappy application is unhappy in its own way.”
what would cloud natives do?
wwcnd
Amazon, a bookstore in Seattle, deploys
code to production every 11 seconds…
1 second
–Werner Vogels, CTO Amazon
“The traditional model is that you take your software to the wall
that separates development and operations, and throw it over
and then forget about it. Not at Amazon. You build it, you run it.
This brings developers into contact with the day-to-day
operation of their software. It also brings them into day-to-day
contact with the customer. This customer feedback loop is
essential for improving the quality of the service.”
Adrian Cockroft - ex-Netflix
What I learned from my time at Netflix.
Netflix Lessons
• Speed wins in the marketplace
• Remove friction from product development
• High trust, low process, no hand-offs between teams
• Freedom and responsibility culture
• Don’t do your own undifferentiated heavy lifting
• use simple patterns automated by tooling
• self service cloud makes impossible things instant
Netflix Lessons
• Speed wins in the marketplace
• Remove friction from product development
• High trust, low process, no hand-offs between teams
• Freedom and responsibility culture
• Don’t do your own undifferentiated heavy lifting
• use simple patterns automated by tooling
• self service cloud makes impossible things instant
Netflix built a platform to enable
self service deployment
Netflix built a platform to deploy
and operate microservices
Netflix built a platform to
continuously deliver software
Netflix built a platform that could
protect itself from failure
What Netflix did not do is build a platform
for general ad-hoc automation…
Constraints are the contract that
allows a platform to keep
promises.
Everyone has a platform.
What promises can
your platform keep?
Cloud Foundry promises
starts at the API
API all the things
•current_vm_id
•create_stemcell
•delete_stemcell
•create_vm
•delete_vm
•has_vm?
•reboot_vm
•set_vm_metadata
•configure_networks
•create_disk
•delete_disk
•attach_disk
•snapshot_disk
•delete_snapshot
•detach_disk
•get_disks
Cloud Provider Interface
Cloud Native Infrastructure Automation
CPI
need to manage a large distributed system
• deployment
• configuration changes
• updates/upgrades - minimal downtime
• health checks and remediation
• scale out/scale in
• across multiple IaaS
Everything as a Service
Now that we have a tool chain for
release engineering, deployment,
and lifecycle management of large-
scale distributed services…
What should we do with it?
deploy a self-service self-healing
container scheduler, of course!
routers
Linux
LinuxLinux
Containers
message bus
cloud controller
loggregators
controller DB
etcd
hm9000
metrics firehose
UAA
login
Cloud Foundry Elastic Runtime
service
brokers
object
store
stagers
Cloud Native Runtime Platform
Cloud Native Infrastructure Automation
CPI
BOSH release
• role based access to resources
• run code on demand
• coordinate cross service
configurations
• route public requests
• read and write persistent data
• add and remove resources
• record internal and external
events
• isolate resources and failures
• measure performance/health
• detect and determine failure
(plan & provoke failure)
• recover failures
• work tomorrow
What problems does it solve?
12 Factor Ops
your pipeline to continuously
deliver microservices is ready
(and win buzzword bingo)
cloud native application:
• 12 factor contract
• composable
• discoverable
• fault tolerant
•I. Codebase
•II. Dependencies
•III. Config
•IV. Backing Services
•Build, release, run
•VI. Processes
•VII. Port binding
•VIII. Concurrency
•IX. Disposability
•X. Dev/prod parity
•XI. Logs
•XII. Admin processes
‘boot’ makes microservices easy
‘cloud’ provides composable patterns
• configuration service
• service registry
• service discovery
• client load balancing
• circuit breaker
• micro-proxy
• api gateways
If you are one of those people who like to read books…
The Stories We Tell
the patterns proven successful
building and operating highly
available systems with predictable
scaling and failure characteristics
Cloud Native Runtime Platform
Cloud Native Infrastructure Automation
Cloud Native Application Framework
CPI
BOSH release
12 Factor
Cloud Native Contracts
structured contracts
determine the promises a
platform can keep
simple patterns
automated by tooling
simple patterns
automated by tooling
simple patterns
automated by tooling
Use tools and simple
patterns to make doing the
right thing the easy thing
high trust, low process,
no hand-offs between teams
freedom and responsibility
Cloud Native Runtime Platform
Cloud Native Infrastructure Automation
Cloud Native Application Framework
CPI
BOSH release
12 Factor
Cloud Native Contracts
Cloud Native Culture
how many put as much effort into
designing their culture as they do
their applications and systems?
This is the
cloud native
advantage
This is what helps
organizations move
quickly at scale
Motivated to change the relationship
between people and the computers
I never set out to DO devops.
actually, needed to change the
relationship between people and people
no one originally set out to do devops,
continuous delivery, microservices, or
platforms these were natural consequences
don’t fixate on the words, fixate on the outcomes
if you want to align people in your
organization, think about the
interfaces, look at the promises they
make and keep with each other.
what do you do?
I build the future
and so can you
the future is already here
it’s just not evenly distributed
- William Gibson
Thank You
@littleidea
We are uncovering better ways of developing software,
by doing it and helping others do it

Cloud Native Future