В Службе приложений есть несколько вариантов. Я не буду касаться приложений логики или Azure Automation, которые также затрагивают это пространство.
Azure WebJobs
Эта статья , честно говоря, лучшее объяснение, но я подведу итог здесь.
По требованию WebJobs ака. Запланированные WebJobs ака. Триггерные веб-задания
Триггерные веб-задания - это веб-задания, которые запускаются один раз при вызове URL-адреса или когда свойство schedule присутствует в schedule.job . Запланированные веб-задания - это просто веб-задания, в которых создано задание планировщика Azure для вызова нашего URL-адреса по расписанию, но мы также поддерживаем свойство расписания, как упоминалось ранее.
Резюме:
+
Исполняемый файл / скрипт по запросу
+
Запланированные казни
-
Должен запускаться через конечную точку .scm
-
Масштабирование ручное
-
ВМ всегда требуется
Непрерывные веб-задания (не SDK)
Эти работы выполняются вечно, и мы разбудим их, когда они рухнут. Вам нужно включить Always On, чтобы они работали, что означает запуск их на уровне Basic и выше.
Резюме:
+
Исполняемый файл / скрипт всегда работает
-
Требуется всегда - базовый уровень и выше
-
ВМ всегда требуется
Непрерывные WebJobs с SDK WebJobs
Это не что-то с точки зрения "WebJobs the feature". По сути, у нас есть этот замечательный SDK, который мы написали для WebJobs, который позволяет выполнять код на основе простых триггеров. Я расскажу об этом позже.
Резюме:
+
Исполняемый файл / скрипт всегда работает
+
Более богатая регистрация / приборная панель
+
Триггеры поддерживаются вместе с длительными задачами
-
Требуется всегда - базовый уровень и выше
-
Масштабирование настраивается вручную
-
Начало работы может быть немного утомительным
-
ВМ всегда требуется
Azure WebJobs SDK
Azure WebJobs SDK - это совершенно отдельный SDK от WebJobs, который является платформой. Он предназначен для запуска в WebJob, но действительно может быть запущен где угодно. У нас есть клиенты, которые выполняют их на рабочих ролях и даже на прем-или других облаках, хотя поддержка - только лучшее усилие.
SDK позволяет просто запускать некоторый код в ответ на какое-то событие и связывать его со службами и т. Д. легко. Честно говоря, это лучше всего описано в некоторых документах , но суть в том, что "событие" + "кодовая" природа. Мы также проделали отличную работу по расширению, но это вторично по отношению к основной цели.
Резюме:
- Большинство из них упомянуты выше
+
Вы можете расширять и запускать все, что хотите. Полный контроль.
-
HTTP-материал немного сложен, но работает
Функции Azure
Функции Azure - это основная цель SDK WebJobs, размещение его в качестве службы и упрощение работы с другими языками. Мы также представляем здесь концепцию «без сервера», потому что в этом было много смысла - мы знаем, как масштабируется наш SDK, поэтому мы можем сделать интеллектуальные вещи для вас.
Функции Azure - это очень хорошо управляемый опыт. Мы не поддерживаем привлечение вашего собственного хоста. В настоящее время мы не поддерживаем пользовательские расширения, но это то, что мы исследуем. Мы думаем о том, что вы можете и не можете сделать, но благодаря тому, что мы делаем, они удобны, просты в использовании и управлении.
Большинство «каркасных» вещей, которые мы сделали для улучшения функций, проходят через WebJobs SDK. Например, мы будем загружать новый NuGet для WebJobs, который значительно увеличивает скорость ведения журнала, что дает огромные преимущества для пользователей WebJobs SDK. В функции доставки как "WebJobs SDK как услуга" мы действительно исправили множество проблем с опытом.
+
Поддерживается множество языков
+
Полностью управляемое динамическое масштабирование
+
Простой в использовании портал с UX для управления соединениями и т. Д.
-
Хост не настраивается (пока)
~
Запускается в отдельном «приложении», которое требует определенной настройки в вашем репо, но значительно облегчает долгосрочное обслуживание.
~
Нет инструментов (пока). Некоторые инструменты теперь в альфа-версии или в режиме предварительного просмотра - https://www.npmjs.com/package/azurefunctions
(обновление, февраль 2017 г .: инструменты Visual Studio для функций Azure теперь доступны в режиме предварительного просмотра: https: //blogs.msdn .microsoft.com / webdev / 2016/12/01 / visual-studio-tools-for-azure-functions / )
Я, вероятно, предвзят, так как Functions - наша последняя и самая лучшая игра, но, не стесняйтесь, выкладывайте больше минусов для Functions.
Я, вероятно, в конечном итоге опубликую блог, который разрабатывает немного больше, но я постарался сделать его максимально кратким для этого форума.