SlideShare ist ein Scribd-Unternehmen logo
1 von 69
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
• остальные пока опасаются
Спасибо!
Вопросы?
Вопросы?
Но лучше не надо, я нервничаю :)

Weitere ähnliche Inhalte

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

Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
Yandex
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Ontico
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
tfmailru
 
Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»Георгий Мостоловица — «Браузеры»
Георгий Мостоловица — «Браузеры»
Yandex
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
buranLcme
 

Ähnlich wie «Нужно больше шин! Eventbus based framework vertx.io» (20)

Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
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 | Тимур Гильмуллин
 

Mehr von Olga Lavrentieva

«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»
Olga Lavrentieva
 

Mehr von Olga Lavrentieva (20)

15 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v415 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v4
 
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceСергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
 
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности CassandraАндрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notification
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"
 
Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"
 
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
 
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
 
Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»
 
Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»
 
Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»
 
«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»
 
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
 
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»
 
«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»
 
«Работа с базами данных с использованием Sequel»
«Работа с базами данных с использованием Sequel»«Работа с базами данных с использованием Sequel»
«Работа с базами данных с использованием Sequel»
 

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