SlideShare a Scribd company logo
1 of 30
Download to read offline
Zviad Kardava
Google Developer Expert IoT
Voximplant Lead Software Engineer
Выбор backend для messaging в
2016 году
Задача
Сделать месседжинг
Быстрый — обработка и доставка сообщений с минимальными задержками
Надежный — гарантированная обработка и доставка сообщений
Безопасный — как для пользователей, так и для системы
Функциональный — поддержка групп, каналов, ботов, передача файлов
Задача
Сделать месседжинг
Постоянно доступный — сервис должен быть доступен всегда
Поддерживаемый — не только я должен уметь и понимать как оно работает
Интеграция с существующими решениями
Масштабируемый — во все стороны с минимальными усилиями и затратами
Нельзя просто так взять
и запилить хороший месседжинг
Протоколы, фреймворки, брокеры
XKCD
Архитектура
Современные методологии
Архитектура
Protocols, Frameworks, Brokers
XMPP
Extensible Messaging and Presence Protocol
Он же Jabber
Преимущества:
● децентрализация
● открытость
● история
● безопасность
● плагины
Недостатки:
● избыточность
● масштабируемость
● XEP расширения
● формат
● история
Разработан в 1999 г.
XML-based
IM, presence, pub-sub, signaling for VoIP, media transfer, IoT
IETF создает рабочую группу в 2002 и выпускает стандарты
Создание XMPP Standards Foundation
Поддержка плагинов по средствам XEP
XMPP
Реализации:
ejabberd
CommuniGate Pro
Openfire
Prosody
jabberd2
Tigase
Кто использует:
Whatsapp
Google Talk
Livejournal
Ok
Riot games
...
Extensible Messaging and Presence Protocol
Он же Jabber
Whatsapp
Использует XMPP, но:
● сильно кастомизированный сервер ejabberd
● кастомизированный протокол XMPP
Преимущества:
● работает быстро
● поддерживает шифрование по умолчанию
Недостатки:
● привязка к номеру телефона
● нельзя подключить несколько устройств
● отсутствие десктопных клиентов, только Web клиент
● отсутствие нормального API для ботов
MQTT
Преимущества:
● простота
● очень легковесный
● масштабируемый
● открытость
Разработан в IBM в 1999 г.
Роялти-фри лицензия
MQTT 3.1.1 был стандартизирован OASIS в 2014
Парадигма publish-subscribe c брокером
Message Queue Telemetry Transport
Недостатки:
● простота
● безопасность
MQTT
Message Queue Telemetry Transport
Кто использует:
● Facebook messenger
● IoT, M2M, ...
Реализации:
● Mosquitto
● Eclipse Paho
● emqttd
● Moquette
● m2m.io
● RabbitMQ
● Apache Apollo
● IBM Websphere MQ
● IBM Integration Bus
● IBM MessageSight
● ….
Facebook messenger
“One of the problems we experienced was long latency when sending a message.
The method we were using to send was reliable but slow, and there were
limitations on how much we could improve it. With just a few weeks until
launch, we ended up building a new mechanism that maintains a persistent
connection to our servers. To do this without killing battery life, we used a
protocol called MQTT that we had experimented with in Beluga. MQTT is
specifically designed for applications like sending telemetry data to and from
space probes, so it is designed to use bandwidth and batteries sparingly. By
maintaining an MQTT connection and routing messages through our chat pipeline,
we were able to often achieve phone-to-phone delivery in the hundreds of
milliseconds, rather than multiple seconds”
AMQP
Advanced Message Queuing Protocol
Преимущества:
● открытость
● большая надежность
● гибкость
● интеропребельность
● безопасность
Недостатки:
● Сложнее MQTT
● Зависят от реализации
● ????
Разработан John O’Hara по заказу JP Morgan Chase & Co в 2003 г.
Бинарный Wire-protocol
Сильная рабочая группа в составе которой: Bank of America,
Barclays, Cisco Systems, Credit Suisse, Deutsche Börse, Goldman
Sachs, INETCO Systems, Informatica, Microsoft, Novell, Red Hat,
Software AG, TWIST VMware….
AMQP
Кто использует:
● Банки
● Red Hat
● Google
● Microsoft
● Pivotal
● ….
Реализации:
● RabbitMQ
● Apache ActiveMQ
● Apache Qpid
● StormMQ
Advanced Message Queuing Protocol
RabbitMQ
Проект начат LShift и CohesiveFT в 2007 г. Куплен в 2010 SpringSource, VMware.
С мая 2013 г. стал частью Pivotal Software.
Использует возможности Erlang/OTP что обеспечивает:
● надежность и отказоустойчивость
● высокую доступность( Clustering, Federation,
Mirrored Queues)
● гибкую маршрутизацию
● безопасность
● трассировку
● поддеркжку плагинов
● сильное комьюнити
Почему RabbitMQ ???
Клиенты:
● C/C++
● Java
● Erlang
● Javascript
● PHP
● Python
● etc… даже haskell, lisp, ocaml and COBOL (O_o)
Мультипрокрольный:
● AMQP
● MQTT
● XMPP
● HTTP
● STOMP
Простой пример
Publisher ConsumerExchange QueueRoute RouteRoute
RabbitMQ
Типы обменников (exchanges):
● Fanout — всем и сразу
● Direct — связь по ключам маршрутизации
● Topics — связь по составным ключам маршрутизации
● Headers — связь по заголовку сообщения
Опции очередей (queues):
● Durable — сообщения переживают перезагрузки и падения
● Exclusive — строго предназначена для потребителя
● Auto_delete — удаляется если нет активных подключений
● Message TTL, Auto expire, Max length, Max length bytes, Dead letter exchange,
Dead letter routing key, Maximum priority
Гибкая маршрутизация
Другие примеры
Ещё примеры
Over 9000!!!
Наше решение
Web SDK
Android SDK
iOS SDK
Gateway
LoadBalancer
Cluster
JavaBackend
DB
DB
Postgres
Redis
Web SDK
Android SDK
iOS SDK
Gateway
Push Notifications Service
Процессинг и
хранение
МаршрутизацияАвторизация Балансировка
Наша паранойя
Web SDK
Android SDK
iOS SDK
Gateway
LoadBalancer
Cluster
JavaBackend
DB
DB
Postgres
Redis
Web SDK
Android SDK
iOS SDK
Gateway
Push Notifications Service
TLS/SSLTLS/SSLTLS/SSL TLS/SSL
Enterprise service bus
Enterprise Service Bus
Service
Service
Service
Service
Service
Logs
twitter: @zviadkardava
telegram: @zviadkardava
Thank You!
facebook: Zviad Kardava
google+: +zviadkardava

