Successfully reported this slideshow.
Your SlideShare is downloading. ×

Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл Потехин, Василий Сочинский (Upmind)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 36 Ad

Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл Потехин, Василий Сочинский (Upmind)

Download to read offline

- Бессерверная архитектура бэкендов.
- Микросервисная архитектура.
- Мобильные бэкенды.
- Облачные технологии.

- Бессерверная архитектура бэкендов.
- Микросервисная архитектура.
- Мобильные бэкенды.
- Облачные технологии.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

More from Ontico (20)

Advertisement
Advertisement

Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл Потехин, Василий Сочинский (Upmind)

  1. 1. Реализация бессерверного бэкенда на базе AWS Василий Сочинский, Upmind Кирилл Потехин, Upmind
  2. 2. О чём мы будем рассказывать? • Тенденции в разработке бэкенда приложений • Реализация бессерверного бэкенда мобильного приложения на базе AWS • Наш опыт перехода от существующего бэкенда к рассматриваемому решению
  3. 3. • Разработка логики приложения • Администрирование • Отказоустойчивость • Масштабирование • Безопасность • Разработка логики приложения Mobile vs Backend
  4. 4. Mobile vs Backend • Разработка логики приложения
  5. 5. Идеальный бэкенд • Удобный для разработки • Простой в администрировании • Быстро масштабируемый • Надёжный и безопасный • Дешёвый
  6. 6. Дата-центр AWS EC2 Контейнеры AWS Lambda Немного истории
  7. 7. Функции Данные Что такое приложение? События инициируют
 взаимодействие
  8. 8. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система
  9. 9. Персонализированная лента постов • Авторизовать пользователя • Достать из БД рекомендованные ему посты • Вернуть результат клиенту
  10. 10. AWS Cognito • Авторизация пользователей • Поддержка гостевого доступа • Синхронизация данных между устройствами
  11. 11. AWS Lambda • Требуется только загрузить код функции • HTTP-запросы, таймеры и другие виды триггеров • Администрирование железа и ПО осуществляет AWS • Автоматическое масштабирование • Оплата только за фактическую работу функций
  12. 12. AWS DynamoDB • Облачная NoSQL база данных • Поддержка триггеров • Взаимодействие осуществляется через SDK • Оплата за количество операций в секунду и объём данных
  13. 13. Архитектура взаимодействия
  14. 14. {Получение доступа к AWS { { Создание клиента
 для работы с данными Получение и запись
 данных пользователя
  15. 15. { { Сохранение пользователя
 в DynamoDB Получение пользователя
 из DynamoDB
  16. 16. {Права на доступ
 к DynamoDB {Права на доступ
 к Соgnito {Права на доступ
 к Lambda
  17. 17. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система
  18. 18. AWS API Gateway • Кэширование результата запросов • Генерация SDK для клиентов (iOS, Android, Javascript) • Организация версионности и окружений API • Интеграция с CDN • Поддержка кастомной аутентификации
  19. 19. Архитектура взаимодействия
  20. 20. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система
  21. 21. Работа с медиа-контентом • Возможность загружать медиа в посты • Модерация и обработка загружаемых файлов • Скорость загрузки и надёжность хранения данных
  22. 22. AWS S3 • Надёжность хранения данных на уровне 99,999999999% • Триггеры на различные типы событий с файлами • Несколько классов хранилищ данных
  23. 23. Архитектура взаимодействия
  24. 24. {Получение доступа к S3 { { Загрузка файла в S3 Отслеживание прогресса
 загрузки/скачивания файла {Скачивание файла из S3
  25. 25. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система
  26. 26. Аналитика / рекомендации • Отправка эвентов о действиях пользователя • Большая пропускная способность • Обработка эвентов по заданным правилам • Отправка пушей/писем клиенту
  27. 27. AWS Kinesis • Приём и обработка потоковых данных • Высокая пропускная способность (десятки тысяч записей в секунду) • Оплата за выделенное количество шардов
  28. 28. AWS SNS • Пуш-уведомления, email, вебхуки • Гибкий таргетинг • Встроенная аналитика о доставке сообщений
  29. 29. Архитектура взаимодействия
  30. 30. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система
  31. 31. Цели достигнуты! • Удобный для разработки • Простой в администрировании • Быстро масштабируемый • Надёжный и безопасный • Дешёвый
  32. 32. Цели достигнуты! • Надёжный и безопасный • Быстро масштабируемый • Гибкий • Простой в администрировании
 “No server is easier to manage than no server” • Оплата только за реальной использование • Низкий TTM
  33. 33. Немного о мониторинге и devops • AWS CloudWatch — логи и мониторинг • Изменение пропускной способности DynamoDB • Serverless фреймворк — организация процесса разработки • AWS CloudFormation — создание инфраструктуры с помощью шаблонов
  34. 34. Опыт Upmind • Сделали полностью бессерверный бэкенд • Отказались от системных администраторов • Сэкономили на инфраструктуре ~ 60% • Увеличилась скорость разработки • Для некоторых задач использование серверов всё равно эффективней
  35. 35. Авторизация AWS Cognito Бизнес-логика AWS Lambda Аналитика AWS Kinesis +
 сторонние сервисы Медиа-контент AWS S3 Пуш-уведомления AWS SNS Хранение данных AWS DynamoDB AWS API Gateway
  36. 36. https://www.linkedin.com/in/vsochinsky
 https://www.linkedin.com/in/kpotehin Спасибо за внимание!

×