SlideShare a Scribd company logo
1 of 27
Download to read offline
Миграция в Azure Service Fabric
Александр Лайша
Chief Software Engineer, EPAM
Цели
IoT проект на
базе Cloud
Services
Знакомство с
Service Fabric
Архитектура с
Azure Service
Fabric
Узнаем что может Azure
Service Fabric, из чего он
состоит внутри и как его
можно использовать
Познакомимся c примером
архитектуры на базе Azure
Service Fabric предыдущего
IoT проекта и разберём
преимущества
Рассмотрим архитектуру для
части функционала
реального IoT проекта на
базе Cloud Services и
поговорим о возможных
улучшениях
Фрагмент реального IoT
проекта
На базе Azure Cloud Services
Машины, девайсы и облако
HTTPTCP/IP
Microsoft Azure
Какой функционал будем рассматривать?
Отправка телеметрии
Отслеживание движения автомобиля
Сигналы тревоги и отправка уведомлений
(SMS, Email, Push)
Отправка команд на автомобиль
Обработка ответа команды
Отправка телеметрии
Телеметрия
(пакет)
DeviceCache
[Azure Redis]
Информация
о девайсе
JSON
IncomingMessagesHub
[Event Hub]
TelemetryReceiver
[Worker Roles]
JSON
Информация
для аутентификации
GatewayDB
[SQL Azure]
IoTGateway
[Worker Roles]
Установка TCP
соединения
Отслеживание движения автомобиля
TelemetryReceiver
[Worker Roles]
TripCoordinates
[Azure Table]
Текущие координаты
WebPortal, RESTful API
[Web Roles]
SignalRBackplane
[Azure Service Bus]
BrokeredMessage
Сигналы тревоги и отправка уведомлений
TelemetryReceiver
[Worker Roles]
WebPortal, RESTful API
[Web Roles]
10 последних
или список
NotificationSettingsCache
[Azure Redis]
Настройки
DeviceAlerts
[Azure Table]
NotificationEngine
[Worker Roles]
BrokeredMessage
NotificationTopic
[Azure Service Bus Topic]
Отправка команд на автомобиль
WebPortal, RESTful API
[Web Roles]
HTP
Команда
TrackingId
CommandStatusCache
[Azure Redis]
Статус выполнения
Id = TrackingId,
Status = InProgress
IoTGateway
[Worker Roles]
JSON
TrackingId
JSON
OutcomingMessagesHub
[Event Hub]
TrackingId
Команда
(пакет)
TrackingId
DeviceCache
[Azure Redis]
Информация
о подключённом
девайсе
Обработка ответа команды
DeviceCache
[Azure Redis]
Информация
для аутентификации
GatewayDB
[SQL Azure]
Ответ команды
(пакет)
IoTGateway
[Worker Roles]
TrackingId
JSON
IncomingMessagesHub
[Event Hub]
TrackingId
TelemetryReceiver
[Worker Roles]
JSON
TrackingId
CommandStatusCache
[Azure Redis]
Обновлённый
статус
Id = TrackingId
Инфраструктура
Web Roles
[WebPortal,
RESTful API]
Worker Roles
[NotificationEngine, IoTGateway,
TelemetryReceiver]
Azure Cloud Service
Azure Redis
[DeviceCache, CommandStatusCache,
NotificationSettingsCache]
SQL Azure
[GatewayDB]
Azure Storage Table
[DeviceAlerts,
TripCoordinates]
Storages
Event Hub
[OutcomingMessagesHub,
IncomingMessagesHub]
Service Bus
[SignalRBackplane,
NotificationTopic]
Messaging
Какие есть недостатки?
TelemetryReceiver – большой монолит
Масштабирование ролей по отдельности
Медленный деплоймент и масштабирование
Простаивание вычислительных мощностей
Дополнительные затраты на кеш
Нагрузка на storage при частых записях и
чтених
Обзор Azure Service Fabric
Что такое Azure Service Fabric?
Микросервисы
Подсистема
связи
Обнаружение служб
Подсистема
управления
Развёртывание, обновление
и мониторинг
Подсистема
надежности
Надёжность, доступность,
репликация, оркестрация
Подсистема
хостинга
Жизненный цикл приложения
Подсистема
тестирования
Симуляция неисправностей,
тестирование в рабочей
среде
Подсистема федерации
Объединяет различные узлы в единый унифицированный кластер
Транспортная подсистема
Безопасный "точка-точка” канал
Модели программирования
Azure
Windows
Server
Linux
Облако
провайдера
Windows
Server
Linux
Service Fabric
Частное облако
Windows
Server
Linux
High Availability
Hyper-Scale
Hybrid Operations
High Density Rolling Upgrades
Stateful services
Low Latency
Fast startup &
shutdown
Container Orchestration
& lifecycle management
Replication &
Failover
Simple
programming
models
Load balancing
Self-healingData Partitioning
Automated Rollback
Health
Monitoring
Placement
Constraints
Service Fabric
Кластер
Эволюция Cloud Services
Node Type #1
Node Type #2
Node Type #2
Node Type #2
Node Type #2
Node Type #1
Node Type #2
Web AppAPI
Background
App #2
Background
App #1
Cloud Services
Модели программирования
Микросервисы
Reliable Services API
верхнеуровневая модель программирования, любой
транспортный протокол, stateless & stateful
Reliable Actors API
Actor Model, однопоточная модель программирования,
stateless & stateful
Инфраструктура Service Fabric
Модели программирования
Azure Частное облако Облако провайдера
Guest Executables
Node.js, Java, а также собственные приложения
Архитектура с использованием
Azure Service Fabric
Подзаголовок или имя нового докладчика
Отправка телеметрии
IoTGateway
[Stateful Service]
Кеширует информацию для
аутентификации всех девайсов
(IReliableDictionary<TKey, TValue>)
Кеширует информацию
для девайса
DeviceActor
[Stateful Actor]
TelemetryReceiver
[Stateless Service]
IncomingMessagesHub
[Event Hub]
Отслеживание движения автомобиля
DeviceActor
[Stateful Actor]
TripCoordinates
[Azure Table]
SignalRBackplane
[Azure Service Bus]
WebPortal, RESTful API
[Stateless Service]
Координаты за последние 24 часа
DeviceTripActor
[Stateful Actor]
• Кеширует координаты за
последние 24 часа
• Сохраняет координаты
пачками (100 или в течении
1 минуты)
Сигналы тревоги и отправка уведомлений
DeviceActor
[Stateful Actor]
DeviceAlertActor
[Stateful Actor]
Кеширует последние
10 сигналов с девайса
WebPortal, RESTful API
[Stateless Service]
Список сигналов тревоги
• Кеширует настройки для нотификаций
• Буферизует сообщений для отправки в
IReliableQueue и делает рассылку в фоне
NotificationEngine
[Stateful Service, Range partitioning]
Сообщение для отправки
Partition N
DeviceAlerts
[Azure Table]
Сигнал тревоги
Отправка команд на автомобиль
TrackingId
OutcomingMessagesHub
[Event Hub]
Команда
(пакет)
TrackingId
Состояние
девайса
DeviceActor
[Stateful Actor]
• ActorId = DeviceId
• Коллекция отправленных команд
(State, CmdName, TrackingId)
DeviceCommandActor
[Stateful Actor]
WebPortal, RESTful API
[Stateless Service]
HTP
Команда
IoTGateway
[Stateful Service]
JSON
TrackingId
Обработка ответа команды
JSON
IncomingMessagesHub
[Event Hub]
TrackingId
Ответ команды
(пакет)
IoTGateway
[Stateful Service]
TrackingId
DeviceActor
[Stateful Actor]
JSON TrackingId
TelemetryReceiver
[Stateless Service]
Обновлённый
статус и результат
выполнения
DeviceCommandActor
[Stateful Actor]
Инфраструктура
Azure Service Fabric
SQL Azure
[GatewayDB]
Azure Storage Table
[DeviceAlerts,
TripCoordinates]
Storages
Stateless Services
[WebPortal,
RESTful API]
NodeType #1
Stateful Actor Services
[Device Actor, DeviceTripActor,
DeviceAlertActor, DeviceCommandActor]
Stateful Services
[IoTGateway,
NotificationEngine]
Stateless Services
[TelemetryReceiver]
NodeType #2
Event Hub
[OutcomingMessagesHub,
IncomingMessagesHub]
Service Bus
[SignalRBackplane]
Messaging
Что улучшилось?
Монолита больше нету
Версионирование сервисов
Быстрый деплоймент
Высокая утилизация физических ресурсов
Отсутствие необдходимости в Azure Redis
Уменьшение нагрузки на Storage
Увеличение производительности
Полезные ресурсы
Официальная документация Azure Service Fabric: https://azure.microsoft.com/en-
us/documentation/services/service-fabric
Книга «Programming Microsoft Azure Service Fabric»: http://www.amazon.com/Programming-
Microsoft-Service-Developer-Reference/dp/1509301887
Паттерны и Антипаттерны Azure Service Fabric: https://acom-swtest-2.azurewebsites.net/en-
gb/documentation/articles/service-fabric-reliable-actors-patterns-introduction
Pub-Sub для Reliable Actors: https://www.nuget.org/packages/ServiceFabric.PubSubActors
Что дальше
Service Fabric
рулит!
Читайте и
пишите много
кода
Давайте
общаться!
Книга «Programming
Microsoft Azure Service
Fabric (Developer Reference)»
ещё не выпущена, но
доступна для пред-заказа.
Я перехожу в зону вопросов
и ответов.
Напишите мне в твиттере,
если не можете найти и
хотите пообщаться.
Мигрируйте и
разрабатывайте на базе
микросервисов и Azure
Service Fabric
Q&A
Миграция в Azure Service Fabric
Александр Лайша
layshaalex@gmal.com
@layshaalexander

