Slide 1

Slide 1 text

HOW THE PRACTICES OF DEVOPS ARE EVOLVING from servers to services @patrickdebois - Small Town Heroes

Slide 2

Slide 2 text

Things I did (I’m proud of)

Slide 3

Slide 3 text

OPS DEV http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/ 4 areas of improvement

Slide 4

Slide 4 text

OPS DEV Area 1: Extend delivery to production http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Slide 5

Slide 5 text

OPS DEV Area 2: Extend operations feedback to project Area 1: Extend delivery to production http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Slide 6

Slide 6 text

OPS DEV Area 2: Extend operations feedback to project Area 1: Extend delivery to production Area 3: Embed Project knowledge into Operations http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Slide 7

Slide 7 text

OPS DEV Area 4: Embed Operations knowledge into Project Area 2: Extend operations feedback to project Area 1: Extend delivery to production Area 3: Embed Project knowledge into Operations http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

Slide 8

Slide 8 text

OPS DEV http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/ Technical Loop Business Loop Business Loop

Slide 9

Slide 9 text

LIVE RESULTS INTERACTION MODERATION STUDIO CONTROL PART OF THE SHOW

Slide 10

Slide 10 text

Focus on the Business

Slide 11

Slide 11 text

“Backend” services “IT support” services Our “Office” services “Community” services “Frontend” services

Slide 12

Slide 12 text

“Mobile” services SNS/Push Cognito

Slide 13

Slide 13 text

(almost) NO SERVERS

Slide 14

Slide 14 text

A bit further down the rabbit hole …

Slide 15

Slide 15 text

Github service not available

Slide 16

Slide 16 text

undocumented changes

Slide 17

Slide 17 text

inconsistent behaviour

Slide 18

Slide 18 text

different behaviour under load

Slide 19

Slide 19 text

(almost) NO MAINTENANCE Less Maintenance

Slide 20

Slide 20 text

increased risk when not available More speed

Slide 21

Slide 21 text

With increased risk

Slide 22

Slide 22 text

Functions As a Service (FAAS) aka “serverless”

Slide 23

Slide 23 text

Case1 Generate “personalised” image Browser -> Pre-signed S3 -> Lambda -> SQS -> Redis

Slide 24

Slide 24 text

Case2 Animated gif/movie/meme editor API GW -> Lambda -> Img magic movie -> s3

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

You are an Agent

Slide 28

Slide 28 text

You make promises to others in the system

Slide 29

Slide 29 text

Your promises should be verifiable

Slide 30

Slide 30 text

A promise does not guarantee an outcome

Slide 31

Slide 31 text

Conditions should be part of your promise

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

You might depend on other agents to keep your promises

Slide 35

Slide 35 text

Other agents make promises to you

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

Promises can be conflicting in a system

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

All problems in computer science can be solved by another level of abstraction

Slide 43

Slide 43 text

… except for the problem of too many layers of indirection … David Wheeler (inventor of subroutine)

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

Every promise binding is the basis for relationship (Dunbar)

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

Single Leaves = SPOF You need multiple Super Agents to have a choice again

Slide 48

Slide 48 text

Forks v1 v2 v3 v1 v2 v3 To keep promises agent can introduce different world views (versions)

Slide 49

Slide 49 text

Slows down A super agent might get slow internal communication speed is key Opportunity for personalised service providers

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

container re-use non-deterministic

Slide 52

Slide 52 text

limits not clear under stress

Slide 53

Slide 53 text

services devops

Slide 54

Slide 54 text

Holy Cow!

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

It’s devops Jim but not as we know it

Slide 57

Slide 57 text

emerging practices

Slide 58

Slide 58 text

communicate the status of your promise and monitor others

Slide 59

Slide 59 text

monitor your services and expose your own metrics (API)

Slide 60

Slide 60 text

expose insights to other agents (API)

Slide 61

Slide 61 text

show that you care about other agents

Slide 62

Slide 62 text

expose your logs

Slide 63

Slide 63 text

be clear on what happens when it fails

Slide 64

Slide 64 text

backup external data (give an API please)

Slide 65

Slide 65 text

provide & seek fast feedback on your promise change status

Slide 66

Slide 66 text

be clear on your dependencies and expect the same of other services

Slide 67

Slide 67 text

be proactive to make others keep their promises

Slide 68

Slide 68 text

give insights on changing promises

Slide 69

Slide 69 text

blog to communicate your service skill level

Slide 70

Slide 70 text

talk at conferences to indicate your willingness to share

Slide 71

Slide 71 text

make it convenient for other agents to use

Slide 72

Slide 72 text

provide feedback to other agents

Slide 73

Slide 73 text

show that you listen to those that depend on you

Slide 74

Slide 74 text

show that your participation by improving the field

Slide 75

Slide 75 text

show that your engineers are not afraid of talking to people

Slide 76

Slide 76 text

let other agents influence your changing promises

Slide 77

Slide 77 text

“The collaboration between dev & ops is now extended to external 3rd parties”

Slide 78

Slide 78 text

“make clear promises to other agents”

Slide 79

Slide 79 text

“And verify the status of other agents promises”

Slide 80

Slide 80 text

“To keep your promise to the business”

Slide 81

Slide 81 text

External Services are the next silo think “Supply Chain”

Slide 82

Slide 82 text

https://vimeo.com/101735252 DevOpsDays Minneapolis 2014 Jeff Sussna, Promising Digital Service Quality

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 text

Questions?

Slide 85

Slide 85 text

[email protected] www.smalltownheroes.be @patrickdebois