95
FROM SERVERLESS TO SERVICEFULL HOW THE MINDSET OF DEVOPS IS EVOLVING @patrickdebois - Small Town Heroes

Patrick Debois - From Serverless to Servicefull

Embed Size (px)

Citation preview

Page 1: Patrick Debois - From Serverless to Servicefull

FROM SERVERLESS TO SERVICEFULL

HOW THE MINDSET OF DEVOPS IS EVOLVING

@patrickdebois - Small Town Heroes

Page 2: Patrick Debois - From Serverless to Servicefull

Things I did (I’m proud of)

Page 3: Patrick Debois - From Serverless to Servicefull

LIVE RESULTSINTERACTION MODERATIONSTUDIO CONTROLPART OF THE SHOW

Page 4: Patrick Debois - From Serverless to Servicefull

(almost)SERVERLESS

Page 5: Patrick Debois - From Serverless to Servicefull

“Backend” services

ELB

Page 6: Patrick Debois - From Serverless to Servicefull

“IT support” services

Page 7: Patrick Debois - From Serverless to Servicefull

Our “Office” services

Page 8: Patrick Debois - From Serverless to Servicefull

“Community” services

Page 9: Patrick Debois - From Serverless to Servicefull

“Frontend” services

Page 10: Patrick Debois - From Serverless to Servicefull

“Mobile” services

SNS/Push Cognito

Page 11: Patrick Debois - From Serverless to Servicefull

(almost)SERVICEFULL

Page 12: Patrick Debois - From Serverless to Servicefull

A bit further down the rabbit hole …

Page 13: Patrick Debois - From Serverless to Servicefull

Github

Page 14: Patrick Debois - From Serverless to Servicefull

undocumented changes to service

Page 15: Patrick Debois - From Serverless to Servicefull

limits and unavailable

Page 16: Patrick Debois - From Serverless to Servicefull

autoscaling is too slow for peak traffic

Page 17: Patrick Debois - From Serverless to Servicefull

service got disabled because

of too many bounces

Page 18: Patrick Debois - From Serverless to Servicefull

inconsistent behaviour

Page 19: Patrick Debois - From Serverless to Servicefull

(almost)NO MAINTENANCE

Page 20: Patrick Debois - From Serverless to Servicefull

increased riskwhen not available

Page 21: Patrick Debois - From Serverless to Servicefull
Page 22: Patrick Debois - From Serverless to Servicefull

Case1 Generate “personalised” image

Browser -> Pre-signed S3 -> Lambda -> SQS -> Redis

Page 23: Patrick Debois - From Serverless to Servicefull

Case2 Peak load testing like a real browser

SQS -> Lambda -> S3 results

Page 24: Patrick Debois - From Serverless to Servicefull

Case3 Generate “personalised” text animated gif

API GW -> Lambda -> S3 image

Page 25: Patrick Debois - From Serverless to Servicefull

Case4 Animated gif/movie/meme editor

API GW -> Lambda -> Img magic movie -> s3

Page 26: Patrick Debois - From Serverless to Servicefull
Page 27: Patrick Debois - From Serverless to Servicefull
Page 28: Patrick Debois - From Serverless to Servicefull
Page 29: Patrick Debois - From Serverless to Servicefull

You are an Agent

Page 30: Patrick Debois - From Serverless to Servicefull

You make promises to others in the system

Page 31: Patrick Debois - From Serverless to Servicefull

Your promises should be verifiable

Page 32: Patrick Debois - From Serverless to Servicefull

A promise does not guarantee an outcome

Page 33: Patrick Debois - From Serverless to Servicefull

Conditions should be part of your promise

Page 34: Patrick Debois - From Serverless to Servicefull

It needs to be clearly documented otherwise it’s not a promise

Page 35: Patrick Debois - From Serverless to Servicefull
Page 36: Patrick Debois - From Serverless to Servicefull

the language of a promise must be shared

Page 37: Patrick Debois - From Serverless to Servicefull

It needs to be mutually agreed (not obligation) otherwise it’s not a promise

Page 38: Patrick Debois - From Serverless to Servicefull

You might depend on other agents to keep your promises

Page 39: Patrick Debois - From Serverless to Servicefull

Other agents make promises to you

Page 40: Patrick Debois - From Serverless to Servicefull

Their promises need to be verifiableclearly documented & mutually agreed (not obligation)

Page 41: Patrick Debois - From Serverless to Servicefull

But you can not make promises on behalf of other agents (bottom up vs top down)

Page 42: Patrick Debois - From Serverless to Servicefull

Promises can be conflicting in a system

Page 43: Patrick Debois - From Serverless to Servicefull

but the conflict can only be from internal promises (as we can not be responsible for others promises)

Page 44: Patrick Debois - From Serverless to Servicefull

To keep a promise you should have a choice Push vs Pull

Page 45: Patrick Debois - From Serverless to Servicefull

Single Leaves = SPOF

To create choice you need to eliminate the single leaves (SPOF)

