1. Project Pegasus
IoT в небе, на земле и со скоростью звука
Белоцерковский
Александр
Tech Evangelist,
Cloud & Open Source
Microsoft Russia
2. План доклада
Что такое Project Pegasus и в чем суть?
Архитектура ядра системы + модель акторов
Результаты использования модели акторов в сложных условиях
Планы
3. Project Pegasus I
концепция и цели на раз-два-три
Раз – готовим воздушный шар, оборачиваем вокруг него много
технологий и отправляем в near space (высота - как получится на
максимуме, получилось 33.76 км.)
Два – кидаем клич внутри Microsoft и ищем тех, кто готов потратить
личное время на воздушный шар, которого он не увидит
Три – проверяем технологии и инструменты на прочность в необычных
условиях
4.
5.
6.
7.
8.
9. Project Pegasus II
концепция и цели на раз-два-три-четыре
Раз – готовим модуль для North American Eagle, оборачиваем его в
современный технологический ландшафт и отправляем ехать со
скоростью 769 км/ч.
Два – кидаем клич внутри Microsoft и ищем тех, кто готов потратить
личное время на воздушный шар, которого он не увидит
Три – проверяем технологии и инструменты на прочность в необычных
условиях (2048 измерений/секунду с каждого из 28 сенсоров)
Четыре – используем то же ядро, что в Pegasus I
10.
11.
12. Project Pegasus
общая архитектура
Piraeus
Flight Operations
Gateway
Channels
Protocols
Protocol Adapters
Authentication
Orleans
Redis Storage Provider
System Graphs – Virtual Actors
CAPL Access Control
Service
Event HubsStream Analytics
User Message
Web service
SMS
Web service
Twilio
Web Purify
HTTP/REST POST
User Experience
Launch
Field
Gateway
Mobile
Field
Gateway
GPSGPS
Media Services
WebSocket
CoAP
Telemetry
UserMessages
WebSocket
CoAP
Telemetry
Mission ControlRemote Intelligence
Multi-Channel Redundant
WebSocket
CoAP
Telemetry
Commands
WebSocket
CoAP
Telemetry
Commands
Azure Queue
Web Job
Web Job
WebSocket
CoAP
Telemetry
UserMessages
Commands
WebSocket
CoAP
Telemetry
UserMessages
Commands
Pegasus II-UAV
High Altitude Science
100K ft
REST
Management
API
Security
Access
Control
Iridium SatellitesIridium SatellitesIridium Satellites
Satellite
Communications
SatComm Service
Send Grid
Service
Azure Blob
Storage
13. Piraeus
Жизненный цикл запроса
Resource
Получает информацию от ESA и
отправляет по Subscriptions
Subscription
Получает информацию от Resource. Если
у Subscription есть Observer, то он
уведомляется, иначе Subscription
открывает канал к ESA и отправляет
сообщение напрямую туда.
Subscription Observer
Привязан к инстансу адаптера
протокола в канале ESA. Получает
сигнал от Subscription и делает push в
канал ESA. Если нужно, в процессе
происходит конвертация протокола.
Симметричные коммуникации – все актёры
могут общаться по одному каналу в две
стороны в одном «контексте»
Gateway Orleans
Resource
Subscription
Subscription
Observer
Subscription
Protocol
Adapter
Protocol
Adapter
ESA
ESA
Active Channel
Bidirectional
Passive Channel
One-Way Storage Blob
Service Bus
Event Hubs
DocumentDB
REST Web Service
Storage queue
14. Piraeus
Архитектура и имплементация
Piraeus
Gateway – Web Role
Channel
Protocol
ProtocolAdapter
Orleans-Worker Role
Topic
Subscription Subscription
Subscription Subscription
Redis Cache
Web-Role Management API
Storage Blob
Service Bus
Event Hubs
DocumentDB
REST Web Service
Storage queue
Active
PowerShell Commands
STS
TRUST
Authentication
Access Control
Passive
Модель акторов
Project Orleans
Microsoft Azure
CAPL security
15. Архитектура - модель акторов
Каждый актор – stateful
Когда актор получает сообщение, он может:
• Отправить сообщение другому актору
• Создать нового актора (активировать)
• Изменить собственное состояние
Нет гарантии порядка в доставке сообщений
Масса имплементаций – Erlang, Akka, .NET…
16. Фреймворк - Project Orleans
.NET имплементация модели акторов
Разработка Microsoft Research
Цель:
Дать разработчикам простую для
масштабирования систему
Вычислительные «юниты» - Grains & Silos
17. Хостинг - Microsoft Azure
Cloud Services – stateless PaaS
Web – FE
Worker – BE
Cloud Services => Service Fabric
18. Безопасность
Тоже актеры
Claims Authorization Policy Language (CAPL)
Собственная имплементация
Расширяемый, сериализуемый, на основе логики и
claims, язык «разметки» безопасности
OSS http://www.github.com/skunklab/capl
Каждый объект - Orleans Actor/Grain
Время жизни – микросекунды
22. Дальше
Планы
Piraeus будет выложен в Open Source (скорректированная
ориентировка – конец апреля)
Запуск в августе – 3+ воздушных шара, отправляемся 21 августа на
высоту 30+ км. снимать затмение. Stay tuned
Дневник проекта - https://pegasusmission.com
Orleans: http://aka.ms/orleans
Видео - Actor Model with Hewitt, Meijer and Szyperski bit.ly/1nOAtW9