Выступаю на IT-мероприятиях и веду IT-сообщество в Питере
Облачные платформы
Набор интегрированных сервисов, для хранения данных, вычислений и много другого в облачной инфраструктуре
Провайдер предоставляет инфраструктуру и системный софт
Вы решаете задачи бизнеса
Главная мысль
Облачные платформы позволяют вам меньше думать про инфраструктуру и технологии, а больше про бизнес и его задачи
Сервисы и возможности AWS
Инфраструктура AWS
Region - географическое место расположение группы дата-центров
Availablility zone - независимый дата-центр
В каждом регионе, минимум 2 availablility zone
Сервисы AWS
Всего их больше 100, но несколько основных мы рассмотрим сегодня:
S3 - файловое хранилище
Lambda - облачные функции
API Gateway - API и роутинг
DynamoDB - распределенная NoSQL база данных
EC2 - сервера
CloudFront - CDN
SQS - очередь сообщений
Serverless
Что такое serverless
Подход к разработке, при котором, для исполнения логики, используются бессерверные вычисления: облачные функции и/или serverless-контейнеры. Большая часть инфраструктуры(или она вся), при этом, также поставляется провайдером
Мы не арендуем сервера, не разворачиваем и не поддерживаем сами ПО на серверах и т.д.
Платим только за использованные ресурсы
Области применения
Автоматизация инфраструктуры
Обработка данных
API и cайты
Популярные ЯП в serverless
Node.js
Python
Golang
Облачная функция (лямбда)
Запускается на серверах провайдера
По умолчанию: на каждый запрос новый экземпляр (как PHP)
Автоскейлинг: чем больше запросов, тем больше лямбд запускается
Serverless стек
Вычисления
Lambda
Serverless Containers
Triggers
API Gateway
Сервисы данных
S3
DynamoDB
SQS
Kinesis
Событийно-ориентированная архитектура
Без событий, ваша система "спит". Ничего не "крутится" на сервере
Ассинхронность - ключевой принцип
Stateless - (почти) не можете хранить состояние в памяти
Примеры событий
Запрос на API
Вызов по расписанию
Запись в базу данных
Появление сообщения в очереди
Простая serverless-архитектура
Преимущества
Не думаем про инфраструктуру
Автоматическое масштабирование
Pay as you go: без нагрузки, цена: ~0$
Стоимость напрямую зависит от качества кода и архитектуры
Хорошо подходит для MVP, PoC и B2B сервисов с небольшим трафиком
Слабые стороны
Vendor-lock
С плохой архитектурой, можно попасть на деньги
С определенной нагрузки, дороже, чем сервера
Холодный старт лямбд
Паттерн "Монолитная lambda"
Пишем небольшое монолитное приложение, используя средний фреймворк
Подключаем адаптер для запросов из api gateway
Запаковываем приложение в бандл, например с webpack
Создаем лямбду и загружаем в нее наш бандл
Profit!
Кейсы
AI Boost
Приложение, для создания и обработки картинок с помощью AI. Основное приложение под IOS, но в разработке PWA под web и Android
API: монолитная лямбда
Scheduled jobs на лямбдах
Данные: Dynamodb, SQS, S3, EFS, Google Sheets
ML-скрипты на EC2
Polyglot
Сервис для локализации приложений. Готов SDK для IOS и частично под web, остальные платформы в разработки