Choisir le bon outil de ligne de commande

Effectué

Chaque action que vous effectuez dans le portail Azure se traduit par l’exécution en arrière-plan du code sur une API pour créer, lire, mettre à jour ou supprimer des ressources Azure. Les outils en ligne de commande Azure sont des wrappers pour l’API qui vous permettent d’automatiser le provisionnement des ressources Azure à grande échelle.

Options d’automatisation dans Azure

Quatre outils en ligne de commande sont couramment utilisés pour automatiser les ressources Azure : Azure CLI, Azure PowerShell, Bicep et Terraform.

Comparaison des outils

Azure CLI, Azure PowerShell, Bicep et Terraform présentent des similitudes, mais offrent chacun des avantages distincts. Étant donné que vous êtes chargé de provisionner le Stockage Azure, quelles fonctionnalités d’outil offrent les meilleurs avantages dans votre environnement ?

Le tableau suivant identifie les fonctionnalités de chaque outil en ligne de commande Azure. Dans le tableau :

  • L’icône Oui indique que la fonctionnalité est true pour l’outil en ligne de commande spécifié.
  • L’icône Non indique que la fonctionnalité est false pour l’outil en ligne de commande spécifié.
Fonctionnalité Azure CLI Azure PowerShell Bicep Terraform
Outil IaC impératif Oui Oui No Non
Outil IaC déclaratif Non Non Oui Oui
Natif d’Azure Oui Oui Oui Non
Cloud agnostique Non Non Non Oui
Peut s’exécuter sur Windows, Linux et macOS Oui Oui Oui Oui
Peut créer, modifier et supprimer des ressources Stockage Azure Oui Oui Oui Oui

Examinez plus en détail chaque outil. Quelles sont les fonctionnalités d’Azure CLI ou d’Azure PowerShell, et de Bicep ou Terraform, qui conviennent à votre environnement ?

Azure CLI ou Azure PowerShell

Azure CLI et Azure PowerShell sont des outils en ligne de commande qui vous permettent de créer et de gérer des ressources Azure.

Azure CLI

  • Est une interface de ligne de commande multiplateforme pouvant être installée sur Windows, Linux et macOS
  • S’exécute dans Azure Cloud Shell, PowerShell, Bash, Cmd.exe ou un conteneur Docker
  • Est basé sur Python
  • Défini par défaut pour sortir une chaîne JSON, mais d’autres options de format sont disponibles telles que table, YAML et TSV
  • Vous permet d’interroger la sortie de commande à l’aide de la syntaxe de requête JMESPath.
  • Utilise les commandes sont organisées en groupes, comme az vm, et en sous-groupes, comme az vm disk
  • A une syntaxe qui suit un modèle reference name -command -parameter -parameter value simple
  • Prend en charge les opérations asynchrones

Azure PowerShell

  • Est un module PowerShell multiplateforme qui s’exécute sur Windows, Linux et macOS
  • S’exécute localement dans PowerShell, dans Azure Cloud Shell ou dans un conteneur Docker
  • Est basé sur .NET Standard
  • Fournit une autocomplétion via Tab et IntelliSense en mode prédictif
  • Retourne des objets .NET
  • Utilise des noms de commande Verb-Noun pour faciliter la découvrabilité

Bicep ou Terraform

Bicep

Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Dans un fichier Bicep, vous définissez l’infrastructure que vous souhaitez déployer sur Azure. Ensuite, vous utilisez ce fichier tout au long du cycle de vie du développement pour déployer votre infrastructure. Vos ressources sont déployées de manière cohérente.

Bicep fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du code. Bicep offre une bonne expérience de création pour vos solutions IaC dans Azure.

Terraform

Hashicorp Terraform est un outil IaC open source pour l’approvisionnement et la gestion d’infrastructure cloud. Il codifie l’infrastructure dans des fichiers de configuration qui décrivent l’état souhaité pour votre topologie. Terraform permet de gérer n’importe quelle infrastructure, comme des clouds publics, des clouds privés et des services SaaS (software as a service), en utilisant les fournisseurs Terraform.

Quel outil en ligne de commande Azure vous convient ?

Quand vous choisissez un outil, prenez en compte votre expérience passée et votre environnement de travail actuel. Voici un résumé de vos options :

  • La syntaxe Azure CLI est semblable au scripting Bash.
  • Azure PowerShell est un module PowerShell. Les commandes suivent un schéma de nommage Verb-Noun et les données sont retournées en tant qu’objets.
  • Bicep est un DSL qui utilise la syntaxe déclarative pour déployer des ressources Azure.
  • Terraform est un outil open source pour l’approvisionnement et la gestion d’infrastructure cloud.

Choisissez l’outil qui se sert de votre expérience et écourte votre courbe d’apprentissage. Rester ouvert d’esprit n’améliore que vos aptitudes. Utilisez un autre outil lorsque cela tombe sous le sens.