More Related Content

Similar to Выбор backend для messaging в 2016 году

Open Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетейOpen Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетейARCCN
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Cisco Russia
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоARCCN
 
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018GigaCloud
 
опыт построения крупных Vpn сетей на оборудовании код безопасности
опыт построения крупных Vpn сетей на оборудовании код безопасностиопыт построения крупных Vpn сетей на оборудовании код безопасности
опыт построения крупных Vpn сетей на оборудовании код безопасностиExpolink
 
Open stack на службе у глобальных телеком провайдеров
Open stack на службе у глобальных телеком провайдеровOpen stack на службе у глобальных телеком провайдеров
Open stack на службе у глобальных телеком провайдеровOpenStackRussia
 
Tri media portfolio-outsource
Tri media portfolio-outsourceTri media portfolio-outsource
Tri media portfolio-outsourceVitali Nikulenka
 
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)SIPLABS Communications
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco Russia
 
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...Expolink
 
Brocade - ЦОД будущего
Brocade - ЦОД будущегоBrocade - ЦОД будущего
Brocade - ЦОД будущегоPetr Dyakov
 
Как сделать правильную МЭК 61131-3 систему программирования?
Как сделать правильную МЭК 61131-3 систему программирования?Как сделать правильную МЭК 61131-3 систему программирования?
Как сделать правильную МЭК 61131-3 систему программирования?Andrey Shaverin
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Provectus
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Системы тестирования современных сетей и сервисов
Системы тестирования современных сетей и сервисовСистемы тестирования современных сетей и сервисов
Системы тестирования современных сетей и сервисовАлександр Земсков
 
