Бессерверный бэкенд на базе AWS (РИТ2016)

50 %
50 %
Information about Бессерверный бэкенд на базе AWS (РИТ2016)

Published on June 7, 2016

Author: vsochinsky

Source: slideshare.net

1. Реализация бессерверного бэкенда на базе AWS Василий Сочинский, Upmind Кирилл Потехин, Upmind

2. О чём мы будем рассказывать? • Тенденции в разработке бэкенда приложений • Реализация бессерверного бэкенда мобильного приложения на базе AWS • Наш опыт перехода от существующего бэкенда к рассматриваемому решению

3. • Разработка логики приложения • Администрирование • Отказоустойчивость • Масштабирование • Безопасность • Разработка логики приложения Mobile vs Backend

4. Mobile vs Backend • Разработка логики приложения

5. Идеальный бэкенд • Удобный для разработки • Простой в администрировании • Быстро масштабируемый • Надёжный и безопасный • Дешёвый

6. Дата-центр AWS EC2 Контейнеры AWS Lambda Немного истории

7. Функции Данные Что такое приложение? События инициируют
 взаимодействие

8. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система

9. Персонализированная лента постов • Авторизовать пользователя • Достать из БД рекомендованные ему посты • Вернуть результат клиенту

10. AWS Cognito • Авторизация пользователей • Поддержка гостевого доступа • Синхронизация данных между устройствами

11. AWS Lambda • Требуется только загрузить код функции • HTTP-запросы, таймеры и другие виды триггеров • Поддержка Java, Javascript и Python • Администрирование железа и ПО осуществляет AWS • Автоматическое масштабирование • Оплата только за фактическую работу функций

12. AWS DynamoDB • Облачная NoSQL база данных • Поддержка триггеров • Взаимодействие осуществляется через SDK • Оплата за количество операций в секунду и объём данных

13. Архитектура взаимодействия

14. {Получение доступа к AWS { { Создание клиента
 для работы с данными Получение и запись
 данных пользователя

15. { { Сохранение пользователя
 в DynamoDB Получение пользователя
 из DynamoDB

16. {Права на доступ
 к DynamoDB {Права на доступ
 к Соgnito {Права на доступ
 к Lambda

17. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система

18. AWS API Gateway • Кэширование результата запросов • Генерация SDK для клиентов (iOS, Android, Javascript) • Организация версионности и окружений API • Интеграция с CDN • Поддержка кастомной аутентификации

19. Архитектура взаимодействия

20. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система

21. Работа с медиа-контентом • Возможность загружать медиа в посты • Модерация и обработка загружаемых файлов • Скорость загрузки и надёжность хранения данных

22. AWS S3 • Надёжность хранения данных на уровне 99,999999999% • Триггеры на различные типы событий с файлами • Несколько классов хранилищ данных

23. Архитектура взаимодействия

24. {Получение доступа к S3 { { Загрузка файла в S3 Отслеживание прогресса
 загрузки/скачивания файла {Скачивание файла из S3

25. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система

26. Аналитика / рекомендации • Отправка эвентов о действиях пользователя • Большая пропускная способность • Обработка эвентов по заданным правилам • Отправка пушей/писем клиенту

27. AWS Kinesis • Приём и обработка потоковых данных • Высокая пропускная способность (десятки тысяч записей в секунду) • Оплата за выделенное количество шардов

28. AWS SNS • Пуш-уведомления, email, вебхуки • Гибкий таргетинг • Встроенная аналитика о доставке сообщений

29. Архитектура взаимодействия

30. Social blogging app Персонализированная лента постов Создание постов с медиа-контентом Аналитика и рекомендательная система

31. Цели достигнуты! • Удобный для разработки • Простой в администрировании • Быстро масштабируемый • Надёжный и безопасный • Дешёвый

32. Цели достигнуты! • Надёжный и безопасный • Быстро масштабируемый • Гибкий • Простой в администрировании
 “No server is easier to manage than no server” • Оплата только за реальной использование • Низкий TTM

33. Немного о мониторинге и devops • AWS CloudWatch — логи и мониторинг • Изменение пропускной способности DynamoDB • Serverless фреймворк — организация процесса разработки • AWS CloudFormation — создание инфраструктуры с помощью шаблонов

34. Опыт Upmind • Сделали полностью бессерверный бэкенд • Отказались от системных администраторов • Сэкономили на инфраструктуре ~ 60% • Увеличилась скорость разработки • Для некоторых задач использование серверов всё равно эффективней

35. Авторизация AWS Cognito Бизнес-логика AWS Lambda Аналитика AWS Kinesis +
 сторонние сервисы Медиа-контент AWS S3 Пуш-уведомления AWS SNS Хранение данных AWS DynamoDB AWS API Gateway

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

Add a comment