More Related Content

Viewers also liked

CloudBrew 2016 - Building IoT solution with Service Fabric
CloudBrew 2016 - Building IoT solution with Service FabricCloudBrew 2016 - Building IoT solution with Service Fabric
CloudBrew 2016 - Building IoT solution with Service FabricTeemu Tapanila
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsTomasz Kopacz
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...Publicis Sapient Engineering
 
Micro services architecture and service fabric
Micro services architecture and service fabricMicro services architecture and service fabric
Micro services architecture and service fabricLuis Valencia
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?João Pedro Martins
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要Daiyu Hatakeyama
 
Devteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricDevteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricBrisebois
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup
 
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...DataStax Academy
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internalsTokyo Azure Meetup
 
Cloud migration strategies
Cloud migration strategiesCloud migration strategies
Cloud migration strategiesSogetiLabs
 
Azure Service Fabric - weaving services in hyper-scale
Azure Service Fabric - weaving services in hyper-scaleAzure Service Fabric - weaving services in hyper-scale
Azure Service Fabric - weaving services in hyper-scaleSebastian Gebski
 
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Codit
 

Viewers also liked (17)

CloudBrew 2016 - Building IoT solution with Service Fabric
CloudBrew 2016 - Building IoT solution with Service FabricCloudBrew 2016 - Building IoT solution with Service Fabric
CloudBrew 2016 - Building IoT solution with Service Fabric
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
 
