MA Microservices Meetup: Move fast and make things

29
Microservices: move fast and break make things Rafael Schloming

Transcript of MA Microservices Meetup: Move fast and make things

Microservices: move fast and break make things

Rafael Schloming

datawire.io

Three components of Microservices

2

Technology

ProcessPeople

datawire.io

Process

3

datawire.io

Why is process so important?

4

datawire.io

Velocity comes from process, not architecture

5

datawire.io

Microservices: Service Oriented Development

What this means

Why it works

How to do it

6

datawire.io

Architecture vs Development

7

datawire.io

Engineering is Guess & Check

8

datawire.io

Cost of Guess/Check

9

datawire.io

Cost of Guess/Check

10

Mod

ern

Deve

lopm

ent

Punc

h Ca

rds

Moore’s Law

datawire.io

Cost of Guess/Check

11

Serv

ice

O. D

evel

opm

ent

Serv

ice

O. A

rchi

tect

ure

Cloud

datawire.io

Cheap Guess/Check merges roles

12

datawire.io

Software vs SaaS

13

VS

datawire.io

Microservices Process: Service Oriented Development

The output of the process:

● Continuously improving Service

The process:

● Guess (incremental improvements)● Check (correctness + availability & user impact in production)

The tools:

● Deployment - make small guesses● Observability - measure the impact on functionality, availability, users● Resilience - ensure negative impacts are not catastrophic

14

datawire.io

Microservices Process: Service Oriented Development

Ignore architecture, focus on release frequency

As soon as you have users, adjust your process to measure user impact

Recognize that stability vs progress is a fundamental tradeoff

● for a single service…

15

datawire.io

People

16

datawire.io

Microservices People: Autonomous Teams

What this means

Why it works

How to do it

17

datawire.io

Cheap Guess/Check merges roles

18

datawire.io

Aggregate Health: God’s Eye View Harmful

19

A B C D EX

datawire.io

Two Perspectives

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

20

C DX

datawire.io

Two Solutions

Operational Responsibility System Visibility & Resilience

21

datawire.io

Microservices People: Autonomous Teams

Make your teams fully autonomous

Ignore technical boundaries, define services functionally

● who uses the service, and what does it help them do

God’s eye view is harmful

● decentralize the architecture & operations work to avoid organizational bottlenecks

22

datawire.io

Technology

23

datawire.io

The tech stack

● Kubernetes -- infrastructure as configuration● Docker -- build containers● Envoy -- API gateway + L7 Router

24

datawire.io

The Journey

25

Stage 1: Rapid development, early users

Stage 2: Users Stage 3: Internal users, couplingStage

Successful Deploy

Doesn’t crash...Minimal disruption to users...

No cascade failures...

datawire.io

Organizational Journey: Many services, different stages

26

Stage 1: Rapid development, early users

Stage 2: Users Stage 3: Internal users, couplingStage

Successful Deploy

Doesn’t crash...Minimal disruption to users...

No cascade failures...

Stage 1: Rapid development, early users

Stage 2: Users Stage 3: Internal users, coupling

Stage 1: Rapid development, early users

Stage 2: Users Stage 3: Internal users, coupling

Stage 1: Rapid development, early users

Stage 2: Users Stage 3: Internal users, coupling

Doesn’t crash...Minimal disruption to users...

No cascade failures...Doesn’t crash...

Minimal disruption to users...

No cascade failures...Doesn’t crash...

Minimal disruption to users...

No cascade failures...

datawire.io

My Application

27

API GW (Envoy)

Auth(auth0)

Tasks

Search

...

MongoDB

Prometheus

datawire.io

Demohttp://demo.d6e.co/tasks/

28

datawire.io

Summary

People: small autonomous teams

Process: focus on release frequency

Technology: adopt on demand to fit your workflow

Demo Source: https://d6e.co/MAmsv

29