microservices and full ownership Scaling your teams using · 25 Consum-er Team Business Team...

Preview:

Citation preview

Scaling your teams using microservices and full ownership

Martin Andersen | microcph | May 16, 2017

1

Me

2

3

4

A bit of history

5

Monolith3w sprints/releases

Test-days

6

.NET/C#100+ projects

1 repo/solution

7

8

WebsWeb/Backend

MainLib/WebExtension

Lib/I18nShared/Foundation

9

10

DDD

Bounded contexts

11

API-first

12

131 server, n services 1 server, 1 service

14

Organizational Scaling

2012: 1 team2013: 2 teams

15

16Ref: https://grasshopperherder.com/lean-startup-in-the-enterprise-anti-pattern-the-lean-waterfall/

17Ref: https://grasshopperherder.com/lean-startup-in-the-enterprise-anti-pattern-the-lean-waterfall/

PM TL

UX

ENG

ENG

ENG

Development teamProduct team

UX

PM

PM

TL UX

ENG

ENG

ENG

Productteam

PM

TL UX

ENG

ENG

MKT

Cross functionalteam

DSC BA

Full ownership

21

22

23

Team A Team B Team C Team D

Context 1

Context 4 Context 6 Context 8

Context 3 Context 5 Context 7

Context 2

24

Angry Birds

Bad Piggies

Mighty Eagles

Golden Eggs

Context 1

Context 4 Context 6 Context 8

Context 3 Context 5 Context 7

Context 2

Context 7

Context 8

Context 9

Context 10

Context 11

25

Consum-er Team

Business Team

TrustBox-es

Data Products

Context 1

Context 4 Context 6 Context 8

Context 3 Context 5 Context 7

Context 2

Context 7

Context 8

Context 9

Context 10

Context 11

Growth Team

Context 15

Context 14Context 13Context 12

Context 16

Context 15

26

Consum-er Team

Business Team

TrustBox-es

Data Products

Context 1

Context 4 Context 6 Context 8

Context 3 Context 5 Context 7

Context 2

Context 7

Context 8

Context 9

Context 10

Context 11

Growth Team

Context 15

Context 14Context 13Context 12

Context 16

Context 15

Open Source model

27

28

29

Consum-er Team

Business Team

TrustBox-es

Data Products

Growth Team

30

31

Eng. Director

Team TeamTeam

E E E E E E EEE E E

UX Director

Product Director

PM PM PMUX

Technical Scaling

32

33

34

API Processing

SQS

35

Publisher

Subscriber

Subscriber

Subscriber

Subscriber

Subscriber

SNS

Batching

36

Aggregate APIs

37

38

Client

API

API

API

API

Context

39

Client

API

API

API

APIAPI

40

Client

Event

Processing

API

40

API

API

API

API

Learnings

41

42

Naming things

43

Naming things

44

45

Communication

46

47

Automation andProvisioning

48

49

Shared code ownership

50

Pain-driven development

51

3rd party services

52

Containerization

53

Serverless

54

Today

55

10 teams+ Lithuania

56

57

58

59

~130 deployments / week

60

Martin Andersen | Trustpilot | jobs.trustpilot.com61