Azure

Différences entre Azure Batch, Azure Functions & Azure Automation

Différences entre Azure Batch, Azure Functions & Azure Automation

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

Exemple d’architecture Azure Batch – Source Microsoft

Explications

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.

Cas d’utilisation de Azure Batch

  • Rendu vidéo ou image : Par exemple, une société de production vidéo peut utiliser Azure Batch pour rendre des animations ou convertir des vidéos en plusieurs formats.
  • Analyse scientifique : Les chercheurs ou scientifiques peuvent simuler des modèles physiques ou chimiques sur des milliers de combinaisons en parallèle.
  • Entraînement de modèles IA/ML : Si vous devez entraîner un modèle d’intelligence artificielle sur un grand ensemble de données, Batch peut exécuter plusieurs expériences simultanément.
  • Calcul financier ou mathématique complexe : Simulation Monte Carlo, analyse des risques ou valorisation de portefeuilles pour les entreprises financières.

Généralement afin de pouvoir utiliser Azure Batch vous devez passer par les actions décrites ci-dessous :

  • Provisionnement automatique des ressources :
    • Vous définissez un pool de VM avec des caractéristiques spécifiques (CPU, RAM, GPU).
    • Batch les déploie et les gère automatiquement pour exécuter vos tâches.
  • Division des tâches :
    • Vous fournissez un script ou une application à exécuter sur chaque tâche.
    • Batch divise le travail en petits morceaux et le répartit sur les VM.
  • Nettoyage automatique :
    • Une fois les tâches terminées, Azure Batch peut libérer les ressources pour minimiser les coûts.

Avantages et limitations

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

Exemple d’architecture Azure Functions – Source Microsoft

Explications de Azure Functions

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.

Cas d’utilisation de Azure Functions

Voici plusieurs exemples d’utilisation :

  • Automatisation basée sur des événements, on exécute une fonction lorsque :
    • Un fichier est déposé dans un stockage Azure (Blob Storage).
    • Un message arrive dans une file d’attente (Queue Storage, Event Hub).
    • Une requête HTTP ou une notification webhook est reçue.
  • Microservices : Utilisez Azure Functions pour créer des services autonomes qui effectuent des tâches spécifiques dans une architecture microservices (stockage de fichier, archivage, appel de jobs à heures fixes pour réaliser des backups, etc.).
  • Traitement en temps réel pour par exemple transformer un fichier CSV en JSON dès son dépôt dans un stockage.
  • Gestion des workflows légers pour créer un utilisateur dans Active Directory, envoyer un email de bienvenue et générer un rapport après un événement, etc.

Fonctionnement de Azure Functions

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.

Possibilités de réglages dans Azure Functions

Pour pouvoir créer une Azure Functions, vous devrez définir les composants suivants :

  • Déclencheurs (Triggers) : Vous définissez ce qui déclenche la fonction (ex. : un fichier ajouté, un événement IoT, une requête HTTP).
  • Exécution éphémère : La fonction s’exécute uniquement lorsqu’elle est appelée, puis les ressources sont libérées.
  • Échelle automatique : Azure ajuste automatiquement les ressources pour gérer plus ou moins d’appels, sans intervention de votre part.

Avantages et limitations :

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

Exemple d’utilisation de Azure Automation

Explications de Azure Automation

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. 😀

Cas d’utilisation de Azure Automation

  • Maintenance des machines virtuelles : Par exemple, appliquer automatiquement des correctifs (patching) sur vos VM Windows ou Linux.
  • Gestion des ressources Azure : Par exemple, redémarrer une VM automatiquement si elle est inactive depuis un certain temps. J’avais déjà démontré ce cas d’utilisation dans cet article pour arrêter et démarrer des charges de calculs afin d’optimiser votre facturation Azure.
  • Tâches planifiées ou récurrentes : Nettoyage de ressources inutilisées, suppression de comptes d’utilisateurs expirés, ou optimisation des coûts.
  • Interopérabilité : Vous pouvez connecter Azure Automation à des outils tiers (ex. : System Center) pour automatiser la gestion des ressources hors Azure.
  • Automatisation des workflows IT : Créer un processus automatisé pour provisionner un utilisateur, lui attribuer un accès, puis envoyer un email de bienvenue. D’ailleurs, les scripts (ou runbooks) que vous allez déployés peuvent être créés en CLI ou bien avec une interface graphique style Logic Apps si vous êtes moins à l’aise avec le code.

Fonctionnement de Azure Automation

  • Runbooks : Un Runbook est un script (PowerShell ou Python) que vous pouvez exécuter manuellement ou planifier. Ces scripts interagissent directement avec Azure ou des ressources externes.
  • Intégration avec d’autres services : Azure Automation peut se connecter à Log Analytics pour suivre les logs ou déclencher des actions basées sur des alertes.
  • Tâches planifiées : Vous pouvez programmer des exécutions régulières (ex. : tous les jours à 2h du matin).

Avantages et limitations

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. 😉

Conclusion

Finalement, on peut synthétiser les différence dans le tableau ci-après.

CaractéristiqueAzure BatchAzure FunctionsAzure Automation
But principalTraitement massif de donnéesRéagir à des événements légersAutomatiser la gestion des ressources
Type de tâcheTâches massives et parallèlesTâches légères et rapidesGestion d’infrastructure IT
Déclencheur (ou trigger)Script ou applicationÉvénement (fichier, HTTP, etc.)Manuel ou planifié
ApprocheGérer des pools de VMSans serveur (serverless)Runbooks/script planifiés
Exemple concretRendu vidéo de 100 fichiersEnvoi d’un email après un uploadMise à jour des VM chaque mois
Adapté pourCalculs complexes et longues duréesRéponse rapide à des événementsMaintenance ou gestion IT
ScalabilitéHaute (pool de VM)Automatique (sans serveur)Moyenne (lié aux scripts)
Durée des tâchesLongue (minutes à heures)Très courte (millisecondes à secondes)Moyenne à longue
Share
Published by
thibault

Recent Posts

Une Time Capsule Apple AirTag pour 10 ans : le pari d’un bricoleur ingénieux

Une Time Capsule Apple AirTag pour 10 ans : le pari d’un bricoleur ingénieux Les…

1 semaine ago

XMail : Elon Musk prépare un rival pour Gmail ?

XMail : Elon Musk prépare un rival pour Gmail ? Elon Musk, visionnaire derrière Tesla,…

1 semaine ago

YouTube s’attaque enfin au « Clickbait » : Ce qui va changer

YouTube s’attaque enfin au "Clickbait" : Ce qui va changer YouTube, la plateforme vidéo incontournable,…

2 semaines ago

Microsoft impose la nouvelle version d’Outlook : un changement controversé

Aperçu de la nouvelle version à venir de Microsoft Outlook - Source Microsoft Microsoft prévoit…

3 semaines ago

Jacquie et Michel : le géant français du X racheté par des Américains

Jacquie et Michel : le géant français du X racheté par des Américains Le célèbre…

3 semaines ago

Sora : Le nouvel outil de ChatGPT pour Créer des Vidéos avec l’IA

Sora : Le Nouvel Outil Révolutionnaire de ChatGPT pour Créer des Vidéos avec l’IA OpenAI…

3 semaines ago