I.Kukalo - "Creating UTM System" on Microsoft congference in TPU
I.Kukalo - "Creating UTM System" on Microsoft congference in TPUI.Kukalo - "Creating UTM System" on Microsoft congference in TPU
I.Kukalo - "Creating UTM System" on Microsoft congference in TPUguestc6d031
 

Similar to Выбор backend для messaging в 2016 году (20)

Open Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетейOpen Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетей
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 
опыт построения крупных Vpn сетей на оборудовании код безопасности
опыт построения крупных Vpn сетей на оборудовании код безопасностиопыт построения крупных Vpn сетей на оборудовании код безопасности
опыт построения крупных Vpn сетей на оборудовании код безопасности
 
Open stack на службе у глобальных телеком провайдеров
Open stack на службе у глобальных телеком провайдеровOpen stack на службе у глобальных телеком провайдеров
Open stack на службе у глобальных телеком провайдеров
 
Tri media portfolio-outsource
Tri media portfolio-outsourceTri media portfolio-outsource
Tri media portfolio-outsource
 
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
 
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...
Анлим-ИТ. Илья Куриленко "Импортозамещение в области информационной безопасно...
 
Brocade - ЦОД будущего
Brocade - ЦОД будущегоBrocade - ЦОД будущего
Brocade - ЦОД будущего
 
Как сделать правильную МЭК 61131-3 систему программирования?
Как сделать правильную МЭК 61131-3 систему программирования?Как сделать правильную МЭК 61131-3 систему программирования?
Как сделать правильную МЭК 61131-3 систему программирования?
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Системы тестирования современных сетей и сервисов
Системы тестирования современных сетей и сервисовСистемы тестирования современных сетей и сервисов
Системы тестирования современных сетей и сервисов
 
I.Kukalo - "Creating UTM System" on Microsoft congference in TPU
I.Kukalo - "Creating UTM System" on Microsoft congference in TPUI.Kukalo - "Creating UTM System" on Microsoft congference in TPU
I.Kukalo - "Creating UTM System" on Microsoft congference in TPU
 

More from Voximplant

Intelligent CPaaS with AI-powered capabiities
Intelligent CPaaS with AI-powered capabiitiesIntelligent CPaaS with AI-powered capabiities
Intelligent CPaaS with AI-powered capabiitiesVoximplant
 
Чат-бот как новый способ взаимодействия с клиентом
Чат-бот как новый способ взаимодействия с клиентомЧат-бот как новый способ взаимодействия с клиентом
Чат-бот как новый способ взаимодействия с клиентомVoximplant
 
Почему посетители не звонят из браузера
Почему посетители не звонят из браузераПочему посетители не звонят из браузера
Почему посетители не звонят из браузераVoximplant
 
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...Voximplant
 
13 грехов разработчиков чат-ботов: взгляд со стороны Product Design
13 грехов разработчиков чат-ботов: взгляд со стороны Product Design13 грехов разработчиков чат-ботов: взгляд со стороны Product Design
13 грехов разработчиков чат-ботов: взгляд со стороны Product DesignVoximplant
 
Единый канал коммуникаций между бизнесом и его клиентами
Единый канал коммуникаций между бизнесом и его клиентамиЕдиный канал коммуникаций между бизнесом и его клиентами
Единый канал коммуникаций между бизнесом и его клиентамиVoximplant
 
Будущее real-time коммуникаций
Будущее real-time коммуникацийБудущее real-time коммуникаций
Будущее real-time коммуникацийVoximplant
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Использование машинного обучения и распознавания речи для оценки типа и качес...
Использование машинного обучения и распознавания речи для оценки типа и качес...Использование машинного обучения и распознавания речи для оценки типа и качес...
Использование машинного обучения и распознавания речи для оценки типа и качес...Voximplant
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеVoximplant
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCVoximplant
 

