Upload
nikolay-stoitsev
View
296
Download
1
Embed Size (px)
Citation preview
Open Microservice Architecture
@stoitsev
API
Components
Cities
Users
Payments
Products
Trips
Receipts
Services
Cities
Users
Payments
Products
Trips
Receipts
“Loosely coupled service oriented architecture with bounded contexts”
Adrian Cockcroft
Users
Products
Trips
Cities
Payments
Receipts
Deployment
Communication
Monitoring
Containers
cgroups
namespaces
https://github.com/docker/docker
Docker Swarm
https://github.com/docker/swarm
Kubernetes
https://github.com/kubernetes/kubernetes
Node Node
PodContainer
Container
Container
Container
Container Container
Container
Mesos
http://mesos.apache.org/
http://mesos.apache.org/documentation/latest/architecture/
Mesos at Uber
RPC → DCOM, CORBA → RMI → XML-RPC → SOAP → REST → REST,
Thrift
Thrift
https://thrift.apache.org/
Discovery
Etcd
https://github.com/coreos/etcd
etcd
etcd
Hyperbahn
https://github.com/uber/hyperbahn
Load balancing
Service
Pod Pod Pod PodUsers Users Users Users
Ringpop
https://github.com/uber/ringpop-node
Circuit breaking
Monitoring
What to monitor?● Success rate
● Error rate
● Response time - p95, p99
● RPS
● Queue size
● Memory usage
● Disk space usage
● ...
Business metrics!!!
Kafka hadoop ELK
statsd
https://github.com/etsy/statsd
https://github.com/uber/lynx
Monitoring is not enough
Illustration © Lev Polyakov, http://levpolyakov.com
Thanks!