Avec le marketing imposé par les fournisseurs de services Cloud il est parfois complexe de s’y retrouver. Si bien qu’il est parfois complexe de comprendre les différences entre plusieurs services ou solutions. Je vous propose de dégrossir les différences et les usages potentiels pour 3 services disponibles dans le Cloud de Microsoft : Azure Batch, Azure Functions et enfin Azure Automation.
Azure Batch est conçu pour traiter des tâches massives en parallèle sur un grand nombre de machines virtuelles (VM). Il permet de gérer des charges de travail intensives sans que vous ayez à configurer ou gérer individuellement les VM. Vous pouvez l’utiliser pour tout type de tâche nécessitant des calculs complexes ou le traitement simultané d’une grande quantité de données.
Il est important que de bien comprendre que sur ce service nous allons travailler avec une collection d’objet Computer (ou autre) comme des machines virtuelles. Vous verrez pour les autres services que cela ne sera pas le cas.
Généralement afin de pouvoir utiliser Azure Batch vous devez passer par les actions décrites ci-dessous :
Azure Batch est donc pratique pour les cas de figure ou vous avez des centaines ou des milliers de tâches répétitives à exécuter sur votre infrastruture IaaS. Cette solution ne sera en revanche pas idéal pour les tâches uniques ou légères.
Azure Functions est un service sans serveur (autrement appelé serverless) qui exécute de petites portions de code en réponse à des événements. Il est optimisé pour des tâches légères, rapides, et ponctuelles.
L’intérêt de ce service et que vous n’avez pas besoin de gérer les charges de calculs qui vont être nécessaire pour exécuter votre code ou remplir votre besoin. Dit autrement, vous n’avez donc pas à gérer les serveurs sous-jacents, tout est pris en charge automatiquement par Azure.
Voici plusieurs exemples d’utilisation :
On peut imaginer de nombreux cas d’usage à Azure Functions. Mais vous devez garder en tête que le code ou les applications que vous avez créé par le passé et que vous déployez ou configuriez sur vos machines virtuelles ne seront pas nécessairement automatiquement « portables » ou compatibles avec Azure Functions. Vous aurez donc probablement du développement à refaire – ou à minima à adapter.
Pour pouvoir créer une Azure Functions, vous devrez définir les composants suivants :
En général, Azure Functions n’est pas forcément adapter pour les tâches longues ou complexes. C’est en revanche idéal pour des tâches individuelles & courtes et qui se répètent de manière similaires (comme les exemples que je vous ai cités précédemment). Néanmoins, avec l’amélioration du service – cela a tendance à être de moins en moins vrai.
La complexité c’est que vous devrez bien souvent re-développer votre application ou votre besoin. En revanche, un avantage indéniable et l’économie de coûts que vous pouvez réaliser puisqu’il n’y a pas de VM indépendante à déployer mais c’est Azure qui alloue uniquement le compute nécessaire à votre tâche.
Azure Automation est un service qui vous aide à automatiser la gestion de vos ressources Azure ou d’autres systèmes. Il est souvent utilisé pour des tâches de maintenance, des actions répétitives, ou des workflows d’administration IT.
L’usage le plus connu de Azure Automation est sa possibilité d’exécuter des scripts PowerShell, Python (et d’autres) de manière automatisée voir même panifiée à des horaires fixes. C’est un service qui est très simple à utiliser que j’affectionne particulièrement. J’en ai d’ailleurs parlé dans plusieurs anciens articles. 😀
Je ne suis pas le plus objectif sur ce service car il se trouve que c’est un de mes composants préférés dans Azure. Le coût d’utilisation est très peu élevé et les possibiliés sont illimitées car tout ce que vous pourriez faire via Azure CLI peut être intégré dans Azure Automation.
L’outil peut malgré tout manqué de réactivité lorsque vous avez des traitements intensifs ou parallèles à exécuter. Par exemple, j’ai souvent remarqué que lorsqu’un runbook est planifié à 14h00 il peut s’exécuter avec plusieurs secondes / voir minutes de décalage. Donc plutôt orienté pour la gestion et l’adminstrations de vos autres composants Azure. 😉
Finalement, on peut synthétiser les différence dans le tableau ci-après.
Caractéristique | Azure Batch | Azure Functions | Azure Automation |
But principal | Traitement massif de données | Réagir à des événements légers | Automatiser la gestion des ressources |
Type de tâche | Tâches massives et parallèles | Tâches légères et rapides | Gestion d’infrastructure IT |
Déclencheur (ou trigger) | Script ou application | Événement (fichier, HTTP, etc.) | Manuel ou planifié |
Approche | Gérer des pools de VM | Sans serveur (serverless) | Runbooks/script planifiés |
Exemple concret | Rendu vidéo de 100 fichiers | Envoi d’un email après un upload | Mise à jour des VM chaque mois |
Adapté pour | Calculs complexes et longues durées | Réponse rapide à des événements | Maintenance ou gestion IT |
Scalabilité | Haute (pool de VM) | Automatique (sans serveur) | Moyenne (lié aux scripts) |
Durée des tâches | Longue (minutes à heures) | Très courte (millisecondes à secondes) | Moyenne à longue |
Une Time Capsule Apple AirTag pour 10 ans : le pari d’un bricoleur ingénieux Les…
XMail : Elon Musk prépare un rival pour Gmail ? Elon Musk, visionnaire derrière Tesla,…
YouTube s’attaque enfin au "Clickbait" : Ce qui va changer YouTube, la plateforme vidéo incontournable,…
Aperçu de la nouvelle version à venir de Microsoft Outlook - Source Microsoft Microsoft prévoit…
Jacquie et Michel : le géant français du X racheté par des Américains Le célèbre…
Sora : Le Nouvel Outil Révolutionnaire de ChatGPT pour Créer des Vidéos avec l’IA OpenAI…