Maitrisez l’automatisation du cloud Azure
Le cloud public de Microsoft s’accompagne d’un module pour industrialiser la mise en production et la maintenance des serveurs virtuels. Il sert même à les sortir automatiquement d’un incident.
Azure Automation est un service d’automatisation qui réduit le nombre de manipulations à effectuer pour déployer un serveur virtuel sur Azure et en assurer la maintenance. Il présente surtout l’intérêt de réduire aussi le risque d’erreurs humaines.
Ce service d’automatisation cloud repose sur les Runbooks d’Azure. Ce sont des listes de petites tâches indépendantes qui doivent se dérouler dans un ordre donné pour atteindre un certain résultat. Il existe plusieurs façons d’accéder aux Runbooks, pour les concevoir ou les lancer :
- Via le portail d’Azure. L’interface permet d’assembler des processus automatiques. Cette façon de faire est simple mais limitée : elle ne convient pas aux codes complexes. Elle est accessible depuis l’onglet Automation du portail d’Azure.
- Via un script PowerShell. Il s’agit du choix par défaut pour la plupart des entreprises. Le code du processus est écrit sous forme de script.
- Via l’API Automation. Cette API sert à contrôler à partir d’un code tous les processus automatiques.
On peut programmer le déclenchement des Runbooks sur un calendrier, ou en réponse à une alerte, ou encore depuis un autre Runbook.
Gérer automatiquement les serveurs... et leurs incidents
Construire un Runbook est assez simple, mais il existe plusieurs approches. Ce que l’on décide d’automatiser dépend de l’environnement : ce sont les tâches les plus répétitives, les applications à risques ou encore tous les services qui peuvent être industrialisés.
Azure offre bien plus que des machines virtuelles en cloud et il est donc possible d’automatiser bien plus que leur simple déploiement. Par exemple, les Runbooks Azure peuvent effacer les fichiers temporaires, enregistrer des rapports d’activité, découper des bases de données quand elles atteignent une taille limite, ou encore retirer des instances virtuelles dont plus personne ne se sert.
Une utilisation populaire d’Azure Automation est la prise en compte des DSC – les Desired State Configuration – pour garantir la configuration des serveurs virtuels. Grâce aux DSC, les machines virtuelles exécutées sur Azure peuvent dépendre d’un fichier avec une version particulière ou de certaines valeurs dans la base de registres. Ceci évite que les serveurs se mettent subitement à changer de configuration parce qu’un administrateur a changé un paramètre ailleurs.
Mais l’une des plus grandes originalités d’Azure Automation est sa capacité à exécuter des processus transactionnels. En clair, il s’agit pour les administrateurs de mieux gérer les incidents. Il s’agit de grouper l’exécution de différentes tâches, de sorte à relancer un processus qui se serait arrêté suite à une erreur.
Imaginons par exemple un processus nocturne d’import de commandes clients dans un système de facturation. Si l’import échoue à un moment donné, une tâche pourrait veiller à remettre l’ordre de commandes en cours dans la file d’attente jusqu’à ce que le problème soit corrigé et une autre pourrait empêcher qu’un autre ordre vienne simultanément s’immiscer au mauvais endroit.
Il est à noter que pour gérer de tels processus transactionnels, il ne faut pas écrire un script PowerShell, mais un Workflow Powershell, c’est-à-dire un script qui a à la fois la capacité d'exécuter simultanément une action sur plusieurs appareils et celle de redémarrer automatiquement après une défaillance. Le workflow est écrit avec la syntaxe Windows PowerShell et lancé par Windows PowerShell, mais il est traité par la couche Windows Workflow Foundation.
Prise en main
Il est à noter que les Runbooks ne sont pas une exclusivité d’Azure. Les administrateurs Windows peuvent les exécuter et les tester sur site grâce à la fonction de Runbook Worker exécutable sur toute machine Windows ou Linux définie comme un nœud DSC.
Précisons enfin qu’il existe quantité de scripts en ligne que les administrateurs pourront réutiliser dans leurs Runbooks Azure. On trouvera d’ailleurs une Galerie de Runbooks pour Azure Automation qui comprend à la fois des scripts PowerShell et d’autres en Python, écrits et partagés par la communauté des utilisateurs d’Azure. Tous les scénarios courants sont traités et de nombreux exemples permettront de se familiariser avec le service d’automatisation.