Hay un par de opciones aquí dentro del Servicio de aplicaciones. No tocaré Logic Apps o Azure Automation, que también toca este espacio.
Azure WebJobs
Este artículo es sinceramente la mejor explicación, pero resumiré aquí.
On Demand WebJobs aka. Programado WebJobs aka. WebJobs activados
Los WebJobs activados son WebJobs que se ejecutan una vez cuando se llama a una URL o cuando la propiedad de programación está presente en schedule.job . Los WebJobs programados son solo WebJobs que han creado un trabajo del Programador de Azure para llamar a nuestra URL en un horario, pero también admitimos la propiedad del horario, como se mencionó anteriormente.
Resumen:
+
Ejecutable / Script bajo demanda
+
Ejecuciones programadas
-
Tiene que dispararse a través del punto final .scm
-
El escalado es manual
-
VM siempre se requiere
WebJobs continuos (no SDK)
Estos trabajos se ejecutan para siempre y los despertaremos cuando se bloqueen. Debe habilitar Always On para que estos funcionen, lo que significa ejecutarlos en el nivel básico y superior.
Resumen:
+
Ejecutable / Script siempre ejecutándose
-
Requiere siempre activado: nivel básico y superior
-
VM siempre se requiere
WebJobs continuos con el SDK de WebJobs
Estos no son nada desde el punto de vista de "WebJobs the feature". Esencialmente, tenemos este dulce SDK que escribimos dirigido a WebJobs que le permite ejecutar código basado en desencadenantes simples. Hablaré de esto más adelante.
Resumen:
+
Ejecutable / Script siempre ejecutándose
+
Registro / tablero más rico
+
Activadores compatibles con tareas de larga duración
-
Requiere siempre activado: nivel básico y superior
-
El escalado es manual para configurar
-
Comenzar puede ser un poco agotador
-
VM siempre se requiere
SDK de Azure WebJobs
Azure WebJobs SDK es un SDK completamente separado de la función de plataforma de WebJobs. Está diseñado para ejecutarse en un WebJob, pero realmente puede ejecutarse en cualquier lugar. Tenemos clientes que los ejecutan en roles de trabajo e incluso en prem u otras nubes, aunque el soporte es el mejor esfuerzo.
El SDK se trata de facilitar la ejecución de algún código en reacción a algún evento y vincular los servicios / etc. fácil. Honestamente, esto está mejor cubierto en algunos documentos , pero el núcleo de eso es la naturaleza de "evento" + "código". También hemos realizado un buen trabajo de extensibilidad, pero eso es secundario al propósito principal.
Resumen:
- La mayoría de estos se mencionan anteriormente
+
Puedes extender y ejecutar lo que quieras. Control total.
-
El material HTTP es un poco inestable, pero funciona
Funciones Azure
Azure Functions se trata de tomar ese propósito central del SDK de WebJobs, alojarlo como un servicio y facilitar el inicio con otros idiomas. Aquí también presentamos el concepto "sin servidor" porque tenía mucho sentido hacerlo: sabemos cómo se escala nuestro SDK, por lo que podemos hacer cosas inteligentes por usted.
Azure Functions es una experiencia muy administrada. No apoyamos traer su propio host. Actualmente, no admitimos extensiones personalizadas, pero es algo que estamos investigando. Somos convencidos sobre lo que puede y no puede hacer, pero por las cosas que habilitamos, son ingeniosas y fáciles de usar y administrar.
Sin embargo, la mayoría de las cosas "marco" que hemos hecho para mejorar las funciones pasan por el SDK de WebJobs. Por ejemplo, subiremos un nuevo NuGet para WebJobs que realmente aumenta drásticamente la velocidad de registro, lo que tiene enormes beneficios de rendimiento para los usuarios del SDK de WebJobs. En el envío de funciones como "SDK como servicio de WebJobs", realmente hemos mejorado muchos problemas de experiencia.
Probablemente soy parcial ya que Functions es nuestro último y mejor, pero siéntase libre de disparar más contras para Functions a mi manera.
Probablemente termine publicando un blog que explique un poco más, pero traté de mantener esto lo más breve posible para este foro.