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

Построение аналитики мобильного приложения на основе Serverless технологий

Построение аналитики мобильного приложения на основе Serverless технологий

Виталий Давыдов (Alan Turing Institute) @ Moscow Python Meetup 51
"Делать аналитику на стороне клиента бывает долго и неудобно. Часто это требует создания нового релиза. В докладе будет рассмотрена архитектура системы серверной аналитики с использованием Serverless технологий на примере AWS Lambda и других сервисов AWS".
Видео: http://www.moscowpython.ru/meetup/51/mobile-app-analytics/

Moscow Python Meetup

December 21, 2017
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Идеальный бэкенд • Быстрое прототипирование • Удобный для разработки •

    Простой в администрировании • Быстро масштабируемый • Надёжный и безопасный • Cost-effective 2
  2. Serverless • Сервера есть, просто мы о них не думаем

    • Отсутствие состояния • Инфраструктура не требует администрирования • Автоматическое масштабирование • Оплата только за фактическое использование 5
  3. Наш кейс: мобильная аналитика Клиентская Серверная • Удобный SDK для

    внешней аналитики • Быстрое подключение новых систем аналитики • Произвольный язык программирования • Возможность создания своей системы аналитики • Невозможно быстро фиксить • Требует отдельного релиза мобильного приложения • Работа напрямую с API • Нужно написать клиентскую очередь событий 6
  4. AWS Kinesis • Apacha Kafka as a Service • Высокая

    пропускная способность (десятки тысяч записей в секунду) • Оплата за выделенное количество шардов • Есть мобильный SDK для кэширования Kinesis Producers = Mobile apps Consumers = Whatever 8
  5. AWS Lambda • Serverless от AWS • Требуется только загрузить

    код функции • HTTP-запросы, таймеры, события в сервисах AWS и другие виды триггеров • Поддержка C#, Java, Javascript, Python • Администрирование железа и ПО осуществляет AWS • Автоматическое масштабирование • Оплата только за фактическую работу функций 10
  6. Архитектура • Mapping событий • Сохранение событий в MongoDB •

    Отправка событий в другие системы аналитики 13
  7. Особенности системы • Быстро подключается любая внешняя система аналитики •

    Быстро заменяемые компоненты • Можно писать на любом языке (но не нужно) • Библиотеки нужно заливать вместе с логикой • Бинарные библиотеки нужно собирать под AWS Linux • Лучше деплоить из Docker 15
  8. Менеджмент Lambda Функций: Serverless Framework • Менеджмент Serverless функций •

    Единый файл конфигурации • Переменные окружения • Поддержка AWS, Azure, Google Cloud и IBM • Поддержка всех доступных языков 16
  9. Что еще можно делать на Serverless? • WSGI приложения (Django,

    Flask, …) • Сайты • Telegram ботов • MapReduce подобную архитектуру 17
  10. Для чего Serverless не подойдет? • CPU/GPU intensive задач •

    При ограниченных ресурсах RAM • Очень быстрых ответов (“холодный” старт) 18