Micro services architecture and service fabric
Micro services architecture and service fabricMicro services architecture and service fabric
Micro services architecture and service fabric
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要
 
Devteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricDevteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabric
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
Microsoft: Building a Massively Scalable System with DataStax and Microsoft's...
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internals
 
Cloud migration strategies
Cloud migration strategiesCloud migration strategies
Cloud migration strategies
 
Cloud Migration: Moving to the Cloud
Cloud Migration: Moving to the CloudCloud Migration: Moving to the Cloud
Cloud Migration: Moving to the Cloud
 
Azure Service Fabric - weaving services in hyper-scale
Azure Service Fabric - weaving services in hyper-scaleAzure Service Fabric - weaving services in hyper-scale
Azure Service Fabric - weaving services in hyper-scale
 
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
Azure Service Fabric: notes from the field (Sam Vanhoute @Integrate 2016)
 

Similar to Миграция в Azure Service Fabric

Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comPryaniky.com
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
AiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияКварта Технологии
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...CodeFest
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 
DevCon School. Modern Mobile and Web Development
DevCon School. Modern Mobile and Web DevelopmentDevCon School. Modern Mobile and Web Development
DevCon School. Modern Mobile and Web DevelopmentStas Pavlov
 
Простая сложная облачная платформа Azure
Простая сложная облачная платформа AzureПростая сложная облачная платформа Azure
Простая сложная облачная платформа AzureTechExpert
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureStas Pavlov
 
Rus ibm cloud computing
Rus ibm cloud computingRus ibm cloud computing
Rus ibm cloud computingAlexey Ivlev
 
IT-инфраструктура
IT-инфраструктураIT-инфраструктура
IT-инфраструктураSoftline
 
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, MicrosoftYandex
 
Обзор Unified Contact Center Enterprise 10.5
Обзор Unified Contact Center Enterprise 10.5Обзор Unified Contact Center Enterprise 10.5
Обзор Unified Contact Center Enterprise 10.5Cisco Russia
 
