Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

53
Thursday, September 27, 12

description

Presented at Yet Another Conference 2012 http://events.yandex.ru/talks/312/

Transcript of Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Page 1: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Thursday, September 27, 12

Page 2: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Code WizardРим Зайдуллин

Эффективнаямаршрутизация ввычислительном облаке (PG-13)

Thursday, September 27, 12

Page 3: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Настало время офигительных историй3

Thursday, September 27, 12

Page 4: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

4 ROUTE TO THE CLOUDThursday, September 27, 12

Page 5: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Структура кокаинового облака

5

C

C

C

01010010

Cocaine Cloud

C

C

C

C

C

C

01010010

01010010

Thursday, September 27, 12

Page 6: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Структура кокаинового облака

6

Clients

Java Python

C++

PerlPHP

and more

Thursday, September 27, 12

Page 7: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Структура кокаинового облака

7

C

C

C

01010010

CocaineКлиенты

01010010

01010010

?Java

Python

C++

Perl

Thursday, September 27, 12

Page 8: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Как максимально быстро и надёжно доставлять

сообщения?

8

Задача

Thursday, September 27, 12

Page 9: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cocaine Dealer — точка входа в облако.

9

О чём речь?

Thursday, September 27, 12

Page 10: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Структура кокаинового облака

10

C

C

C

CocaineКлиенты

?Java

Python

C++

Perl

01010010

01010010

01010010

Thursday, September 27, 12

Page 11: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Структура кокаинового облака

11

C

C

C

01010010

CocaineКлиенты

01010010

01010010

Java

Python

C++

Perl

Dealer

D

D

Thursday, September 27, 12

Page 12: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

С чем мы имеем дело?

12

Thursday, September 27, 12

Page 13: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

13 Она просто взорвалась или типа тогоThursday, September 27, 12

Page 14: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

14

Как растёт инфраструктура?

Балансировщик

Серверы

Thursday, September 27, 12

Page 15: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

15 ВЫЛЕЗАЙ, ПРИЕХАЛИThursday, September 27, 12

Page 16: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

16

Как растёт инфраструктура?

Балансировщик Серверы

Thursday, September 27, 12

Page 17: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

17 Мелкие неприятности в ДЦThursday, September 27, 12

Page 18: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

18

Как растёт инфраструктура?

ДЦ 1 ДЦ 2

ДЦ 3

Thursday, September 27, 12

Page 19: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Как максимально быстро и надёжно доставлять

сообщения?

19

Задача

Thursday, September 27, 12

Page 20: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

1. Performance20

Thursday, September 27, 12

Page 21: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cocaine Dealer — точка входа в облако.

21

О чём речь?

Это библиотеканаписанная на С++

Thursday, September 27, 12

Page 22: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Логическая структура облака

22

C

C

C

01010010

CocaineКлиенты

01010010

01010010

Java

Python

C++

Perl

Dealer

D

D

Thursday, September 27, 12

Page 23: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Физическая структура облака

23

C

C

C

01010010

CocaineКлиенты

01010010

01010010

Java

Dealer

D

C++ D

Python D

Thursday, September 27, 12

Page 24: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

2. Cloud awareness24

Thursday, September 27, 12

Page 25: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cloud awareness

25

App Dealer

Node 1

Node 2

Thursday, September 27, 12

Page 26: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cloud awareness

26

App Dealer

Node 1

Node 2

Thursday, September 27, 12

Page 27: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cloud awareness

27

App Dealer

Node 1

Node 2

Thursday, September 27, 12

Page 28: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

3. Always ON28

Thursday, September 27, 12

Page 29: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Always ON

29

App Dealer Cloud

Thursday, September 27, 12

Page 30: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Always ON

30

App Dealer Cloud

Thursday, September 27, 12

Page 31: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

4. Fine tuning31

Thursday, September 27, 12

Page 32: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Политики маршрутизации

• Deadline• Max retries• Priority• Persistence• etc.

32

Thursday, September 27, 12

Page 33: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

5. Persistent delivery33

Thursday, September 27, 12

Page 34: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Persistent delivery

34

App Dealer Cloud

Thursday, September 27, 12

Page 35: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Persistent delivery

35

App Dealer Cloud

Thursday, September 27, 12

Page 36: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Persistent delivery

36

App Dealer Cloud

Thursday, September 27, 12

Page 37: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Persistent delivery

37

App Dealer Cloud

Thursday, September 27, 12

Page 38: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Persistent delivery

38

App Dealer Cloud

Thursday, September 27, 12

Page 39: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

6. Smart balancing39

Thursday, September 27, 12

Page 40: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Naive balancing

40

Dealer

Thursday, September 27, 12

Page 41: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Naive balancing

41

Dealer

w w w

Thursday, September 27, 12

Page 42: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Naive balancing

42

Dealer

w w w

Thursday, September 27, 12

Page 43: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Smart balancing

43

Dealer

w1 w2 w3

Thursday, September 27, 12

Page 44: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

7. Health monitoring44

Thursday, September 27, 12

Page 45: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Health monitoring

45

App Dealer

Node

Node

Thursday, September 27, 12

Page 46: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Health monitoring

46

App Dealer

Node

!!!

Thursday, September 27, 12

Page 47: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Health monitoring

47

App Dealer

Node

!!!

Thursday, September 27, 12

Page 48: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Health monitoring

48

App Dealer

Node

!!!

Thursday, September 27, 12

Page 49: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Health monitoring

49

App Dealer

Node

Node

Thursday, September 27, 12

Page 50: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

1. Performance2. Cloud awareness3. Always on4. Fine tuning5. Smart balancing 6. Persistent delivery7. Health monitoring

50

Thursday, September 27, 12

Page 51: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Simple API

51

dealer_t dealer("config.json");

message_path_t path("image_app", "filter");

dealer.send_message(image, path);

Thursday, September 27, 12

Page 52: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Cocaine Dealer — точка входа в облако.

52

1. Балансировщик2. Маршрутизатор3. Очередь запросов

Thursday, September 27, 12

Page 53: Cocaine Dealer — Building high-performance reliable routing in distributed computational cloud.

Code Wizard

[email protected]/porca_troia

Спасибо

Рим Зайдуллин

Thursday, September 27, 12