move fast and s/break/make things - rafael schloming, datawire.io

25
Microservices: move fast and break make things (topologies of business logic) Rafael Schloming CTO

Upload: datawire

Post on 15-Apr-2017

142 views

Category:

Software


0 download

TRANSCRIPT

Microservices: move fast and break make things

(topologies of business logic)Rafael Schloming

CTO

datawire.io

Three components of Microservices

2

Technology

ProcessPeople

datawire.io

Process

3

datawire.io

Microservices: Service Oriented Development

What this means

Why it works

How to do it

4

datawire.io

Architecture vs Development

5

datawire.io

Engineering is Guess & Check

6

datawire.io

Cost of Guess/Check

7

datawire.io

Cost of Guess/Check

8

Mod

ern

Deve

lopm

ent

Punc

h Ca

rds

Moore’s Law

datawire.io

Cost of Guess/Check

9

Serv

ice

O. D

evel

opm

ent

Serv

ice

O. A

rchi

tect

ure

Cloud

datawire.io

Software vs SaaS

10

VS

datawire.io

Microservices is Service Oriented Development

The output of the process:

● Continuously improving Software as a Service

The process:

● Guess (incremental improvements)● Check (both functionality and health)

The tools:

● Deployment - make small guesses● Observability - measure the impact on health● Resilience - ensure negative health impacts are not catastrophic

11

datawire.io

People

12

datawire.io

Microservices: Architecture for Distributing Accountability

What this means

Why it works

How to do it

13

datawire.io

Cheap Guess/Check merges roles

14

datawire.io

Aggregate Health: Christmas Tree Lights

15

A B C D EX

datawire.io

Two Perspectives

C’s problem: Is it worth it? D’s problem: Did I break C?

16

C DX

datawire.io

Two Solutions

Operational Responsibility System Visibility & Resilience

17

datawire.io

Microservices is Service Oriented Development

The output of the process:

● Continuously improving Software as a Service

The process:

● Guess (incremental improvements)● Check (functionality, individual health, overall toxicity)

The tools:

● Deployment - make small guesses● Observability - measure the impact on individual health & overall toxicity● Resilience - ensure negative impact is not catastrophic and doesn’t cascade

18

datawire.io

Technology

19

datawire.io

Microservices Technology: SoD Scaffolding

Requirements

Design

Implementation

20

datawire.io

Early (Small/Shallow Topologies)

Deployment

● Fast pipeline (minimum time from git -> cloud)● Self service provisioning

Observability

● Service level metrics (throughput, latency, availability)

Resilience

● Incremental rollout

21

datawire.io

Later (Large/Deep Topologies)

Deployment

● Fast pipeline (minimum time from git -> cloud)● Self service provisioning

Observability

● Service level metrics & logging (throughput, latency, availability)● Trace level visibility (profiling, logging, stack traces)

Resilience

● Incremental rollout● Timeouts, Deadlines, Retries, Budgets, Circuit Breakers, Rate Limiting

22

datawire.io

Microservices Scaffolding Design

Resource Orchestration:

● PaaS● Cluster Managers (kubernetes and friends)

Traffic Management

● L7 Sidecar● SDK

23

datawire.io

Example Implementation Options

Resource Orchestration

● Kubernetes, Mesos, AWS ECS, ...

Traffic Management (L7 Sidecar)

● Envoy, SmartStack, L8d, ...

Traffic Management (SDK)

● gRPC, finagle, ...

24