Cloud Native Future

Preview:

Citation preview

your cloud native futureAndrew 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 CuttersWhat 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

BSSoftware 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

LinuxLinuxLinux 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

Recommended