SlideShare a Scribd company logo
1 of 69
Download to read offline
Vertx.io
Нужно больше шин!

Eventbus-based polyglot framework
Михаил Бортник
• Ruby developer в R&R Music
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
• github: @vessi
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
• github: @vessi
• twitter: @mikhailbortnyk
Немного истории
• Vert.x создан в 2011 году
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
• Базируется на netty
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
• Базируется на netty
• В 2014 году получил “Most innovative Java
technology”
Влияние
• Много заимствований от node.js
Влияние
• Много заимствований от node.js
• Подход происходит из Erlang
Влияние
• Много заимствований от node.js
• Подход происходит из Erlang
• Конфигурация и организация кода - от Java
Особенности
• Полиглотный
Особенности
• Полиглотный
• Простая модель многопоточности
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
• Распределенная шина сообщений
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
• Распределенная шина сообщений
• Модульная система
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
Полиглотность
Поддерживает JVM-based языки
…
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
• Модули выполняются в event loops по
количеству ядер
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
• Модули выполняются в event loops по
количеству ядер
• Отдельные потоки для блокирующих задач
Многопоточность
• Каждый модуль выполняется в
фиксированном event loop
Многопоточность
• Каждый модуль выполняется в
фиксированном event loop
Масштабируемость
• Основан на hazelcast
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
• Работает на всех доступных ядрах
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
• Работает на всех доступных ядрах
• Поддерживает сетевую кластеризацию
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
• Есть гейты в распространенные очереди
(RabbitMQ, ZeroMQ, Beanstalk in progress)
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
• Есть гейты в распространенные очереди
(RabbitMQ, ZeroMQ, Beanstalk in progress)
• Типы работы - pub-sub, point-to-point
Модульная система
• Есть репозиторий готовых модулей
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
• Модули - набор verticles
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
• Модули - набор verticles
• Приложение - набор модулей
Модульная система
Плюсы
• JVM
Плюсы
• JVM
• мультиязычность
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
• шинная архитектура
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
• шинная архитектура
• real time
Минусы
• JVM
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
• callback hell
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
• callback hell
• ломает мозг
Демо
Демо
Ну конечно, Hello world
Где почитать?
• http://vertx.io/
Где почитать?
• http://vertx.io/
• Real-time Web Application Development using
Vert.x 2.0
Где почитать?
• http://vertx.io/
• Real-time Web Application Development using
Vert.x 2.0
• Гугл-группа https://groups.google.com/forum/#!
forum/vertx
Где почитать?
• http://vertx.io/
• Real-time Web Application Development using
Vert.x 2.0
• Гугл-группа https://groups.google.com/forum/#!
forum/vertx
• #vertx на freenode.net
Кто использует?
• VMWare
Кто использует?
• VMWare
• RedHat
Кто использует?
• VMWare
• RedHat
• Peer.im
Кто использует?
• VMWare
• RedHat
• Peer.im
• остальные пока опасаются
Спасибо!
Вопросы?
Вопросы?
Но лучше не надо, я нервничаю :)

More Related Content

Similar to Vert.x eventbus-based framework

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019GoQA
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersStas Pavlov
 
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?Веб 3.0. Есть ли будущее у Java в RIA и Mobile?
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?Nikita Lipsky
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Grouptfmailru
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»Yandex
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС2ГИС Технологии
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаSQALab
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned Alexander Syrotenko
 
Virtuozzo platform
Virtuozzo platformVirtuozzo platform
Virtuozzo platformru_Parallels
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projectsAsya Dudnik
 
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»SpbDotNet Community
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?buranLcme
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 

Similar to Vert.x eventbus-based framework (20)

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and Containers
 
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?Веб 3.0. Есть ли будущее у Java в RIA и Mobile?
Веб 3.0. Есть ли будущее у Java в RIA и Mobile?
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Virtuozzo platform
Virtuozzo platformVirtuozzo platform
Virtuozzo platform
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Apache maven in java projects
Apache maven in java projectsApache maven in java projects
Apache maven in java projects
 
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Take a Look at Akka-Java
Take a Look at Akka-JavaTake a Look at Akka-Java
Take a Look at Akka-Java
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 

Vert.x eventbus-based framework