Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Александр Белоцерковский (Microsoft), Backend Pegasus Mission — IoT в небе, на земле и со скоростью звука, CodeFest 2017

CodeFest
February 01, 2018

Александр Белоцерковский (Microsoft), Backend Pegasus Mission — IoT в небе, на земле и со скоростью звука, CodeFest 2017

https://2017.codefest.ru/lecture/1152

Pegasus Mission — IoT-проект, возникший как технологическая коллаборация энтузиастов со всего мира, работающих в Microsoft. Цель проекта — проверить на прочность технологии, лежащие в основе IoT, во "враждебных" условиях — сбор данных в реальном времени, трансляция видео и анализ происходящего. Первой и второй частью миссии был запуск собственной системы в ближний космос, третьей — проверка ее работы на скорости звука с North American Eagle. В докладе будет рассказано о том, как была построена архитектура решения в облаке и на земле, зачем там Actors, как была организована совместная работа и о полученном опыте.

CodeFest

February 01, 2018
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. Project Pegasus IoT в небе, на земле и со скоростью

    звука Белоцерковский Александр Tech Evangelist, Cloud & Open Source Microsoft Russia
  2. План доклада Что такое Project Pegasus и в чем суть?

    Архитектура ядра системы + модель акторов Результаты использования модели акторов в сложных условиях Планы
  3. Project Pegasus I концепция и цели на раз-два-три Раз –

    готовим воздушный шар, оборачиваем вокруг него много технологий и отправляем в near space (высота - как получится на максимуме, получилось 33.76 км.) Два – кидаем клич внутри Microsoft и ищем тех, кто готов потратить личное время на воздушный шар, которого он не увидит Три – проверяем технологии и инструменты на прочность в необычных условиях
  4. Project Pegasus II концепция и цели на раз-два-три-четыре Раз –

    готовим модуль для North American Eagle, оборачиваем его в современный технологический ландшафт и отправляем ехать со скоростью 769 км/ч. Два – кидаем клич внутри Microsoft и ищем тех, кто готов потратить личное время на воздушный шар, которого он не увидит Три – проверяем технологии и инструменты на прочность в необычных условиях (2048 измерений/секунду с каждого из 28 сенсоров) Четыре – используем то же ядро, что в Pegasus I
  5. Project Pegasus общая архитектура Piraeus Flight Operations Gateway Channels Protocols

    Protocol Adapters Authentication Orleans Redis Storage Provider System Graphs – Virtual Actors CAPL Access Control Service Event Hubs Stream Analytics User Message Web service SMS Web service Twilio Web Purify HTTP/REST POST User Experience Launch Field Gateway Mobile Field Gateway GPS GPS Media Services Web Socket CoAP Telemetry User Messages Web Socket CoAP Telemetry Mission Control Remote Intelligence Multi-Channel Redundant Web Socket CoAP Telemetry Commands Web Socket CoAP Telemetry Commands Azure Queue Web Job Web Job Web Socket CoAP Telemetry User Messages Commands Web Socket CoAP Telemetry User Messages Commands Pegasus II-UAV High Altitude Science 100K ft REST Management API Security Access Control Iridium Satellites Iridium Satellites Iridium Satellites Satellite Communications SatComm Service Send Grid Service Azure Blob Storage
  6. 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
  7. Piraeus Архитектура и имплементация Piraeus Gateway – Web Role Channel

    Protocol Protocol Adapter 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
  8. Архитектура - модель акторов Каждый актор – stateful Когда актор

    получает сообщение, он может: • Отправить сообщение другому актору • Создать нового актора (активировать) • Изменить собственное состояние Нет гарантии порядка в доставке сообщений Масса имплементаций – Erlang, Akka, .NET…
  9. Фреймворк - Project Orleans .NET имплементация модели акторов Разработка Microsoft

    Research Цель: Дать разработчикам простую для масштабирования систему Вычислительные «юниты» - Grains & Silos
  10. Хостинг - Microsoft Azure Cloud Services – stateless PaaS Web

    – FE Worker – BE Cloud Services => Service Fabric
  11. Безопасность Тоже актеры Claims Authorization Policy Language (CAPL) Собственная имплементация

    Расширяемый, сериализуемый, на основе логики и claims, язык «разметки» безопасности OSS http://www.github.com/skunklab/capl Каждый объект - Orleans Actor/Grain Время жизни – микросекунды
  12. Round Trip Latency (avg 12-16 ms) Piraeus Цифры Azure –

    VM – A0 WebApp Premium Live – 15 000 Data – 2048/sec * 28 sensors
  13. 0 2 4 6 8 10 12 14 16 18

    0 5 10 15 20 25 30 Avg Latency (ms) # Clients Piraeus Perf 1000-ms 500-ms 100-ms
  14. 0 2 4 6 8 10 12 14 16 18

    0 5 10 15 20 25 StDev (ms) # Clients Piraeus Latency StDev 1000-ms 500-ms 100-ms
  15. Дальше Планы 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