More from Voximplant (11)

Intelligent CPaaS with AI-powered capabiities
Intelligent CPaaS with AI-powered capabiitiesIntelligent CPaaS with AI-powered capabiities
Intelligent CPaaS with AI-powered capabiities
 
Чат-бот как новый способ взаимодействия с клиентом
Чат-бот как новый способ взаимодействия с клиентомЧат-бот как новый способ взаимодействия с клиентом
Чат-бот как новый способ взаимодействия с клиентом
 
Почему посетители не звонят из браузера
Почему посетители не звонят из браузераПочему посетители не звонят из браузера
Почему посетители не звонят из браузера
 
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...
Создание кроссплатформенного конструктора чат-ботов с обработкой голосовых со...
 
13 грехов разработчиков чат-ботов: взгляд со стороны Product Design
13 грехов разработчиков чат-ботов: взгляд со стороны Product Design13 грехов разработчиков чат-ботов: взгляд со стороны Product Design
13 грехов разработчиков чат-ботов: взгляд со стороны Product Design
 
Единый канал коммуникаций между бизнесом и его клиентами
Единый канал коммуникаций между бизнесом и его клиентамиЕдиный канал коммуникаций между бизнесом и его клиентами
Единый канал коммуникаций между бизнесом и его клиентами
 
Будущее real-time коммуникаций
Будущее real-time коммуникацийБудущее real-time коммуникаций
Будущее real-time коммуникаций
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Использование машинного обучения и распознавания речи для оценки типа и качес...
Использование машинного обучения и распознавания речи для оценки типа и качес...Использование машинного обучения и распознавания речи для оценки типа и качес...
Использование машинного обучения и распознавания речи для оценки типа и качес...
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTC
 

