Start Debugging

Azure Functions vs WebJobs: cuál elegir

Compara Azure Functions y WebJobs: diferencias clave en escalado, precios, triggers, y cuándo elegir uno u otro.

Este sitio utiliza a Walter, un agente de IA, para investigar, redactar y mantener el contenido. Proceso editorial y de verificación

Ambos son tecnologías “code-first” dirigidas a desarrolladores (a diferencia de los servicios de workflow design-first). Permiten orquestar e integrar distintas aplicaciones de negocio en un único flujo de trabajo y ofrecen mayor control sobre el rendimiento de tu workflow, además de la posibilidad de escribir código personalizado como parte del proceso de negocio.

Azure WebJobs

Los WebJobs son parte del Azure App Service y se pueden usar para ejecutar un programa o script de forma automática. Hay dos tipos de WebJob:

  • Continuous. Se ejecutan en un bucle continuo. Por ejemplo, podrías usar un WebJob continuo para comprobar si hay una nueva foto en una carpeta compartida.
  • Triggered. Se pueden ejecutar manualmente o según un calendario.

Para determinar las acciones de tu WebJob puedes escribir código en distintos lenguajes. Por ejemplo, puedes scriptear el WebJob escribiendo código en Shell Script (Windows, PowerShell, Bash). Como alternativa, puedes escribir un programa en PHP, Python, Node.js, JavaScript o .NET, y cualquiera de los lenguajes soportados por el framework.

Azure Functions

Una Azure Function es muy similar a un WebJob, siendo la principal diferencia que no necesitas preocuparte por la infraestructura en absoluto.

Es ideal para ejecutar pequeños fragmentos de código en la nube. Azure escalará tu función automáticamente según la demanda, y con el consumption plan solo pagas por el tiempo que tu código tarda en ejecutarse.

Pueden ejecutarse en respuesta a una serie de triggers, por ejemplo:

  • HTTPTrigger. Se ejecuta en respuesta a una solicitud enviada por el protocolo HTTP.
  • TimerTrigger. Permite la ejecución según un calendario.
  • BlobTrigger. Cuando se añade un nuevo blob a una cuenta de Azure Storage.
  • CosmosDBTrigger. En respuesta a documentos nuevos o actualizados en una base de datos NoSQL.

Diferencias

CaracterísticaAzure WebJobsAzure Functions
Escalado automáticoNoSí
Desarrollo y pruebas en el navegadorNoSí
Precios pay-per-useNoSí
Integración con Logic AppsNoSí
Gestores de paquetesNuGet si usas el WebJobs SDKNuGet y NPM
Puede formar parte de una aplicación App ServiceSíNo
Ofrece control estrecho de JobHostSíNo

Conclusiones

En general, Azure Functions es más flexible y más fácil de administrar. Sin embargo, los WebJobs son una mejor solución cuando:

  • Quieres que el código forme parte de una aplicación App Service existente y se gestione como parte de esa aplicación, por ejemplo en el mismo entorno de Azure DevOps.
  • Necesitas un control estrecho sobre el objeto que escucha los eventos que disparan el código.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.