Что такое лазурный эквивалент AWS Lambda?

В настоящий момент мы запускаем наше приложение на AWS Beanstalk, но пытаемся определить подходящую Azure.

Наша самая большая проблема - это потраченное впустую процессорное время, за которое мы платим, но не используем. Мы работаем на экземплярах t2.small, так как они имеют минимальное количество оперативной памяти, но мы никогда не используем даже базовое количество выделенного процессорного времени. (20% для t2.small). Нам нужно много мощности процессора во время коротких всплесков дня, и до сих пор все больше экземпляров на линии - это единственный способ справиться с этим. AWS Lambda выглядит неплохо для нас, но у нас есть зависимости от компонентов Windows, таких как SAPI, поэтому мы должны запускаться внутри виртуальных машин Windows.

Посмотрев на облачные сервисы Azure, мы думали, что использование веб-роли будет лучше всего подходит для нашего приложения, но, похоже, веб-роль - это не что иное, как виртуальная машина Win 2012 с поддержкой IIS. Так как приложение масштабируется, это просто приводит к появлению большего количества этих виртуальных машин, что и есть то, что у нас есть на данный момент. Есть ли у Azure сервис, похожий на Lambda, где вы платите только за время обработки процессора, которое вы используете? Причиной нашего неэффективного использования ресурсов ЦП является то, что наше приложение для генерации речи использует потерянные сторонние голоса, но при вызове в SAPI может работать только однопоточно, поскольку речевой движок подвержен сбою при многопоточности. У нас нет контроля над этим голосом. Он должен иметь доступ к системному реестру и Windows SAPI, поэтому идеальным решением является как-то обернуть все зависимости, это пакет и развернуть его на Azure, а затем запустить несколько экземпляров этого. Что "this" у меня нет идеи

Ответ 1

Microsoft только что анонсировала новую службу безсерверного вычисления как альтернативу AWS Lambda, называемую Azure Functions: https://azure.microsoft.com/en-us/services/functions/

http://www.zdnet.com/article/microsoft-releases-preview-of-new-azure-serverless-compute-service-to-take-on-aws-lambda/

С помощью функций Azure вы платите только за то, что вы используете, с вычислением, измеренным до ближайшего 100 мс по цене за/год, в зависимости от времени выполнения вашей функции и размера памяти выбранного пространства функций. Размер функционального пространства может составлять от 128 до 1536 мб. С первым 400 КБ/сек бесплатно.

Запросы Azure Function взимаются за миллион запросов, причем первые 1 миллион запросов бесплатны.

Ответ 3

Самый прямой эквивалент Lambda on Azure - Azure Automation, который делает многое из того, что делает Lambda, за исключением того, что он запускает Powershell вместо Node и т.д. Он не так тесно интегрирован в другие сервисы, как Lambda, но имеет ту же модель. т.е. вы пишете script, и он выполняется по требованию.

Я предполагаю, что SAPI ссылается на речевой API? Если это так, вы можете создавать модули Powershell для Azure, и они могут включать файлы DLL. В этом случае вы можете создать модуль для обтекания DLL SAPI, и это должно делать то, что вы ищете.

Если вам нужна полная вычислительная среда, без сложности нескольких машин при запуске. Вы можете использовать Azure Batch, который был бы лазурным, рекомендованным способом запуска того, что вы ищете.

Экономическая выгода, которую вам нужно оценить, будет заключаться в том, насколько быстрее ваше решение будет работать против собственного .net-стека (в пакетном режиме), и если производительность будет значительно снижена при запуске с Powershell.

Лично я бы попросил Automation попробовать, это удивительно мощно.

Ответ 4

В лазуре есть что-то, называемое облачным сервисом, которое позволяет запускать код на чистой виртуальной машине. Варианты масштабирования на них включают в себя такие вещи, как CPU%, размер очереди и т.д. Если вы можете запланировать свои потребности, Azure позволяет вам легко настроить планировщик масштабирования, то есть 4 VM с 8:00 до 08:10 и, конечно же, в Azure, вы платите поминутно, поэтому это может быть приемлемым решением.

Я бы сказал больше, но документация в Azure действительно настолько велика, что я буду оскорблять их, предлагая мой "перевод" здесь. Оформить заказ azure.com для получения дополнительной информации:)