138
Austin Copenhagen Dubai London Madrid Melbourne Munich Milan New York Nice Raleigh San Francisco São Paulo Singapore Tokyo Toronto Cloud Native is About Culture, Not Containers Holly Cummins IBM Garage @holly_cummins (how to not fail at cloud native)

Austin Cloud Native is About

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Austin Copenhagen Dubai London Madrid Melbourne Munich

Milan New York Nice Raleigh San Francisco São Paulo Singapore Tokyo Toronto

Cloud Native is About Culture, Not Containers

Holly Cummins IBM Garage @holly_cummins

(how to not fail at cloud native)

@holly_cummins#IBMGarage

what is cloud native?

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

Credit to @bibryam

@holly_cummins#IBM #IBMGarage

(a great article, btw)

@holly_cummins#IBM #IBMGarage

(a great article, btw)

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

microservicescontainers

dynamically orchestrated

@holly_cummins#IBM #IBMGarage

“the cloud native computing

foundation is wrong …

about cloud native.”

g o t o ;

@holly_cummins#IBM #IBMGarage

“the cloud native computing

foundation is wrong …

about cloud native.” Holly

g o t o ;

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

build great products faster

@holly_cummins#IBMGarage

why?

@holly_cummins#IBM #IBMGarage

what problem are we trying to solve?

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

CV-driven development.

@holly_cummins#IBM #IBMGarage

“my CV looks dull” is not a good reason

to go cloud native

@holly_cummins#IBM #IBMGarage

why cloud?

@holly_cummins#IBM #IBMGarage

cost

@holly_cummins#IBM #IBMGarage

e l a s t i c i t y

@holly_cummins#IBM #IBMGarage

speed

@holly_cummins#IBM #IBMGarage

exotic capabilities

@holly_cummins#IBM #IBMGarage

why cloud native?

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

12 factors

@holly_cummins#IBM #IBMGarage

12 factors

how to write a

cloud application so you don’t get

electrocuted

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

cloud native is not a synonym for

‘microservices’

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

if ‘cloud native’ has to be a synonym for anything, it would be

‘idempotent’

@holly_cummins#IBM #IBMGarage

if ‘cloud native’ has to be a synonym for anything, it would be

‘idempotent’

which definitely needs a synonym

@holly_cummins#IBM #IBMGarage

containers are a good base

@holly_cummins#IBM #IBMGarage

containers are a good base

it’s not a competition to see how many you can have

@holly_cummins#IBM #IBMGarage

you do not need intra-app http communication to be cloud native

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

complexity adds expense

@holly_cummins#IBM #IBMGarage

unnecessary complexity adds unnecessary expense

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

space pencil

@holly_cummins#IBM #IBMGarage

space pencil$128.89

@holly_cummins#IBM #IBMGarage

space pencil$128.89

space pen

@holly_cummins#IBM #IBMGarage

space pencil$128.89

space pen$2.39

@holly_cummins#IBM #IBMGarage

space pencil$128.89

space pen$2.39

+medical bills

@holly_cummins#IBM #IBMGarage

accidental complexity

essential complexity

@holly_cummins#IBM #IBMGarage

accidental complexity

essential complexity

“this will impress my boss” complexity

@holly_cummins#IBM #IBMGarage

2010 the dawn of cloud native

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

behaves well on the cloud

@holly_cummins#IBM #IBMGarage

behaves well on the cloud written for the cloud

@holly_cummins#IBM #IBMGarage

this is all how we run our application, not what’s in it

@holly_cummins#IBM #IBMGarage

speed

@holly_cummins#IBM #IBMGarage

speed

@holly_cummins#IBM #IBMGarage

what’s the point of getting the same old stuff to market faster?

@holly_cummins#IBM #IBMGarage

what’s the point of being able to respond to the market, if you don’t?

@holly_cummins#IBM #IBMGarage

what’s the point of architecture that can go

faster, if you don’t go faster?

@holly_cummins#IBMGarage

how to fail at cloud native

@holly_cummins#IBM #IBMGarage

“each of our microservices has duplicated the same object

model … with twenty classes and seventy fields”

@holly_cummins#IBM #IBMGarage

Microservice

@holly_cummins#IBM #IBMGarage

Microservice

Domain

@holly_cummins#IBM #IBMGarage

Microservice

Domain

@holly_cummins#IBM #IBMGarage

“every time we change code, something breaks”

@holly_cummins#IBM #IBMGarage

distributed monolith

@holly_cummins#IBM #IBMGarage

cloud-native spaghetti is still spaghetti (Image: Cloudy with a Chance of Meatballs.)

@holly_cummins#IBM #IBMGarage

just because a system runs across 6 containers doesn’t mean it’s decoupled

@holly_cummins#IBM #IBMGarage

distributed != decoupled

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarageCourtesy NASA/

JPL-Caltech

@holly_cummins© 2019 IBM Corporation #IBMGarage

@holly_cummins© 2019 IBM Corporation #IBMGarage

metric units

metric units

