69
Vertx.io Нужно больше шин! Eventbus-based polyglot framework

«Нужно больше шин! Eventbus based framework vertx.io»

  • Upload
    -

  • View
    434

  • Download
    0

Embed Size (px)

Citation preview

Page 1: «Нужно больше шин! Eventbus based framework vertx.io»

Vertx.ioНужно больше шин!

Eventbus-based polyglot framework

Page 2: «Нужно больше шин! Eventbus based framework vertx.io»

Михаил Бортник

• Ruby developer в R&R Music

Page 3: «Нужно больше шин! Eventbus based framework vertx.io»

Михаил Бортник

• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

Page 4: «Нужно больше шин! Eventbus based framework vertx.io»

Михаил Бортник

• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

• github: @vessi

Page 5: «Нужно больше шин! Eventbus based framework vertx.io»

Михаил Бортник

• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

• github: @vessi

• twitter: @mikhailbortnyk

Page 6: «Нужно больше шин! Eventbus based framework vertx.io»

Немного истории

• Vert.x создан в 2011 году

Page 7: «Нужно больше шин! Eventbus based framework vertx.io»

Немного истории

• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

Page 8: «Нужно больше шин! Eventbus based framework vertx.io»

Немного истории

• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

Page 9: «Нужно больше шин! Eventbus based framework vertx.io»

Немного истории

• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

• Базируется на netty

Page 10: «Нужно больше шин! Eventbus based framework vertx.io»

Немного истории

• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

• Базируется на netty

• В 2014 году получил “Most innovative Java

technology”

Page 11: «Нужно больше шин! Eventbus based framework vertx.io»

Влияние

• Много заимствований от node.js

Page 12: «Нужно больше шин! Eventbus based framework vertx.io»

Влияние

• Много заимствований от node.js

• Подход происходит из Erlang

Page 13: «Нужно больше шин! Eventbus based framework vertx.io»

Влияние

• Много заимствований от node.js

• Подход происходит из Erlang

• Конфигурация и организация кода - от Java

Page 14: «Нужно больше шин! Eventbus based framework vertx.io»

Особенности

• Полиглотный

Page 15: «Нужно больше шин! Eventbus based framework vertx.io»

Особенности

• Полиглотный

• Простая модель многопоточности

Page 16: «Нужно больше шин! Eventbus based framework vertx.io»

Особенности

• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

Page 17: «Нужно больше шин! Eventbus based framework vertx.io»

Особенности

• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

• Распределенная шина сообщений

Page 18: «Нужно больше шин! Eventbus based framework vertx.io»

Особенности

• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

• Распределенная шина сообщений

• Модульная система

Page 19: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 20: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 21: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 22: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 23: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 24: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 25: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 26: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 27: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 28: «Нужно больше шин! Eventbus based framework vertx.io»

ПолиглотностьПоддерживает JVM-based языки

Page 29: «Нужно больше шин! Eventbus based framework vertx.io»

Многопоточность

• Каждый модуль выполняется как single-

threaded в изолированном окружении

Page 30: «Нужно больше шин! Eventbus based framework vertx.io»

Многопоточность

• Каждый модуль выполняется как single-

threaded в изолированном окружении

• Модули выполняются в event loops по

количеству ядер

Page 31: «Нужно больше шин! Eventbus based framework vertx.io»

Многопоточность

• Каждый модуль выполняется как single-

threaded в изолированном окружении

• Модули выполняются в event loops по

количеству ядер

• Отдельные потоки для блокирующих задач

Page 32: «Нужно больше шин! Eventbus based framework vertx.io»

Многопоточность

• Каждый модуль выполняется в

фиксированном event loop

Page 33: «Нужно больше шин! Eventbus based framework vertx.io»

Многопоточность

• Каждый модуль выполняется в

фиксированном event loop

Page 34: «Нужно больше шин! Eventbus based framework vertx.io»

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

• Основан на hazelcast

Page 35: «Нужно больше шин! Eventbus based framework vertx.io»

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

• Основан на hazelcast

• Легкое горизонтальное масштабирование

Page 36: «Нужно больше шин! Eventbus based framework vertx.io»

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

• Основан на hazelcast

• Легкое горизонтальное масштабирование

• Работает на всех доступных ядрах

Page 37: «Нужно больше шин! Eventbus based framework vertx.io»

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

• Основан на hazelcast

• Легкое горизонтальное масштабирование

• Работает на всех доступных ядрах