Page 46: Patrick Debois - From Serverless to Servicefull
Page 47: Patrick Debois - From Serverless to Servicefull

“Abstraction is selective ignorance”

http://en.wikipedia.org/wiki/Andrew_Koenig_(programmer)

Page 48: Patrick Debois - From Serverless to Servicefull

All problems in computer science can be solved by

another level of abstraction

Page 49: Patrick Debois - From Serverless to Servicefull

… except for the problem of too many layers of indirection …

David Wheeler (inventor of subroutine)

Page 50: Patrick Debois - From Serverless to Servicefull
Page 51: Patrick Debois - From Serverless to Servicefull
Page 52: Patrick Debois - From Serverless to Servicefull

Every promise binding is the basis for relationship(Dunbar)

Page 53: Patrick Debois - From Serverless to Servicefull

Agents with a similar goal can be grouped into a Super Agent

Page 54: Patrick Debois - From Serverless to Servicefull

Services

Page 55: Patrick Debois - From Serverless to Servicefull

Single Leaves = SPOF

You need multiple Super Agents to have a choice again

Page 56: Patrick Debois - From Serverless to Servicefull

Forksv1 v2 v3

v1 v2 v3

To keep promises agent can introduce different world views (versions)

Page 57: Patrick Debois - From Serverless to Servicefull

Slows down

A super agent might get slow internal communication speed is key

Page 58: Patrick Debois - From Serverless to Servicefull

Scaling Promises keeping your promise while changing your size (is hard)

Page 59: Patrick Debois - From Serverless to Servicefull

container re-use non-deterministic

Page 60: Patrick Debois - From Serverless to Servicefull

limits not clear under stress

Page 61: Patrick Debois - From Serverless to Servicefull

scale is not always infinite

Page 62: Patrick Debois - From Serverless to Servicefull

services

devops

Page 63: Patrick Debois - From Serverless to Servicefull

Holy Cow!

Page 64: Patrick Debois - From Serverless to Servicefull

“I introduced devops and all I got was a remote API”

Page 65: Patrick Debois - From Serverless to Servicefull

It’s devops Jim but not as we know it

Page 66: Patrick Debois - From Serverless to Servicefull

emerging practices

Page 67: Patrick Debois - From Serverless to Servicefull

communicate the status

of your promise and monitor others

Page 68: Patrick Debois - From Serverless to Servicefull

monitor your services

and expose your own metrics (API)

Page 69: Patrick Debois - From Serverless to Servicefull

expose insights to other agents

(API)

Page 70: Patrick Debois - From Serverless to Servicefull

show that you care about

other agents

Page 71: Patrick Debois - From Serverless to Servicefull

expose your logs

Page 72: Patrick Debois - From Serverless to Servicefull

be clear on what happens when it fails

Page 73: Patrick Debois - From Serverless to Servicefull

backup external data (give an API please)

Page 74: Patrick Debois - From Serverless to Servicefull

provide & seek fast feedback

on your promise change status

Page 75: Patrick Debois - From Serverless to Servicefull

be clear on your dependencies and expect the same

of other services

Page 76: Patrick Debois - From Serverless to Servicefull

be proactive to make others keep their

promises

Page 77: Patrick Debois - From Serverless to Servicefull

give insights on changing promises

Page 78: Patrick Debois - From Serverless to Servicefull

blog to communicate your service

skill level

Page 79: Patrick Debois - From Serverless to Servicefull

talk at conferences to indicate

your willingness to share

Page 80: Patrick Debois - From Serverless to Servicefull

make it convenient for other agents to use

Page 81: Patrick Debois - From Serverless to Servicefull

provide feedback to other agents

Page 82: Patrick Debois - From Serverless to Servicefull

show that you listen to those that depend on you

Page 83: Patrick Debois - From Serverless to Servicefull

show that your participation by improving

the field

Page 84: Patrick Debois - From Serverless to Servicefull

show that your engineers

are not afraid of talking to people

Page 85: Patrick Debois - From Serverless to Servicefull

be responsive to requests

Page 86: Patrick Debois - From Serverless to Servicefull

let other agents influence your changing

promises

Page 87: Patrick Debois - From Serverless to Servicefull

External Services are the next silo

Page 88: Patrick Debois - From Serverless to Servicefull

“The collaboration between dev & ops is now

extended to external 3rd parties”

Page 89: Patrick Debois - From Serverless to Servicefull

“make clear promisesto other agents”

Page 90: Patrick Debois - From Serverless to Servicefull

“And verify the status of other agents promises”

Page 91: Patrick Debois - From Serverless to Servicefull

“To keep your promise to the business”

Page 92: Patrick Debois - From Serverless to Servicefull
Page 93: Patrick Debois - From Serverless to Servicefull

Questions?

Page 94: Patrick Debois - From Serverless to Servicefull

https://vimeo.com/101735252

DevOpsDays Minneapolis 2014 Jeff Sussna, Promising Digital Service Quality

Page 95: Patrick Debois - From Serverless to Servicefull