Comments 5
Спасибо за туториал.
Я использую Serverless Containers в своем прод-сервисе, который генерирует картинку на основе архива с данными.
Сам генератор выполняется в группе ВМ и там настроено авто масштабирование при увеличении очереди. И сделано это из-за ограничения с диском в Serverless Container (его там нет, есть только tmpfs на 500 мб).
Все лето я потратил на тесты Serverless YDB, Serverless Containers и Message Queue и пришел к нескольким выводам по этой связке:
В базе могут быть долгие ответы (выше 1 секунды на селект по первичному ключу). В условиях 5 секунд на запрос, можно не успеть. Лучше работает Postgres в виртуалке 20% cpu (см. п. 3 про http веб-сервер). Держать pet-project на этой базе можно смело. Нагрузка меньше 1qps.
В очереди иногда долго отвечает SendMessage. Изначально в очередь писал http-сервис из Serverless Container. Потом перенес http-сервис в постоянную виртуалку с 20% cpu и стало реже долго отвечать SendMessage, но проблема полностью не ушла. Уже общаемся с поддержкой по этому поводу.
http веб-сервер работает хорошо, но иногда бывают то ли проблемы с сетью (она инициализируется медленнее, чем http веб-сервер на Golang), то ли с ресурсами (в логах биллится 5 сек, а первого сообщения в логах из функции main нет). Если вам критично, чтобы запрос отдавался за условные 5-10 сек, то Serverless Container не подойдет. Даже с подготовленным экземпляром (а он по цене примерно так же, как ВМ с 20% cpu). Для фоновых задач по крону или из очереди подходит на отлично.
С нетерпением жду фичу по монтированию s3 бакета в Serverless Container.
Спасибо ребятам, за то, что создали такое. Мощная работа. В РФ аналогов пока не нашел.
Спасибо за обратную связь! Про монтирование бакета - скоро будут апдейты, подключайтесь к трансляции нашего трека на https://scale.yandex.ru/
Насколько это дороже арендуемых VM? Спотовых?
В этом сценарии - несоизмеримо дешевле (почти наверняка бесплатно). А в целом сравнивать можно, если иметь чуть больше данных. Как правило, с serverless сервисами работает подход - если нагрузка плавающая и не очень хорошо прогнозируемая, то их использование часто будет дешевле.
Если нагрузка постоянная и хорошо прогнозируется, то экономическая целесообразность serverless считается заметно сложней, через TCO и потенциальную экономию в процессах разработки, а не в явном виде в инфраструктуре.
Дёшево, сердито и не жмёт: как работает запуск контейнеров в Yandex Serverless Containers