imperial units

distributing did not help

metric units

imperial units

@holly_cummins#IBM #IBMGarage

microservices need consumer-driven contract tests

@holly_cummins#IBM #IBMGarage

“our tests aren’t automated”

@holly_cummins#IBM #IBMGarage

“we don’t know if our code works”

@holly_cummins#IBM #IBMGarage

systems will behave in unexpected ways

@holly_cummins#IBM #IBMGarage

documentation can be wrong

@holly_cummins#IBM #IBMGarage

dependency updates can change behaviour

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

“Had we done end-to-end testing, we believe this error would have been caught.”

Arthur Stephenson Chief Investigator

@holly_cummins#IBM #IBMGarage

“we can’t ship until we have

more confidence in the quality”

@holly_cummins#IBM #IBMGarage

microservices need automated integration tests

@holly_cummins#IBM #IBMGarage

“we don’t know when the build is broken”

not a good CI/CD indicator a good CI/CD indicator

@holly_cummins#IBM #IBMGarage

a good build radiator

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

“oh yes, that build has been

broken for a few weeks…”

@holly_cummins#IBM #IBMGarage

how to brick a spaceprobe

@holly_cummins#IBM #IBMGarage

“we couldn’t get the automated checks to work,

so we bypassed them”

@holly_cummins#IBM #IBMGarage

“we’ve scheduled the

architecture board review for a month after the

project ships”

@holly_cummins#IBM #IBMGarage

@holly_cummins#IBM #IBMGarage

navigators warned something was wrong

@holly_cummins#IBM #IBMGarage

navigators warned something was wrong

they didn’t fill in the right form

@holly_cummins#IBM #IBMGarage

navigators warned something was wrong

they didn’t fill in the right formso nothing was done

@holly_cummins#IBM #IBMGarage

does the process add value?

@holly_cummins#IBM #IBMGarage

extreme programming is the right kind of rigour

@holly_cummins#IBM #IBMGarage

extreme programming is the right kind of rigour

test-driven development

@holly_cummins#IBM #IBMGarage

extreme programming is the right kind of rigour

test-driven developmentpair programming

@holly_cummins#IBM #IBMGarage

extreme programming is the right kind of rigour

test-driven developmentpair programming

optimise for feedback

@holly_cummins#IBM #IBMGarage

“but it’s in the plan”

@holly_cummins#IBM #IBMGarage

“but it’s not in the plan”

lots of bulkheads

@holly_cummins#IBM #IBMGarage

it was too big

@holly_cummins#IBM #IBMGarage

lookouts saw the iceberg but the ship wasn’t nimble enough to avoid it

@holly_cummins#IBM #IBMGarage

NASA Langley 1961

@holly_cummins#IBM #IBMGarage

IBM 7090 (large!)

NASA Langley 1961

@holly_cummins#IBM #IBMGarage

IBM 7090 (large!)

door (normal-sized)

NASA Langley 1961

@holly_cummins#IBM #IBMGarage

IBM 7090 (large!)

door (normal-sized)

NASA Langley 1961

@holly_cummins#IBM #IBMGarage

plans are always wrong success is in how you respond

@holly_cummins#IBM #IBMGarage

“we can’t ship until every feature is

complete”

@holly_cummins#IBM #IBMGarage

how not to drive a car

@holly_cummins#IBM #IBMGarage

they often couldn’t see the explorer

@holly_cummins#IBM #IBMGarage

feedback is good business

@holly_cummins#IBM #IBMGarage

feedback is good engineering

@holly_cummins#IBM #IBMGarage

mvp hurtsan

@holly_cummins#IBM #IBMGarage

if you're not embarrassed by your first release it was

too late

@holly_cummins#IBM #IBMGarage

experiments can mean failure

@holly_cummins#IBM #IBMGarage

experiments can mean failureexperiments mean failure

The titanic staircase

and lifeboats

@holly_cummins#IBM #IBMGarage

users will have weird behaviours

@holly_cummins#IBM #IBMGarage

optimise for recovery

@holly_cummins#IBM #IBMGarage

unrecoverable

@holly_cummins#IBM #IBMGarage

manual intervention

bricked

back in ms no data loss

handoffs

fast, but data lost

@holly_cummins#IBM #IBMGarage

business recoverability

@holly_cummins#IBM #IBMGarage

remember, users will have weird behaviours

@holly_cummins#IBM #IBMGarage

speed

@holly_cummins#IBM #IBMGarage

slow is demoralising

for teams

@holly_cummins#IBM #IBMGarage

fast is good

business

@holly_cummins#IBM #IBMGarage

A late change in requirements is a competitive advantage.

–Mary Poppendieck

@holly_cummins#IBM #IBMGarage

more feedback → more accuracy

@holly_cummins#IBM #IBMGarage

cloud rescued developers from tedium and toil

@holly_cummins#IBM #IBMGarage

cloud native should feel

fun

100

https://www.ibm.com/legal/us/en/copytrade.shtml 101

®

@holly_cummins