Upload
ontico
View
304
Download
7
Embed Size (px)
Citation preview
О чём мы будем рассказывать?
• Тенденции в разработке бэкенда приложений
• Реализация бессерверного бэкенда мобильного приложения на базе AWS
• Наш опыт перехода от существующего бэкенда к рассматриваемому решению
• Разработка логики приложения
• Администрирование
• Отказоустойчивость
• Масштабирование
• Безопасность
• Разработка логики приложения
Mobile vs Backend
Идеальный бэкенд
• Удобный для разработки
• Простой в администрировании
• Быстро масштабируемый
• Надёжный и безопасный
• Дешёвый
Social blogging app
Персонализированная лента постов
Создание постов с медиа-контентом
Аналитика и рекомендательная система
Персонализированная лента постов
• Авторизовать пользователя
• Достать из БД рекомендованные ему посты
• Вернуть результат клиенту
AWS Cognito
• Авторизация пользователей
• Поддержка гостевого доступа
• Синхронизация данных между устройствами
AWS Lambda• Требуется только загрузить код функции
• HTTP-запросы, таймеры и другие виды триггеров
• Администрирование железа и ПО осуществляет AWS
• Автоматическое масштабирование
• Оплата только за фактическую работу функций
AWS DynamoDB
• Облачная NoSQL база данных
• Поддержка триггеров
• Взаимодействие осуществляется через SDK
• Оплата за количество операций в секунду и объём данных
{Получение доступа к AWS
{
{
Создание клиента для работы с данными
Получение и записьданных пользователя
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/vsochinskyhttps://www.linkedin.com/in/kpotehin
Спасибо за внимание!