The Human Side of Microservices John Billings @jnb42 - - PowerPoint PPT Presentation

the human side of microservices john billings jnb42
SMART_READER_LITE
LIVE PREVIEW

The Human Side of Microservices John Billings @jnb42 - - PowerPoint PPT Presentation

The Human Side of Microservices John Billings @jnb42 billings@yelp.com Introduction About me PhD in compiling and verifying routing protocols Joined Yelp in February 2011 Initially: Joined <10 person search team 70 - 80


slide-1
SLIDE 1

The Human Side of Microservices John Billings @jnb42 billings@yelp.com

slide-2
SLIDE 2

Introduction

slide-3
SLIDE 3

About me

  • PhD in compiling and verifying routing

protocols

  • Joined Yelp in February 2011
  • Initially:
  • Joined <10 person search team
  • 70 - 80 engineers
  • Now 300+ engineers
slide-4
SLIDE 4

Yelp’s Mission

Connecting people with great local businesses.

slide-5
SLIDE 5

Yelp Stats

As of Q1 2016

90M 32 70% 102M

slide-6
SLIDE 6
slide-7
SLIDE 7

3 million 1 million

LoC in monolith

2005 2016 2011

slide-8
SLIDE 8

Number of microservices

117 2012 2016

slide-9
SLIDE 9

LoC in microservices

891k 2012 2016

slide-10
SLIDE 10

Microservice adoption

slide-11
SLIDE 11

https://www.flickr.com/photos/24736216@N07/4433492189

slide-12
SLIDE 12

http://www.soc.iastate.edu/extension/pub/comm/SP18.pdf

“The Diffusion Process”

George M. Beal and Joe M. Bohlen, 1957

slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15

Technology adoption curve for a population

slide-16
SLIDE 16

The chasm

Early adopters Early majority

slide-17
SLIDE 17

Innovators

slide-18
SLIDE 18

Innovators

slide-19
SLIDE 19
slide-20
SLIDE 20

The Geocoder Service

slide-21
SLIDE 21
slide-22
SLIDE 22

Early adopters

slide-23
SLIDE 23

The majority

slide-24
SLIDE 24

Education

slide-25
SLIDE 25

https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing

slide-26
SLIDE 26

https://github.com/Yelp/service- principles

slide-27
SLIDE 27
  • Service type (PaaSTA vs legacy SOA)
  • Technology type (Python / Java / daemon)
  • Caching
  • Downtime scenarios
  • Databases
  • External services
  • Hardware requirements
  • Load balancing
  • Performance and uptime
  • Monitoring
  • Security
slide-28
SLIDE 28
slide-29
SLIDE 29

Summits and unconferences

slide-30
SLIDE 30

Talks

slide-31
SLIDE 31

Deputy programs

slide-32
SLIDE 32

Office hours

slide-33
SLIDE 33

Postmortems

slide-34
SLIDE 34

Standards

Boo! Boring! Tell me something interesting! Zzzz………….!

slide-35
SLIDE 35

Interfaces

slide-36
SLIDE 36

Perform a real query

slide-37
SLIDE 37

Tracing

slide-38
SLIDE 38

Metrics

slide-39
SLIDE 39

Datastores

slide-40
SLIDE 40

Timeouts and retries

https://en.wikipedia.org/wiki/Abort,_Retry,_Fail%3F#/media/File:Abort_Retry_Fail.PNG

slide-41
SLIDE 41

Ownership

slide-42
SLIDE 42
slide-43
SLIDE 43
slide-44
SLIDE 44

Organizational

  • bjectives
slide-45
SLIDE 45

Lots of (potentially) conflicting objectives:

  • Performance
  • Reliability
  • Cost
  • Security
  • Iteration speed
slide-46
SLIDE 46

“What gets measured gets improved”

Peter Drucker

slide-47
SLIDE 47

Conclusions

slide-48
SLIDE 48

Microservices have forced us to build a more robust, decentralized organization

slide-49
SLIDE 49

This change has taken a long time

slide-50
SLIDE 50

I believe (but cannot prove) that we are shipping code as quickly as ever

slide-51
SLIDE 51

Any questions?