• Поддерживает сетевую кластеризацию

Page 38: «Нужно больше шин! Eventbus based framework vertx.io»

Шинная архитектура

• Одинаковая шина сообщений для клиента и

сервера

Page 39: «Нужно больше шин! Eventbus based framework vertx.io»

Шинная архитектура

• Одинаковая шина сообщений для клиента и

сервера

• Есть гейты в распространенные очереди

(RabbitMQ, ZeroMQ, Beanstalk in progress)

Page 40: «Нужно больше шин! Eventbus based framework vertx.io»

Шинная архитектура

• Одинаковая шина сообщений для клиента и

сервера

• Есть гейты в распространенные очереди

(RabbitMQ, ZeroMQ, Beanstalk in progress)

• Типы работы - pub-sub, point-to-point

Page 41: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

• Есть репозиторий готовых модулей

Page 42: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули,

приложение

Page 43: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули,

приложение

• Verticles - просто куски кода

Page 44: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули,

приложение

• Verticles - просто куски кода

• Модули - набор verticles

Page 45: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули,

приложение

• Verticles - просто куски кода

• Модули - набор verticles

• Приложение - набор модулей

Page 46: «Нужно больше шин! Eventbus based framework vertx.io»

Модульная система

Page 47: «Нужно больше шин! Eventbus based framework vertx.io»

Плюсы

• JVM

Page 48: «Нужно больше шин! Eventbus based framework vertx.io»

Плюсы

• JVM

• мультиязычность

Page 49: «Нужно больше шин! Eventbus based framework vertx.io»

Плюсы

• JVM

• мультиязычность

• легкая масштабируемость

Page 50: «Нужно больше шин! Eventbus based framework vertx.io»

Плюсы

• JVM

• мультиязычность

• легкая масштабируемость

• шинная архитектура

Page 51: «Нужно больше шин! Eventbus based framework vertx.io»

Плюсы

• JVM

• мультиязычность

• легкая масштабируемость

• шинная архитектура

• real time

Page 52: «Нужно больше шин! Eventbus based framework vertx.io»

Минусы

• JVM

Page 53: «Нужно больше шин! Eventbus based framework vertx.io»

Минусы

• JVM

• что-нибудь серьезное нужно писать на Java

Page 54: «Нужно больше шин! Eventbus based framework vertx.io»

Минусы

• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

Page 55: «Нужно больше шин! Eventbus based framework vertx.io»

Минусы

• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

• callback hell

Page 56: «Нужно больше шин! Eventbus based framework vertx.io»

Минусы

• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

• callback hell

• ломает мозг

Page 57: «Нужно больше шин! Eventbus based framework vertx.io»

Демо

Page 58: «Нужно больше шин! Eventbus based framework vertx.io»

ДемоНу конечно, Hello world

Page 59: «Нужно больше шин! Eventbus based framework vertx.io»

Где почитать?

• http://vertx.io/

Page 60: «Нужно больше шин! Eventbus based framework vertx.io»

Где почитать?

• http://vertx.io/

• Real-time Web Application Development using

Vert.x 2.0

Page 61: «Нужно больше шин! Eventbus based framework vertx.io»

Где почитать?

• http://vertx.io/

• Real-time Web Application Development using

Vert.x 2.0

• Гугл-группа

https://groups.google.com/forum/#!forum/vertx

Page 62: «Нужно больше шин! Eventbus based framework vertx.io»

Где почитать?

• http://vertx.io/

• Real-time Web Application Development using

Vert.x 2.0

• Гугл-группа

https://groups.google.com/forum/#!forum/vertx

• #vertx на freenode.net

Page 63: «Нужно больше шин! Eventbus based framework vertx.io»

Кто использует?

• VMWare

Page 64: «Нужно больше шин! Eventbus based framework vertx.io»

Кто использует?

• VMWare

• RedHat

Page 65: «Нужно больше шин! Eventbus based framework vertx.io»

Кто использует?

• VMWare

• RedHat

• Peer.im

Page 66: «Нужно больше шин! Eventbus based framework vertx.io»

Кто использует?

• VMWare

• RedHat

• Peer.im

• остальные пока опасаются

Page 67: «Нужно больше шин! Eventbus based framework vertx.io»

Спасибо!

Page 68: «Нужно больше шин! Eventbus based framework vertx.io»

Вопросы?

Page 69: «Нужно больше шин! Eventbus based framework vertx.io»

Вопросы?Но лучше не надо, я нервничаю :)