1 From Homogenous Monolith to Radically Heterogenous - - PowerPoint PPT Presentation

1 from homogenous monolith to radically heterogenous
SMART_READER_LITE
LIVE PREVIEW

1 From Homogenous Monolith to Radically Heterogenous - - PowerPoint PPT Presentation

1 From Homogenous Monolith to Radically Heterogenous Micro-services* Architecture For you, @samnewman Conways Law HELLO WORLD!!!!!!!!!!!!!!!!! What is Wunderlist? Wunderlist is available on iPhone, iPad, Mac, Web, Android, Windows


slide-1
SLIDE 1

1

slide-2
SLIDE 2

From Homogenous Monolith to Radically Heterogenous Micro-services* Architecture

For you, @samnewman

slide-3
SLIDE 3

“Conway’s Law”

slide-4
SLIDE 4

HELLO WORLD!!!!!!!!!!!!!!!!!

slide-5
SLIDE 5

What is Wunderlist?

Wunderlist is available on iPhone, iPad, Mac, Web, Android, Windows and Windows Phone

slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8

One Monolithic Application

slide-9
SLIDE 9

One Monolithic Database

slide-10
SLIDE 10

One Language (Ruby)

slide-11
SLIDE 11

Test suite slow and brittle

slide-12
SLIDE 12

Caching required for survival

slide-13
SLIDE 13

Deployment was scary

slide-14
SLIDE 14

Logic buried in abstractions

slide-15
SLIDE 15

Legacy

@chadfowler Systems Euthanizer

slide-16
SLIDE 16

“legacy"

slide-17
SLIDE 17
slide-18
SLIDE 18

vonnegut

slide-19
SLIDE 19

successful challenged failed

slide-20
SLIDE 20

For business software that’s deployed, the average life expectancy is five years.*

(I made this up)

slide-21
SLIDE 21

OH SHIT!

slide-22
SLIDE 22

How do you CREATE Legacy software?

slide-23
SLIDE 23

richard p. gabriel

http://tinyurl.com/ulsgabriel

Design Beyond Human Abilities Biological systems are very much larger than anything (coherent) that people have built.

slide-24
SLIDE 24

“When a cell is not healthy, an outside cell that’s part of the immune system can command the cell to destroy itself without spreading toxins.”

slide-25
SLIDE 25

homeostasis

slide-26
SLIDE 26

What is a cell?

slide-27
SLIDE 27

What is a system?

slide-28
SLIDE 28

When do you build a system vs. a cell? Are you building the right one now?

slide-29
SLIDE 29

The Big Rewrite

slide-30
SLIDE 30

“Please tell me I’m never going to hear you say you have to do this again.”

slide-31
SLIDE 31

“real time” “smart” proxy

authentication authorization

slide-32
SLIDE 32

Code is “this big”

slide-33
SLIDE 33

multi-tiered architecture

  • Socket
  • Proxy
  • English
  • German
  • “Write layer”
slide-34
SLIDE 34

“real time” “smart” proxy

authentication authorization

slide-35
SLIDE 35

Disposable Software

slide-36
SLIDE 36

Nodes are Disposable

slide-37
SLIDE 37

Never Upgrade Software

  • n an Existing Node

Immutable Deployments

slide-38
SLIDE 38

Threw away Chef

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
slide-42
SLIDE 42
slide-43
SLIDE 43

Heterogenous By Default

slide-44
SLIDE 44

Tiny Databases

slide-45
SLIDE 45

Conventions

slide-46
SLIDE 46

Conventions

slide-47
SLIDE 47

“Smart” proxy

slide-48
SLIDE 48

Real-time service

slide-49
SLIDE 49
slide-50
SLIDE 50

Many tiny services

slide-51
SLIDE 51

Service Resolution

YAML -> JSON -> Auto-generated JSON -> Consul

slide-52
SLIDE 52

Sync or Async?

slide-53
SLIDE 53

Message Queuing

  • Standardized Mutation flow
  • Feeds real-time synchronization to clients
  • Feeds anything else, by convention
slide-54
SLIDE 54

“real time” “smart” proxy

authentication authorization

slide-55
SLIDE 55

Monitor Everything

slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58

How We Migrated

  • Removed joins
  • Separated databases
  • New features prototyped new service approach (comments,

files)

  • New features prototyped real-time/mutation approach

(comments)

  • Replace database connections in old API with new APIs (some

ran as long as 7 months)

  • Test under crazy load/behavior (next slide)
slide-59
SLIDE 59

Böse Gurken

https://medium.com/tales-from-6w/saving-our-bacon-with-evil- cucumbers-2e3d26cebacc

slide-60
SLIDE 60
slide-61
SLIDE 61

The Big Little Rewrites

Socket “smart” proxy

authentica authorizat

slide-62
SLIDE 62

The Future

slide-63
SLIDE 63

homeostasis

slide-64
SLIDE 64

Global async validation middleware

slide-65
SLIDE 65

Cost Reduction

  • Make it work
  • Make it fast
  • Make it cheap
slide-66
SLIDE 66

Deployment Speed

slide-67
SLIDE 67

Refactor to Monolith

slide-68
SLIDE 68

Thanks!