Concevoir graphiquement vos templates ARM

J’adore le Cloud, et une des fonctionnalités que j’adore le plus est la capacité de définir l’infrastructure par script. On appelle ça « Infrastructure as code ». Toutefois, il peut être difficile de définir une infrastructure via script en partant d’une page blanche.

Je n’entrerai pas dans les détails de pourquoi tu devrais scripter ton infrastructure Cloud ni quelle approche tu devrais utiliser (ARM templates, Azure CLI, PowerShell) dans cet article. Ça fera l’objet d’un autre article.

 

Le workflow typique lorsqu’on crée un script d’infrastructure

La solution la plus commune (ceux qui ont déjà fait des templates ARM ne vont pas me contredire), est de partir d’un projet existant et de le modifier.

Mais supposons que tu n’as pas de projet existant sous la main. De mon expérience, j’ai constaté 2 cas :

  1. On définit l’infrastructure via le portail d’Azure, on exporte le template généré par ce dernier, on le modifie puis on l’archive :

Export Template Azure Portal

 

  1. On crée un nouveau projet dans Visual Studio de type « Azure Resource Group » en sélectionnant le modèle qui se rapproche le plus de notre infrastructure cible puis on l’ajuste. Pour ce faire, soit un cherche un exemple sur Internet ou on le récupère depuis le portail d’Azure via la fonctionnalité « Export Template » :

VS ARM Template Project

 

Le problème avec cette approche…

Le problème avec cette approche est que la fonctionnalité « Export template » du portail d’Azure n’exporte pas tous les éléments. Un exemple ? Ça n’exporte pas la section « AppSettings » d’une web app.

 

Conception/édition graphique dans Visual Studio

Mais comment faire alors ?

Eh bien, Visual Studio, via le panneau « Structure JSON » nous offre un assistant graphique pour nous aider à concevoir/éditer notre template ARM.

Commence d’abord par afficher ce panneau :

open json struct window

Pour l’exemple, nous allons ajouter un compte de stockage au site web. L’idée est qu’on voudrait activer les diagnostic logs et stocker ces logs dans un blob storage :

add storage account arm

À noter que l’ajout d’une clé de configuration (appSetting) se fait tout aussi simplement :

add appsetting arm

Et voilà. Ce n’est pas plus compliqué que ça !

 

En conclusion…

La possibilité de définir l’infrastructure par script nous ouvre de nouvelles possibilités. On peut donc traiter l’infrastructure au même titre que du code applicatif et les gérer de façon plus homogène.

La possibilité d’éditer ce type de script graphiquement nous simplifie encore plus la tâche de définition de notre infrastructure par script.

 

À la prochaine !

Comments are closed.