Выбор backend для messaging в 2016 году

  • 1. Zviad Kardava Google Developer Expert IoT Voximplant Lead Software Engineer Выбор backend для messaging в 2016 году
  • 2. Задача Сделать месседжинг Быстрый — обработка и доставка сообщений с минимальными задержками Надежный — гарантированная обработка и доставка сообщений Безопасный — как для пользователей, так и для системы Функциональный — поддержка групп, каналов, ботов, передача файлов
  • 3. Задача Сделать месседжинг Постоянно доступный — сервис должен быть доступен всегда Поддерживаемый — не только я должен уметь и понимать как оно работает Интеграция с существующими решениями Масштабируемый — во все стороны с минимальными усилиями и затратами
  • 4. Нельзя просто так взять и запилить хороший месседжинг
  • 11. XMPP Extensible Messaging and Presence Protocol Он же Jabber Преимущества: ● децентрализация ● открытость ● история ● безопасность ● плагины Недостатки: ● избыточность ● масштабируемость ● XEP расширения ● формат ● история Разработан в 1999 г. XML-based IM, presence, pub-sub, signaling for VoIP, media transfer, IoT IETF создает рабочую группу в 2002 и выпускает стандарты Создание XMPP Standards Foundation Поддержка плагинов по средствам XEP
  • 12. XMPP Реализации: ejabberd CommuniGate Pro Openfire Prosody jabberd2 Tigase Кто использует: Whatsapp Google Talk Livejournal Ok Riot games ... Extensible Messaging and Presence Protocol Он же Jabber
  • 13. Whatsapp Использует XMPP, но: ● сильно кастомизированный сервер ejabberd ● кастомизированный протокол XMPP Преимущества: ● работает быстро ● поддерживает шифрование по умолчанию Недостатки: ● привязка к номеру телефона ● нельзя подключить несколько устройств ● отсутствие десктопных клиентов, только Web клиент ● отсутствие нормального API для ботов
  • 14. MQTT Преимущества: ● простота ● очень легковесный ● масштабируемый ● открытость Разработан в IBM в 1999 г. Роялти-фри лицензия MQTT 3.1.1 был стандартизирован OASIS в 2014 Парадигма publish-subscribe c брокером Message Queue Telemetry Transport Недостатки: ● простота ● безопасность
  • 15. MQTT Message Queue Telemetry Transport Кто использует: ● Facebook messenger ● IoT, M2M, ... Реализации: ● Mosquitto ● Eclipse Paho ● emqttd ● Moquette ● m2m.io ● RabbitMQ ● Apache Apollo ● IBM Websphere MQ ● IBM Integration Bus ● IBM MessageSight ● ….
  • 16. Facebook messenger “One of the problems we experienced was long latency when sending a message. The method we were using to send was reliable but slow, and there were limitations on how much we could improve it. With just a few weeks until launch, we ended up building a new mechanism that maintains a persistent connection to our servers. To do this without killing battery life, we used a protocol called MQTT that we had experimented with in Beluga. MQTT is specifically designed for applications like sending telemetry data to and from space probes, so it is designed to use bandwidth and batteries sparingly. By maintaining an MQTT connection and routing messages through our chat pipeline, we were able to often achieve phone-to-phone delivery in the hundreds of milliseconds, rather than multiple seconds”
  • 17. AMQP Advanced Message Queuing Protocol Преимущества: ● открытость ● большая надежность ● гибкость ● интеропребельность ● безопасность Недостатки: ● Сложнее MQTT ● Зависят от реализации ● ???? Разработан John O’Hara по заказу JP Morgan Chase & Co в 2003 г. Бинарный Wire-protocol Сильная рабочая группа в составе которой: Bank of America, Barclays, Cisco Systems, Credit Suisse, Deutsche Börse, Goldman Sachs, INETCO Systems, Informatica, Microsoft, Novell, Red Hat, Software AG, TWIST VMware….
  • 18. AMQP Кто использует: ● Банки ● Red Hat ● Google ● Microsoft ● Pivotal ● …. Реализации: ● RabbitMQ ● Apache ActiveMQ ● Apache Qpid ● StormMQ Advanced Message Queuing Protocol
  • 19.
  • 20. RabbitMQ Проект начат LShift и CohesiveFT в 2007 г. Куплен в 2010 SpringSource, VMware. С мая 2013 г. стал частью Pivotal Software. Использует возможности Erlang/OTP что обеспечивает: ● надежность и отказоустойчивость ● высокую доступность( Clustering, Federation, Mirrored Queues) ● гибкую маршрутизацию ● безопасность ● трассировку ● поддеркжку плагинов ● сильное комьюнити
  • 21. Почему RabbitMQ ??? Клиенты: ● C/C++ ● Java ● Erlang ● Javascript ● PHP ● Python ● etc… даже haskell, lisp, ocaml and COBOL (O_o) Мультипрокрольный: ● AMQP ● MQTT ● XMPP ● HTTP ● STOMP
  • 23. RabbitMQ Типы обменников (exchanges): ● Fanout — всем и сразу ● Direct — связь по ключам маршрутизации ● Topics — связь по составным ключам маршрутизации ● Headers — связь по заголовку сообщения Опции очередей (queues): ● Durable — сообщения переживают перезагрузки и падения ● Exclusive — строго предназначена для потребителя ● Auto_delete — удаляется если нет активных подключений ● Message TTL, Auto expire, Max length, Max length bytes, Dead letter exchange, Dead letter routing key, Maximum priority Гибкая маршрутизация
  • 27. Наше решение Web SDK Android SDK iOS SDK Gateway LoadBalancer Cluster JavaBackend DB DB Postgres Redis Web SDK Android SDK iOS SDK Gateway Push Notifications Service Процессинг и хранение МаршрутизацияАвторизация Балансировка
  • 28. Наша паранойя Web SDK Android SDK iOS SDK Gateway LoadBalancer Cluster JavaBackend DB DB Postgres Redis Web SDK Android SDK iOS SDK Gateway Push Notifications Service TLS/SSLTLS/SSLTLS/SSL TLS/SSL
  • 29. Enterprise service bus Enterprise Service Bus Service Service Service Service Service Logs
  • 30. twitter: @zviadkardava telegram: @zviadkardava Thank You! facebook: Zviad Kardava google+: +zviadkardava