Распределенные приложения и azure service bus

28
Распределенные приложения и Azure Service Bus Денис Иванов @denisivanov

Upload: devday

Post on 14-Jun-2015

285 views

Category:

Technology


1 download

DESCRIPTION

Когда приложения перестают быть монолитными и разделяются на подсистемы, возникает много нюансов. Как спроектировать распределенную систему так, чтобы она оставалась управляемой? Как добиться того, чтобы процессы, в которых задействованы несколько подсистем, остаавалить прозрачными, а данные - согласованными? Какие принципы, технологии и инструменты могут нам помочь? Я расскажу о том, какие задачи мы решаем в одном из внутренних проектов 2ГИС, и почему мы остановились на Azure Service Bus как на инструменте обеспечения взаимодействия подсистем приложения.

TRANSCRIPT

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

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

Денис Иванов

@denisivanov

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

Класс приложений

-Enterprise

-Важна предметная область

-Автоматизация бизнес-процессов

-Многоэтапные бизнес-операции

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

Эволюция

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

Эволюция

-Клиент-серверные, синхронное выполнение

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

Эволюция

-Фоновые операции

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

Эволюция

-Декомпозиция бек-энда

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

Эволюция

-Несколько фронт-эндов

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

Проблема

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

Проблема

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

Проблема

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

Подходы к проектированию приложений

-Эволюционный/легаси-система

-На основе прошлого опыта

-По примеру существующего приложения

-DDD

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

Message driven architecture

-Bounded contexts

-Aggregates/aggregate roots

-Commands and events

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

Демо-приложение

Продажа рекламы- Подбор параметров заказа

- Создание заказа

- Жизненный цикл заказа

2 bounded contexts

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

Демо-приложение

Производство рекламы- Валидация заказа

- Оформление рекламных материалов

2 bounded contexts

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

Топология демо-приложения

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

Используемые технологии

-OWIN

-SignalR

-Service Bus For Windows 1.1

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

http://devday-net-demo.azurewebsites.net/

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

Возможности Service Bus For Windows/

Azure Service Bus

-Namespaces

-Brokered/relayed messaging

-Queues/topics

-Subscriptions/routing

-Poison messages (dead letter queue)

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

Возможности Service Bus For Windows/

Azure Service Bus

-Batching

-Duplicate detection

-Retries, delivery delay, message expires

-AMQP

-REST API

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

Профиты

-Независимое изменение разных частей приложения

-Отказоустойчивость и динамическая балансировка

-Синхронное или асинхронное выполнение

-Легко реализуемый Task-based UI (wizards)

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

Напоследок

-Повышение гибкости ведет к усложнению инфраструктуры

-Выберите подходящий способ проектирования

-Определите цели и этапы

-Используйте наиболее удобные инструменты

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

Вопросы?

Денис Иванов@denisivanovhttps://github.com/denisivan0v

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

Спасибо

https://github.com/denisivan0v/devday-demo