Александр Белоцерковский — Microsoft — ICBDA2016
Александр Белоцерковский — Microsoft — ICBDA2016Александр Белоцерковский — Microsoft — ICBDA2016
Александр Белоцерковский — Microsoft — ICBDA2016rusbase
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft AzureAlexey Lyubko
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comAlexey Lyubko
 

Similar to Миграция в Azure Service Fabric (20)

Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.com
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
AiCare - self-organizing device management service
AiCare - self-organizing device management serviceAiCare - self-organizing device management service
AiCare - self-organizing device management service
 
AiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управления
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
 
Ms it cup win-team - мевв
Ms it cup   win-team - меввMs it cup   win-team - мевв
Ms it cup win-team - мевв
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
DevCon School. Modern Mobile and Web Development
DevCon School. Modern Mobile and Web DevelopmentDevCon School. Modern Mobile and Web Development
DevCon School. Modern Mobile and Web Development
 
Простая сложная облачная платформа Azure
Простая сложная облачная платформа AzureПростая сложная облачная платформа Azure
Простая сложная облачная платформа Azure
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
Rus ibm cloud computing
Rus ibm cloud computingRus ibm cloud computing
Rus ibm cloud computing
 
IT-инфраструктура
IT-инфраструктураIT-инфраструктура
IT-инфраструктура
 
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
 
Обзор Unified Contact Center Enterprise 10.5
Обзор Unified Contact Center Enterprise 10.5Обзор Unified Contact Center Enterprise 10.5
Обзор Unified Contact Center Enterprise 10.5
 
Александр Белоцерковский — Microsoft — ICBDA2016
Александр Белоцерковский — Microsoft — ICBDA2016Александр Белоцерковский — Microsoft — ICBDA2016
Александр Белоцерковский — Microsoft — ICBDA2016
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft Azure
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.com
 

More from Alexander Laysha

Data exposure in Azure - production use-case
Data exposure in Azure - production use-caseData exposure in Azure - production use-case
Data exposure in Azure - production use-caseAlexander Laysha
 
High throughput data streaming in Azure
High throughput data streaming in AzureHigh throughput data streaming in Azure
High throughput data streaming in AzureAlexander Laysha
 
Multi-Tenant Hybrid Solution based on Hybrid Connections & App Service
Multi-Tenant Hybrid Solution based on Hybrid Connections & App ServiceMulti-Tenant Hybrid Solution based on Hybrid Connections & App Service
Multi-Tenant Hybrid Solution based on Hybrid Connections & App ServiceAlexander Laysha
 
Implement API Gateway using Azure API Management
Implement API Gateway using Azure API ManagementImplement API Gateway using Azure API Management
Implement API Gateway using Azure API ManagementAlexander Laysha
 
Usage of Reliable Actors in Azure Service Fabric
Usage of Reliable Actors in Azure Service FabricUsage of Reliable Actors in Azure Service Fabric
Usage of Reliable Actors in Azure Service FabricAlexander Laysha
 
Monitoring of distributed app hosted in Azure App Service
Monitoring of distributed app hosted in Azure App ServiceMonitoring of distributed app hosted in Azure App Service
Monitoring of distributed app hosted in Azure App ServiceAlexander Laysha
 

More from Alexander Laysha (6)

Data exposure in Azure - production use-case
Data exposure in Azure - production use-caseData exposure in Azure - production use-case
Data exposure in Azure - production use-case
 
High throughput data streaming in Azure
High throughput data streaming in AzureHigh throughput data streaming in Azure
High throughput data streaming in Azure
 
Multi-Tenant Hybrid Solution based on Hybrid Connections & App Service
Multi-Tenant Hybrid Solution based on Hybrid Connections & App ServiceMulti-Tenant Hybrid Solution based on Hybrid Connections & App Service
Multi-Tenant Hybrid Solution based on Hybrid Connections & App Service
 
Implement API Gateway using Azure API Management
Implement API Gateway using Azure API ManagementImplement API Gateway using Azure API Management
Implement API Gateway using Azure API Management
 
Usage of Reliable Actors in Azure Service Fabric
Usage of Reliable Actors in Azure Service FabricUsage of Reliable Actors in Azure Service Fabric
Usage of Reliable Actors in Azure Service Fabric
 
Monitoring of distributed app hosted in Azure App Service
Monitoring of distributed app hosted in Azure App ServiceMonitoring of distributed app hosted in Azure App Service
Monitoring of distributed app hosted in Azure App Service
 

