Slide 1

Slide 1 text

@flaper87 System Integration OpenStack's success story

Slide 2

Slide 2 text

@flaper87 @flaper87

Slide 3

Slide 3 text

@flaper87 member of

Slide 4

Slide 4 text

@flaper87 ● GsoC / OPW mentor ● Rust language contributor ● Member of MongoDB Masters ● Physics and Philosophy Other things ...

Slide 5

Slide 5 text

@flaper87 What does integrating a system mean? Theory

Slide 6

Slide 6 text

@flaper87 Vertical Integration Star Integration Horizontal Integration Theory

Slide 7

Slide 7 text

@flaper87 Horizontal Integration from an application's perspective Theory

Slide 8

Slide 8 text

@flaper87 Methods FilesDatabases RPC Messaging

Slide 9

Slide 9 text

@flaper87 Speaking of files Probably one of the oldest method Good for few and very specific cases Try not to use it

Slide 10

Slide 10 text

@flaper87 Methods Databases RPC Messaging Files

Slide 11

Slide 11 text

@flaper87 Speaking of databases Asynchronous data-wise Not a message broker Probably the most common Great for storing states

Slide 12

Slide 12 text

@flaper87 Methods RPCMessaging Files Databases

Slide 13

Slide 13 text

@flaper87 Speaking of RPC Remote Procedure Calls Most used throughout OpenStack Message's channels may vary (database, broker, etc) Tightly coupled

Slide 14

Slide 14 text

@flaper87 Methods Messaging Files Databases RPC

Slide 15

Slide 15 text

@flaper87 Speaking of Messaging Loosely coupled Add more complexity Commonly used for notifications May depend on message routers, transformation, etc.

Slide 16

Slide 16 text

@flaper87 OpenStack's case Shared Nothing Architecture Databases (Inter-service) RPC (Inter-service) Messaging (Cross-service)

Slide 17

Slide 17 text

@flaper87 Brokers can be are a PITA ← Scaling brokers is hard →

Slide 18

Slide 18 text

@flaper87 Brokers can be are a PITA Brokers need lot of memory depending on your use-case

Slide 19

Slide 19 text

@flaper87 Brokers can be are a PITA Brokers need storage if you want messages to be durable

Slide 20

Slide 20 text

@flaper87 Brokers can be are a PITA Prefer federation over centralization AMQP 1.0 Message Router (qpid-dispatch)

Slide 21

Slide 21 text

@flaper87 Tips / Tricks Transmission protocol matters

Slide 22

Slide 22 text

@flaper87 Tips / Tricks Use versions for your wire protocol

Slide 23

Slide 23 text

@flaper87 Tips / Tricks Keep everything explicit

Slide 24

Slide 24 text

@flaper87 Tips / Tricks Design by contract

Slide 25

Slide 25 text

@flaper87 Tips / Tricks Keep services isolated... As much as possible.

Slide 26

Slide 26 text

@flaper87 Q&A Thanks we're hiring