Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Реализация бессерверного
бэкенда на базе AWS
Василий Сочинский, Upmind
Кирилл Потехин, Upmind
О чём мы будем рассказывать?
• Тенденции в разработке бэкенда приложений
• Реализация бессерверного бэкенда
мобильного приложения на базе AWS
• Наш опыт перехода от существующего бэкенда
к рассматриваемому решению
• Разработка логики
приложения
• Администрирование
• Отказоустойчивость
• Масштабирование
• Безопасность
• Разработка логики
приложения
Mobile vs Backend
Mobile vs Backend
• Разработка логики
приложения
Идеальный бэкенд
• Удобный для разработки
• Простой в администрировании
• Быстро масштабируемый
• Надёжный и безопасный
• Дешёвый
Дата-центр AWS EC2 Контейнеры AWS Lambda
Немного истории
Функции Данные
Что такое приложение?
События инициируют

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

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

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

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

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

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

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

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

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

“No server is easier to manage than no server”
• Оплата только за реальной использование
• Низкий TTM
Немного о мониторинге и devops
• AWS CloudWatch — логи и мониторинг
• Изменение пропускной способности
DynamoDB
• Serverless фреймворк — организация
процесса разработки
• AWS CloudFormation — создание
инфраструктуры с помощью шаблонов
Опыт Upmind
• Сделали полностью бессерверный бэкенд
• Отказались от системных администраторов
• Сэкономили на инфраструктуре ~ 60%
• Увеличилась скорость разработки
• Для некоторых задач использование
серверов всё равно эффективней
Авторизация
AWS Cognito
Бизнес-логика
AWS Lambda
Аналитика
AWS Kinesis +

сторонние сервисы
Медиа-контент
AWS S3
Пуш-уведомления
AWS SNS
Хранение данных
AWS DynamoDB
AWS API Gateway
https://www.linkedin.com/in/vsochinsky

https://www.linkedin.com/in/kpotehin
Спасибо за внимание!

More Related Content

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