Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Реализация бессерверного
бэкенда на базе AWS
Василий Сочинский, Upmind
Кирилл Потехин, Upmind
О чём мы будем рассказывать?
• Тенденции в разработке бэкенда приложений
• Реализация бессерверного бэкенда
мобильного при...
• Разработка логики
приложения
• Администрирование
• Отказоустойчивость
• Масштабирование
• Безопасность
• Разработка логи...
Mobile vs Backend
• Разработка логики
приложения
Идеальный бэкенд
• Удобный для разработки
• Простой в администрировании
• Быстро масштабируемый
• Надёжный и безопасный
• ...
Дата-центр AWS EC2 Контейнеры AWS Lambda
Немного истории
Функции Данные
Что такое приложение?
События инициируют

взаимодействие
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
Персонализированная лента постов
• Авторизовать пользователя
• Достать из БД рекомендованные ему посты
• Вернуть результат...
AWS Cognito
• Авторизация пользователей
• Поддержка гостевого доступа
• Синхронизация данных между
устройствами
AWS Lambda
• Требуется только загрузить код функции
• HTTP-запросы, таймеры и другие виды
триггеров
• Администрирование же...
AWS DynamoDB
• Облачная NoSQL база данных
• Поддержка триггеров
• Взаимодействие осуществляется
через SDK
• Оплата за коли...
Архитектура взаимодействия
{Получение доступа к AWS
{
{
Создание клиента

для работы с данными
Получение и запись

данных пользователя
{
{
Сохранение пользователя

в DynamoDB
Получение пользователя

из DynamoDB
{Права на доступ

к DynamoDB
{Права на доступ

к Соgnito
{Права на доступ

к Lambda
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
AWS API Gateway
• Кэширование результата запросов
• Генерация SDK для клиентов (iOS, Android,
Javascript)
• Организация ве...
Архитектура взаимодействия
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
Работа с медиа-контентом
• Возможность загружать медиа в посты
• Модерация и обработка загружаемых
файлов
• Скорость загру...
AWS S3
• Надёжность хранения данных на уровне
99,999999999%
• Триггеры на различные типы событий с
файлами
• Несколько кла...
Архитектура взаимодействия
{Получение доступа к S3
{
{
Загрузка файла в S3
Отслеживание прогресса

загрузки/скачивания файла
{Скачивание файла из S3
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
Аналитика / рекомендации
• Отправка эвентов о действиях
пользователя
• Большая пропускная способность
• Обработка эвентов ...
AWS Kinesis
• Приём и обработка потоковых данных
• Высокая пропускная способность
(десятки тысяч записей в секунду)
• Опла...
AWS SNS
• Пуш-уведомления, email, вебхуки
• Гибкий таргетинг
• Встроенная аналитика о доставке
сообщений
Архитектура взаимодействия
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
Цели достигнуты!
• Удобный для разработки
• Простой в администрировании
• Быстро масштабируемый
• Надёжный и безопасный
• ...
Цели достигнуты!
• Надёжный и безопасный
• Быстро масштабируемый
• Гибкий
• Простой в администрировании

“No server is eas...
Немного о мониторинге и devops
• AWS CloudWatch — логи и мониторинг
• Изменение пропускной способности
DynamoDB
• Serverle...
Опыт Upmind
• Сделали полностью бессерверный бэкенд
• Отказались от системных администраторов
• Сэкономили на инфраструкту...
Авторизация
AWS Cognito
Бизнес-логика
AWS Lambda
Аналитика
AWS Kinesis +

сторонние сервисы
Медиа-контент
AWS S3
Пуш-уведо...
https://www.linkedin.com/in/vsochinsky

https://www.linkedin.com/in/kpotehin
Спасибо за внимание!
Upcoming SlideShare
Loading in …5
×

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

482 views

Published on

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

Published in: Engineering
  • Be the first to comment

Реализация бессерверного бэкенда мобильного приложения на базе 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 Спасибо за внимание!

×