The Human Side of Microservices John Billings @jnb42 - - PowerPoint PPT Presentation
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 2
Introduction
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
Yelp’s Mission
Connecting people with great local businesses.
SLIDE 5
Yelp Stats
As of Q1 2016
90M 32 70% 102M
SLIDE 6
SLIDE 7
3 million 1 million
LoC in monolith
2005 2016 2011
SLIDE 8
Number of microservices
117 2012 2016
SLIDE 9
LoC in microservices
891k 2012 2016
SLIDE 10
Microservice adoption
SLIDE 11
https://www.flickr.com/photos/24736216@N07/4433492189
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 14
SLIDE 15
Technology adoption curve for a population
SLIDE 16
The chasm
Early adopters Early majority
SLIDE 17
Innovators
SLIDE 18
Innovators
SLIDE 19
SLIDE 20
The Geocoder Service
SLIDE 21
SLIDE 22
Early adopters
SLIDE 23
The majority
SLIDE 24
Education
SLIDE 25
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
SLIDE 26
https://github.com/Yelp/service- principles
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 29
Summits and unconferences
SLIDE 30
Talks
SLIDE 31
Deputy programs
SLIDE 32
Office hours
SLIDE 33
Postmortems
SLIDE 34
Standards
Boo! Boring! Tell me something interesting! Zzzz………….!
SLIDE 35
Interfaces
SLIDE 36
Perform a real query
SLIDE 37
Tracing
SLIDE 38
Metrics
SLIDE 39
Datastores
SLIDE 40
Timeouts and retries
https://en.wikipedia.org/wiki/Abort,_Retry,_Fail%3F#/media/File:Abort_Retry_Fail.PNG
SLIDE 41
Ownership
SLIDE 42
SLIDE 43
SLIDE 44
Organizational
- bjectives
SLIDE 45
Lots of (potentially) conflicting objectives:
- Performance
- Reliability
- Cost
- Security
- Iteration speed
SLIDE 46
“What gets measured gets improved”
Peter Drucker
SLIDE 47
Conclusions
SLIDE 48
Microservices have forced us to build a more robust, decentralized organization
SLIDE 49
This change has taken a long time
SLIDE 50
I believe (but cannot prove) that we are shipping code as quickly as ever
SLIDE 51