Transcript
Page 1: OpenFest 2016 - Open Microservice Architecture

Open Microservice Architecture

@stoitsev

Page 2: OpenFest 2016 - Open Microservice Architecture
Page 3: OpenFest 2016 - Open Microservice Architecture

API

Page 4: OpenFest 2016 - Open Microservice Architecture

Components

Cities

Users

Payments

Products

Trips

Receipts

Page 5: OpenFest 2016 - Open Microservice Architecture

Services

Cities

Users

Payments

Products

Trips

Receipts

Page 6: OpenFest 2016 - Open Microservice Architecture

“Loosely coupled service oriented architecture with bounded contexts”

Adrian Cockcroft

Page 7: OpenFest 2016 - Open Microservice Architecture

Users

Products

Trips

Cities

Payments

Receipts

Page 8: OpenFest 2016 - Open Microservice Architecture

Deployment

Communication

Monitoring

Page 9: OpenFest 2016 - Open Microservice Architecture

Containers

Page 10: OpenFest 2016 - Open Microservice Architecture
Page 11: OpenFest 2016 - Open Microservice Architecture

cgroups

Page 12: OpenFest 2016 - Open Microservice Architecture

namespaces

Page 13: OpenFest 2016 - Open Microservice Architecture

https://github.com/docker/docker

Page 14: OpenFest 2016 - Open Microservice Architecture

Docker Swarm

https://github.com/docker/swarm

Page 15: OpenFest 2016 - Open Microservice Architecture

Kubernetes

https://github.com/kubernetes/kubernetes

Page 16: OpenFest 2016 - Open Microservice Architecture

Node Node

PodContainer

Container

Container

Container

Container Container

Container

Page 17: OpenFest 2016 - Open Microservice Architecture

Mesos

http://mesos.apache.org/

Page 18: OpenFest 2016 - Open Microservice Architecture

http://mesos.apache.org/documentation/latest/architecture/

Page 19: OpenFest 2016 - Open Microservice Architecture

Mesos at Uber

Page 20: OpenFest 2016 - Open Microservice Architecture

RPC → DCOM, CORBA → RMI → XML-RPC → SOAP → REST → REST,

Thrift

Page 21: OpenFest 2016 - Open Microservice Architecture

Thrift

https://thrift.apache.org/

Page 22: OpenFest 2016 - Open Microservice Architecture

Discovery

Page 23: OpenFest 2016 - Open Microservice Architecture

Etcd

https://github.com/coreos/etcd

Page 24: OpenFest 2016 - Open Microservice Architecture

etcd

etcd

Page 25: OpenFest 2016 - Open Microservice Architecture

Hyperbahn

https://github.com/uber/hyperbahn

Page 26: OpenFest 2016 - Open Microservice Architecture

Load balancing

Page 27: OpenFest 2016 - Open Microservice Architecture

Service

Pod Pod Pod PodUsers Users Users Users

Page 28: OpenFest 2016 - Open Microservice Architecture

Ringpop

https://github.com/uber/ringpop-node

Page 29: OpenFest 2016 - Open Microservice Architecture
Page 30: OpenFest 2016 - Open Microservice Architecture

Circuit breaking

Page 31: OpenFest 2016 - Open Microservice Architecture

Monitoring

Page 32: OpenFest 2016 - Open Microservice Architecture

What to monitor?● Success rate

● Error rate

● Response time - p95, p99

● RPS

● Queue size

● Memory usage

● Disk space usage

● ...

Page 33: OpenFest 2016 - Open Microservice Architecture

Business metrics!!!

Page 34: OpenFest 2016 - Open Microservice Architecture

Kafka hadoop ELK

Page 35: OpenFest 2016 - Open Microservice Architecture

statsd

https://github.com/etsy/statsd

https://github.com/uber/lynx

Page 36: OpenFest 2016 - Open Microservice Architecture

Monitoring is not enough

Page 37: OpenFest 2016 - Open Microservice Architecture
Page 38: OpenFest 2016 - Open Microservice Architecture

Illustration © Lev Polyakov, http://levpolyakov.com

Page 39: OpenFest 2016 - Open Microservice Architecture

Thanks!


Top Related