241 votes

Azure Webjobs vs Azure Functions : comment choisir ?

J'ai créé quelques Emplois web d'Azure qui utilisent des déclencheurs et je viens d'apprendre que Fonctions Azure .

D'après ce que j'ai compris, Azure Functions semble chevaucher les fonctionnalités d'Azure Webjobs et j'ai quelques difficultés à comprendre quand choisir entre Function et Webjob :

  • Contrairement aux Webjobs, les fonctions ne peuvent être que déclenchées, elles n'ont pas été conçues pour exécuter un processus continu (mais vous pouvez écrire du code pour créer une fonction continue).

  • Vous pouvez écrire des Webjobs et des fonctions en utilisant de nombreux langages (C#, node.js, python ...) mais vous pouvez écrire votre fonction à partir du portail Azure. Il est donc plus facile et plus rapide de développer, tester et déployer une fonction.

  • Les Webjobs s'exécutent en tant que processus d'arrière-plan dans le contexte d'une application web App Service, d'une application API ou d'une application mobile, tandis que les fonctions s'exécutent à l'aide d'un plan App Service classique/dynamique.

  • En ce qui concerne la mise à l'échelle, Functions semble offrir plus de possibilités puisque vous pouvez utiliser un plan de service d'application dynamique et mettre à l'échelle une seule fonction alors que pour un webjob, vous devez mettre à l'échelle toute l'application web.

Si vous avez une application web existante, vous pouvez l'utiliser pour exécuter un webjob sans coût supplémentaire, mais si je n'ai pas d'application web existante et que je dois écrire du code pour déclencher une file d'attente, dois-je utiliser un webjob ou une fonction ?

Y a-t-il d'autres considérations à prendre en compte lorsque vous devez choisir ?

12 votes

C'est un billet de blog que je dois. :) Je vais essayer de préparer une réponse, mais cela peut être un peu ouvert pour Stack Overflow, donc vous devrez peut-être poser la question sur MSDN si elle est fermée.

0 votes

Bel article de blog (court) sur ce sujet geekswithblogs.net/tmurphy/archive/2016/06/02/

0 votes

@chris-anderson-msft Peut-on exécuter PowerShell en tant que webjob ? Peut-on installer un package PowerShell sur Webjob ?

6voto

Sajeetharan Points 108195

Je voudrais donner quels sont les points communs y différences entre les deux Les fonctions Azure sont construites sur AppService et WebJobs SDK. WebJobs SDK vous donnera plus de liberté pour jouer avec tandis que les fonctions Azure sont plus structurées avec moins de responsabilités pour les développeurs.

Quand on regarde les points communs, les deux utilisent le mode de programmation orienté fonction, bindings pour trigger/input/output, supportent les bibliothèques externes et peuvent s'exécuter et déboguer localement Supportruntime toiletries.

Différences

|-----------------------|------------------|
|      Functions        |     Web Jobs     |
|-----------------------|------------------|
|Can support HTTP       | Can't support HTTP
|                       |  requests        |
|-----------------------|------------------|
|Supports a variety of  | Traditional .NET |
|languages/tools        | developer        |
|                       | experience       |
|-----------------------|------------------|
|Bindings are configured| Config files are |
|using attributes       | used             |
|-----------------------|------------------|
|Scale is managed by    | Scale is managed |
|Azure                  | by user          |
|-----------------------|------------------|
|Limited control over   |Host can be       |
|host                   |controlled by user|
--------------------------------------------

enter image description here

3voto

Nicholas Petersen Points 832

L'une des principales considérations est qu'Azure Functions a cessé de prendre en charge l'intégralité du .NET Framework après la version 1, ce qui a été abandonné avec la version 2.0 et ne changera pas dans la version 3.0 actuellement en cours de préparation.

Pendant ce temps, cette approche armée n'a heureusement pas été appliquée - pour l'instant - à Azure WebJobs :

La version 3.x du SDK WebJobs prend en charge les applications de console .NET Core et .NET Framework.

1voto

Heshan Points 108

Une réponse que j'ai toujours trouvée à cette question était Vous pouvez personnaliser l'hôte dans Azure WebJobs mais vous ne pouvez pas personnaliser l'hôte d'Azure Functions,

Voici un exemple "Dans un WebJob, vous pouvez créer une politique de relance personnalisée pour les appels vers des systèmes externes."

Ce type de politique ne peut pas être configuré dans une fonction Azure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X