SlideShare a Scribd company logo
Распределенные приложения
и Azure Service Bus
Денис Иванов
@denisivanov
Класс приложений
-Enterprise
-Важна предметная область
-Автоматизация бизнес-процессов
-Многоэтапные бизнес-операции
Эволюция
Эволюция
-Клиент-серверные, синхронное выполнение
Эволюция
-Фоновые операции
Эволюция
-Декомпозиция бек-энда
Эволюция
-Несколько фронт-эндов
Проблема
Проблема
Проблема
Подходы к проектированию
приложений
-Эволюционный/легаси-система
-На основе прошлого опыта
-По примеру существующего приложения
-DDD
Message driven architecture
-Bounded contexts
-Aggregates/aggregate roots
-Commands and events
Демо-приложение
Продажа рекламы
- Подбор параметров заказа
- Создание заказа
- Жизненный цикл заказа
2 bounded contexts
Демо-приложение
Производство рекламы
- Валидация заказа
- Оформление рекламных материалов
2 bounded contexts
Топология демо-приложения
Используемые технологии
-OWIN
-SignalR
-Service Bus For Windows 1.1
http://devday-net-demo.azurewebsites.net/
Возможности
Service Bus For Windows/
Azure Service Bus
-Namespaces
-Brokered/relayed messaging
-Queues/topics
-Subscriptions/routing
-Poison messages (dead letter queue)
Возможности
Service Bus For Windows/
Azure Service Bus
-Batching
-Duplicate detection
-Retries, delivery delay, message expires
-AMQP
-REST API
Профиты
-Независимое изменение разных частей
приложения
-Отказоустойчивость и динамическая
балансировка
-Синхронное или асинхронное выполнение
-Легко реализуемый Task-based UI (wizards)
Напоследок
-Повышение гибкости ведет к усложнению
инфраструктуры
-Выберите подходящий способ
проектирования
-Определите цели и этапы
-Используйте наиболее удобные инструменты
Вопросы?
Денис Иванов
@denisivanov
https://github.com/denisivan0v
Спасибо
https://github.com/denisivan0v/devday-demo

More Related Content

What's hot

Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Provectus
 
CRM for JIRA
CRM for JIRACRM for JIRA
CRM for JIRA
Teamlead
 
Constructor
ConstructorConstructor
Платформа БАРС.Web-Своды
Платформа БАРС.Web-СводыПлатформа БАРС.Web-Своды
Платформа БАРС.Web-Своды
Bars Group
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
Microsoft
 

What's hot (6)

Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
Михаил Лебединский (Termopal) “Особенности разработки веб и мобильных приложе...
 
Virtualization
VirtualizationVirtualization
Virtualization
 
CRM for JIRA
CRM for JIRACRM for JIRA
CRM for JIRA
 
Constructor
ConstructorConstructor
Constructor
 
Платформа БАРС.Web-Своды
Платформа БАРС.Web-СводыПлатформа БАРС.Web-Своды
Платформа БАРС.Web-Своды
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 

Similar to Распределенные приложения и Azure Service Bus

Cloud. Business-model-innovation
Cloud. Business-model-innovationCloud. Business-model-innovation
Cloud. Business-model-innovationRuslanKorotaev
 
PMIufa 2011-03-24
PMIufa 2011-03-24PMIufa 2011-03-24
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...Cisco Russia
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Cisco Russia
 
Oracle - Технологии Oracle для управления бизнесс-процессами
Oracle - Технологии Oracle для управления бизнесс-процессамиOracle - Технологии Oracle для управления бизнесс-процессами
Oracle - Технологии Oracle для управления бизнесс-процессами
Expolink
 
Cloud overview 60_min
Cloud overview 60_minCloud overview 60_min
Cloud overview 60_minPavel Gelvan
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Cisco Russia
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
Dmitry Lazarenko
 
Parallels VDI
Parallels VDIParallels VDI
Parallels VDI
schlek
 
AZadonsky Mobile Applications Development
AZadonsky Mobile Applications DevelopmentAZadonsky Mobile Applications Development
AZadonsky Mobile Applications Development
Vasily Demin
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Andrey Akulov
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
LogeekNightUkraine
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Cisco Russia
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
Cleverics
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
Vyacheslav Benedichuk
 
Доступность приложений в гибридных ЦОД
Доступность приложений в гибридных ЦОДДоступность приложений в гибридных ЦОД
Доступность приложений в гибридных ЦОД
Dmitry Tikhovich
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия Cisco
Cisco Russia
 
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
De Novo
 

Similar to Распределенные приложения и Azure Service Bus (20)

Cloud. Business-model-innovation
Cloud. Business-model-innovationCloud. Business-model-innovation
Cloud. Business-model-innovation
 
PMIufa 2011-03-24
PMIufa 2011-03-24PMIufa 2011-03-24
PMIufa 2011-03-24
 
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...
Быстрое создание облачного ЦОД на базе решения EMC HybridCloudи конвергентной...
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Oracle - Технологии Oracle для управления бизнесс-процессами
Oracle - Технологии Oracle для управления бизнесс-процессамиOracle - Технологии Oracle для управления бизнесс-процессами
Oracle - Технологии Oracle для управления бизнесс-процессами
 
Cloud overview 60_min
Cloud overview 60_minCloud overview 60_min
Cloud overview 60_min
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Parallels VDI
Parallels VDIParallels VDI
Parallels VDI
 
AZadonsky Mobile Applications Development
AZadonsky Mobile Applications DevelopmentAZadonsky Mobile Applications Development
AZadonsky Mobile Applications Development
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Доступность приложений в гибридных ЦОД
Доступность приложений в гибридных ЦОДДоступность приложений в гибридных ЦОД
Доступность приложений в гибридных ЦОД
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия Cisco
 
Облачные сервисы Майкрософт и возможности для партнеров, Azure University
Облачные сервисы Майкрософт и возможности для партнеров, Azure UniversityОблачные сервисы Майкрософт и возможности для партнеров, Azure University
Облачные сервисы Майкрософт и возможности для партнеров, Azure University
 
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
 

More from DevDay

«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
 
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
DevDay
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь КудринDevDay
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
DevDay
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
DevDay
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
DevDay
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
DevDay
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
 
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
DevDay
 

More from DevDay (20)

«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
 
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
 

Распределенные приложения и Azure Service Bus