kazoomeetup moscow 2015. Максим Кржеменевский. Масштабируемость...

31
Масштабируемость Масштабируемость и отказоустойчивость KAZOO и отказоустойчивость KAZOO Кржеменевский Максим, SIPLABS

Upload: siplabs-communications

Post on 18-Feb-2017

307 views

Category:

Internet


6 download

TRANSCRIPT

Page 1: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость Масштабируемость и отказоустойчивость KAZOOи отказоустойчивость KAZOO

Кржеменевский Максим, SIPLABS

Page 2: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Пути масштабирования

Page 3: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Вертикальный

(Не в этой презентации)

Page 4: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Горизонтальный

“Кошки размножаются умножением”

Page 5: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабирование СУБД BigCouch

Page 6: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Параметры распределения данных:

● N – количество реплик документа● W – количество записей при создании● R – количество чтений при доступе● Z – количество различных зон, в которые производится запись

Page 7: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Горизонтальное масштабирование:

● Автоматическая репликация● Использование протокола HTTP● Консистентность данных (запрос через любой сервер)

Page 8: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

HAProxy

Page 9: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Плюсы:

● Прост● Быстр

В KAZOO распределяет запросы между узлами БД

Page 10: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабирование RabbitMQ

Page 11: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

RabbitMQ и масштабируемость:

● Распределение нагрузки через очереди● Коммуникация приложений

node-2 node-3

node-4

RabbitMQ broker

node-1

Page 12: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

RabbitMQ и отказоустойчивость

RabbitMQкластер

Page 13: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Средства Erlang

Page 14: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Приложения KAZOO:

1) Ecallmgr2) Все остальные

Page 15: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Ecallmgr (keep-alive)

freeswitch-1

freeswitch-3

freeswitch-2

PING

Page 16: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Ecallmgr (call processing)

freeswitch-1

freeswitch-3

freeswitch-2

fs APIfs API

Page 17: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Ecallmgr

ecallmgr

ecallmgr-node-2

ecallmgr

ecallmgr-node-1

Это отдельное приложение и живет на своей собственной ноде

Page 18: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

whapps-ы:

● Это логика● Одно приложение – одна задача● Каждая нода несет полный комплект

CrossbarCallflowAnanke

(и еще разные)

whapps-node-2

CrossbarCallflowAnanke

(и еще разные)

whapps-node-1

Page 19: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Теперь в общем:

whapp

RabbitMQ

Ecallmgr

BigCouch

Page 20: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

FreeSWITCH

Page 21: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Роль

freeswitch

Control commands

Call events

SIP/Media

SIP/Media

ecal

lmgr

Вне

шни

й м

ир

Page 22: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Святые c-node

freeswitch

Control commands

Call events

ecal

lmgr

mod

_kaz

oo

Один из модулей

Page 23: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

FreeSWITCH: масштабируемость

ecallmgr-1 ecallmgr-2

freeswitch-1freeswitch-2

Здесь есть местоеще одномуфрисвичу

? ?

Page 24: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

FreeSWITCH: межнодовое взаимодействие

Kamailio

freeswitch-1

freeswitch-2

Плечо B

Плечо A

А в парковке

B в парковке

Page 25: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

FreeSWITCH: межнодовое взаимодействие

freeswitch-1

freeswitch-2

Плечо B

Плечо Aпарковка

парковка

Cmd: redirect B to fs1

Переброс канала B

ecallmgr

Page 26: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

FreeSWITCH: богатое API

Звонки:● uuid_kill● answer● uuid_bridge● uuid_transfer● play media

Протоколы:● http://● tonestream://● file://● http_cache://

Page 27: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Kamailio

Page 28: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Балансирующий прокси (rr)

INVITE +7123...

CallerKamailio

freeswitch-1

freeswitch-2

INVITE

Page 29: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Балансирующий прокси (keep-alive)

kamailio

freeswitch-1

freeswitch-1

PING

Page 30: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

Масштабируемость и отказоустойчивость KAZOOМасштабируемость и отказоустойчивость KAZOO

Повышаем надежность kamailio

kamailio-2kamailio-1 kamailio-3

100.YY.39.XX

Page 31: KAZOOMEETUP MOSCOW 2015. Максим Кржеменевский. Масштабируемость и отказоустойчивость KAZOO

СПАСИБО ЗА ВНИМАНИЕ!

[email protected]/in/regikul