microservices for the rest of us

Post on 23-Jan-2018

405 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microservices for the rest of usLessons you can (safely) ignore from Netflix, Amazon, and other unicorns

datawire.io 2

datawire.io 3

Amazon, 2008

Hailo, 2014

Netflix

What do you need if you’re building the Death Star?

Use the Force.

What’s the Force?

backpressure rate limiting retries timeouts asynchronous RPC asynchronous one way messaging

circuit breakers service discovery code packaging continuous deployment scheduling …

I don’t need The Force to build my

microservices architecture!

Adopting Microservices

Chewbecca The Force

Number of services at Uber over time

Microservices = Service Oriented Development

Developer happiness, not architecture

(Google “smiling developers”)

Experiment and iterate

(don’t try to do all your design upfront)

Make microservices cheap — the developer workflow

Code a microservice Test the microservice Run and deploy the microservice Integration test Debug

Code

You can use a plain ol’ webapp for the most part. HTTP and JSON are Good Enough (tm).

Test

Test your webapp / RESTful APIs using your standard testing tools.

Run and Deploy

Continuous deployment is critical for rapid iteration Docker on Mesos, k8s is the trendy standard EC2 works, too!

Integration Testing

Complete Integration testing before production requires massive investment in complex CI/CD Minimize the impact of a bug blowing up production

Debugging

Find and fix problems quickly Integration bugs are the hardest to root cause

Make microservices cheap — the developer workflow

Code a microservice Test the microservice Run and deploy the microservice Integration test Debug

One more thing …

Topology: the way constituent parts are interrelated or arranged.

Traditionally, architects defined topology.

Traditional Topology Management

Client

DNS

LB

Server

Server

ServerRouting table is (relatively) static. Routing policy is global.

resolve

traffic

Now, developers can define topologies.

Load Balancing

Client

Discovery Service

Service

ServiceRouting table is realtime. Routing policy is local.

routes

traffic

heartbeats

Smart endpoint

Data Processing

Store

Discovery

Transform

Transform

Ingest

Ingest

Ingest

Summary

Build topologies: Service discovery and routing Code / test: Webapp framework, HTTP, JSON Run and deploy: Continuous deployment pipeline Integration test: Software resilience or hard core CI Debugging: logging

Demo

datawire.io 29

https://www.datawire.io https://www.datawire.io/careers/

Questions richard@datawire.io

@rdli

top related