Comments 10
за отказ от java тебя еще и наградят. а вообще выглядит как выдумывание трудностей с последующим из успешным (плюшки и бонусы, же) преодолением. если у вас такие проблемы, может "в консерватории что-то поправить надо"?
А что не так с java?
Получается отличный цикл статей. Может, в книгу, чтобы не потерялось?
Лично мне не хватает некоторой визуализации взаимодействия / возникающих проблем / архитектурных решений. И практических примеров "из жизни", почему это вообще актуально
Очень интересная статья, спасибо! Хотелось бы узнать о каких-то реальных примерах использования, а где ещё можно почитать/узнать по теме serverless, может есть конкретные интересные источники?
Проблема №13 – Троттлинг внешних API
Ваше serverless приложение масштабируется бесконечно, а старый банковский шлюз партнера — нет. Вы его задудосите.
Решение А: Очереди с задержкой
Плюсы:
Гарантированный порядок и скорость. Вы обрабатываете сообщения строго с той скоростью, которую выдерживает партнер.
Если можно, расскажите подробнее, как очередь с задержкой поддерживает требуемую скорость?
Очередь с задержкой никак не поможет.
Но можно использовать шардированную FIFO очередь (или N FIFO очередей) для регулирования RPM. Например если в текущих условиях лямбде требуется 500мс на 1 запрос в сторонний сервис - 2 запроса в секунду, и у этого сервиса ограничение 100 запросов в секунду - просто делаем 50 шардов (50 FIFO очередей)
Если ситуация обратная, или что то более сложное - можно использовать какой-нибудь distributed rate limiter + простой rate limiter чтобы более точно регулировать скорость (но это добавляет простои в лямбды)
Исчерпание соединений к базе данных
Serverless может мгновенно поднять 1000 инстансов. Если каждый откроет соединение к PostgreSQL, база упадет.
Решение А: Использование NoSQL
Интересный подход, однако…

Архитектура без сервера (serverless): проблемы, решения, практические рекомендации