Миграция в Azure Service Fabric

  • 1. Миграция в Azure Service Fabric Александр Лайша Chief Software Engineer, EPAM
  • 2. Цели IoT проект на базе Cloud Services Знакомство с Service Fabric Архитектура с Azure Service Fabric Узнаем что может Azure Service Fabric, из чего он состоит внутри и как его можно использовать Познакомимся c примером архитектуры на базе Azure Service Fabric предыдущего IoT проекта и разберём преимущества Рассмотрим архитектуру для части функционала реального IoT проекта на базе Cloud Services и поговорим о возможных улучшениях
  • 4. Машины, девайсы и облако HTTPTCP/IP Microsoft Azure
  • 5. Какой функционал будем рассматривать? Отправка телеметрии Отслеживание движения автомобиля Сигналы тревоги и отправка уведомлений (SMS, Email, Push) Отправка команд на автомобиль Обработка ответа команды
  • 6. Отправка телеметрии Телеметрия (пакет) DeviceCache [Azure Redis] Информация о девайсе JSON IncomingMessagesHub [Event Hub] TelemetryReceiver [Worker Roles] JSON Информация для аутентификации GatewayDB [SQL Azure] IoTGateway [Worker Roles] Установка TCP соединения
  • 7. Отслеживание движения автомобиля TelemetryReceiver [Worker Roles] TripCoordinates [Azure Table] Текущие координаты WebPortal, RESTful API [Web Roles] SignalRBackplane [Azure Service Bus] BrokeredMessage
  • 8. Сигналы тревоги и отправка уведомлений TelemetryReceiver [Worker Roles] WebPortal, RESTful API [Web Roles] 10 последних или список NotificationSettingsCache [Azure Redis] Настройки DeviceAlerts [Azure Table] NotificationEngine [Worker Roles] BrokeredMessage NotificationTopic [Azure Service Bus Topic]
  • 9. Отправка команд на автомобиль WebPortal, RESTful API [Web Roles] HTP Команда TrackingId CommandStatusCache [Azure Redis] Статус выполнения Id = TrackingId, Status = InProgress IoTGateway [Worker Roles] JSON TrackingId JSON OutcomingMessagesHub [Event Hub] TrackingId Команда (пакет) TrackingId DeviceCache [Azure Redis] Информация о подключённом девайсе
  • 10. Обработка ответа команды DeviceCache [Azure Redis] Информация для аутентификации GatewayDB [SQL Azure] Ответ команды (пакет) IoTGateway [Worker Roles] TrackingId JSON IncomingMessagesHub [Event Hub] TrackingId TelemetryReceiver [Worker Roles] JSON TrackingId CommandStatusCache [Azure Redis] Обновлённый статус Id = TrackingId
  • 11. Инфраструктура Web Roles [WebPortal, RESTful API] Worker Roles [NotificationEngine, IoTGateway, TelemetryReceiver] Azure Cloud Service Azure Redis [DeviceCache, CommandStatusCache, NotificationSettingsCache] SQL Azure [GatewayDB] Azure Storage Table [DeviceAlerts, TripCoordinates] Storages Event Hub [OutcomingMessagesHub, IncomingMessagesHub] Service Bus [SignalRBackplane, NotificationTopic] Messaging
  • 12. Какие есть недостатки? TelemetryReceiver – большой монолит Масштабирование ролей по отдельности Медленный деплоймент и масштабирование Простаивание вычислительных мощностей Дополнительные затраты на кеш Нагрузка на storage при частых записях и чтених
  • 14. Что такое Azure Service Fabric? Микросервисы Подсистема связи Обнаружение служб Подсистема управления Развёртывание, обновление и мониторинг Подсистема надежности Надёжность, доступность, репликация, оркестрация Подсистема хостинга Жизненный цикл приложения Подсистема тестирования Симуляция неисправностей, тестирование в рабочей среде Подсистема федерации Объединяет различные узлы в единый унифицированный кластер Транспортная подсистема Безопасный "точка-точка” канал Модели программирования Azure Windows Server Linux Облако провайдера Windows Server Linux Service Fabric Частное облако Windows Server Linux High Availability Hyper-Scale Hybrid Operations High Density Rolling Upgrades Stateful services Low Latency Fast startup & shutdown Container Orchestration & lifecycle management Replication & Failover Simple programming models Load balancing Self-healingData Partitioning Automated Rollback Health Monitoring Placement Constraints
  • 15. Service Fabric Кластер Эволюция Cloud Services Node Type #1 Node Type #2 Node Type #2 Node Type #2 Node Type #2 Node Type #1 Node Type #2 Web AppAPI Background App #2 Background App #1 Cloud Services
  • 16. Модели программирования Микросервисы Reliable Services API верхнеуровневая модель программирования, любой транспортный протокол, stateless & stateful Reliable Actors API Actor Model, однопоточная модель программирования, stateless & stateful Инфраструктура Service Fabric Модели программирования Azure Частное облако Облако провайдера Guest Executables Node.js, Java, а также собственные приложения
  • 17. Архитектура с использованием Azure Service Fabric Подзаголовок или имя нового докладчика
  • 18. Отправка телеметрии IoTGateway [Stateful Service] Кеширует информацию для аутентификации всех девайсов (IReliableDictionary<TKey, TValue>) Кеширует информацию для девайса DeviceActor [Stateful Actor] TelemetryReceiver [Stateless Service] IncomingMessagesHub [Event Hub]
  • 19. Отслеживание движения автомобиля DeviceActor [Stateful Actor] TripCoordinates [Azure Table] SignalRBackplane [Azure Service Bus] WebPortal, RESTful API [Stateless Service] Координаты за последние 24 часа DeviceTripActor [Stateful Actor] • Кеширует координаты за последние 24 часа • Сохраняет координаты пачками (100 или в течении 1 минуты)
  • 20. Сигналы тревоги и отправка уведомлений DeviceActor [Stateful Actor] DeviceAlertActor [Stateful Actor] Кеширует последние 10 сигналов с девайса WebPortal, RESTful API [Stateless Service] Список сигналов тревоги • Кеширует настройки для нотификаций • Буферизует сообщений для отправки в IReliableQueue и делает рассылку в фоне NotificationEngine [Stateful Service, Range partitioning] Сообщение для отправки Partition N DeviceAlerts [Azure Table] Сигнал тревоги
  • 21. Отправка команд на автомобиль TrackingId OutcomingMessagesHub [Event Hub] Команда (пакет) TrackingId Состояние девайса DeviceActor [Stateful Actor] • ActorId = DeviceId • Коллекция отправленных команд (State, CmdName, TrackingId) DeviceCommandActor [Stateful Actor] WebPortal, RESTful API [Stateless Service] HTP Команда IoTGateway [Stateful Service] JSON TrackingId
  • 22. Обработка ответа команды JSON IncomingMessagesHub [Event Hub] TrackingId Ответ команды (пакет) IoTGateway [Stateful Service] TrackingId DeviceActor [Stateful Actor] JSON TrackingId TelemetryReceiver [Stateless Service] Обновлённый статус и результат выполнения DeviceCommandActor [Stateful Actor]
  • 23. Инфраструктура Azure Service Fabric SQL Azure [GatewayDB] Azure Storage Table [DeviceAlerts, TripCoordinates] Storages Stateless Services [WebPortal, RESTful API] NodeType #1 Stateful Actor Services [Device Actor, DeviceTripActor, DeviceAlertActor, DeviceCommandActor] Stateful Services [IoTGateway, NotificationEngine] Stateless Services [TelemetryReceiver] NodeType #2 Event Hub [OutcomingMessagesHub, IncomingMessagesHub] Service Bus [SignalRBackplane] Messaging
  • 24. Что улучшилось? Монолита больше нету Версионирование сервисов Быстрый деплоймент Высокая утилизация физических ресурсов Отсутствие необдходимости в Azure Redis Уменьшение нагрузки на Storage Увеличение производительности
  • 25. Полезные ресурсы Официальная документация Azure Service Fabric: https://azure.microsoft.com/en- us/documentation/services/service-fabric Книга «Programming Microsoft Azure Service Fabric»: http://www.amazon.com/Programming- Microsoft-Service-Developer-Reference/dp/1509301887 Паттерны и Антипаттерны Azure Service Fabric: https://acom-swtest-2.azurewebsites.net/en- gb/documentation/articles/service-fabric-reliable-actors-patterns-introduction Pub-Sub для Reliable Actors: https://www.nuget.org/packages/ServiceFabric.PubSubActors
  • 26. Что дальше Service Fabric рулит! Читайте и пишите много кода Давайте общаться! Книга «Programming Microsoft Azure Service Fabric (Developer Reference)» ещё не выпущена, но доступна для пред-заказа. Я перехожу в зону вопросов и ответов. Напишите мне в твиттере, если не можете найти и хотите пообщаться. Мигрируйте и разрабатывайте на базе микросервисов и Azure Service Fabric
  • 27. Q&A Миграция в Azure Service Fabric Александр Лайша layshaalex@gmal.com @layshaalexander