Bicep est un langage spécifique à un domaine qui utilise la syntaxe déclarative pour déployer des ressources Azure. Dans un fichier Bicep, vous définissez l’infrastructure que vous voulez déployer sur Azure, puis utilisez ce fichier tout au long du cycle de vie de développement pour déployer cette infrastructure à plusieurs reprises. 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 pour la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.
Avantages de Bicep
Bicep offre les avantages suivants :
Support pour tous les types de ressources et versions d’API : Bicep prend immédiatement en charge toutes les versions de préversion et de disponibilité générale (GA) pour les services Azure. Dès qu’un fournisseur de ressources introduit de nouveaux types de ressources et de versions d’API, vous pouvez les utiliser dans votre fichier Bicep. Vous n’avez pas besoin d’attendre la mise à jour des outils avant d’utiliser les nouveaux services.
Syntaxe simple : par rapport au modèle JSON équivalent, les fichiers Bicep sont plus concis et plus faciles à lire. Bicep ne nécessite pas de connaissances préalables sur les langages de programmation. La syntaxe Bicep est déclarative et spécifie les ressources et les propriétés de ressource que vous souhaitez déployer.
Les exemples suivants illustrent la différence entre un fichier Bicep et le modèle JSON équivalent. Les deux exemples déploient un compte de stockage :
Expérience de création : lorsque vous utilisez l’Extension Bicep pour VS Code pour créer vos fichiers Bicep, vous bénéficiez d’une expérience de création de première classe. L’éditeur fournit une sécurité des types enrichie, IntelliSense et la validation de la syntaxe.
Résultats reproductibles : déployez votre infrastructure tout au long du cycle de vie de développement en ayant l’assurance que vos ressources sont déployées de façon cohérente. Les fichiers Bicep sont idempotents, ce qui signifie que vous pouvez déployer le même fichier plusieurs fois et obtenir les mêmes types de ressources dans le même état. Vous pouvez développer un fichier qui représente l’état souhaité, plutôt que de développer plusieurs fichiers distincts pour représenter des mises à jour. Par exemple, le fichier suivant crée un compte de stockage. Si vous déployez ce modèle et le compte de stockage lorsque les propriétés spécifiées existent déjà, aucune modification n’est apportée :
Orchestration : Vous n’avez pas à vous soucier de la complexité des opérations de commande. Resource Manager orchestre le déploiement de ressources interdépendantes afin qu’elles soient créées dans l’ordre approprié. Lorsque cela est possible, Resource Manager déploie des ressources en parallèle, ce qui permet à vos déploiements de se terminent plus rapidement que les déploiements en série. Vous déployez le fichier par le biais d’une seule commande impérative, plutôt que par le biais de plusieurs.
Modularité : utilisez des modules pour segmenter votre code Bicep en parties gérables. Les modules vous permettent de réutiliser le code et de simplifier le développement. Un module déploie un ensemble de ressources associées. Ajoutez un module à un fichier Bicep lorsque vous devez déployer ces ressources.
Intégration aux services Azure : Bicep est intégré aux services Azure, tels qu’Azure Policy, les specs de modèle et Azure Blueprints.
Aperçu des modifications : vous pouvez utiliser l’opération de simulation pour obtenir un aperçu des modifications avant de déployer le fichier Bicep. L’opération de simulation vous permet de voir quelles ressources créer, mettre à jour ou supprimer, et toutes les propriétés de ressource à modifier. Elle vérifie également l’état actuel de votre environnement et élimine la nécessité de gérer cet état.
Aucun état ou fichier d’état à gérer : Azure stocke tous les états. Vous pouvez collaborer avec d’autres personnes et être sûr que vos mises à jour sont gérées comme prévu.
Pas de frais ni d’open source : étant donné que Bicep est gratuit, vous n’avez pas à payer pour des fonctionnalités Premium. Le support Microsoft prend cela en charge.
Bicep n’est pas conçu comme un langage de programmation général pour l’écriture d’applications. Un fichier Bicep déclare des ressources Azure et des propriétés de ressources, sans écrire de séquence de commandes de programmation pour les créer.
Pour en savoir plus sur Bicep, consultez la vidéo suivante :
Vous pouvez utiliser Bicep au lieu de JSON pour développer des modèles Resource Manager. La syntaxe JSON pour la création d’un modèle Resource Manager peut être détaillée et nécessiter une expression complexe. La syntaxe Bicep réduit cette complexité et améliore l’expérience de développement. Bicep est une abstraction transparente sur un modèle JSON Resource Manager qui ne perd pas les fonctionnalités d’un modèle JSON. Pendant le déploiement, l’interface de ligne de commande Bicep convertit un fichier Bicep en modèle JSON Resource Manager.
Les types de ressources, les versions d’API et les propriétés qui sont valides dans un modèle Resource Manager sont valides dans un fichier Bicep.
Bicep offre une syntaxe plus simple et plus concise que JSON. Vous n’utilisez pas d’expressions entre crochets [...]. Au lieu de cela, vous appelez directement des fonctions, et récupérez des valeurs à partir de paramètres et de variables. Vous attribuez à chaque ressource déployée un nom symbolique qui facilite le référencement de cette ressource dans votre modèle.
Bicep gère automatiquement les dépendances entre ressources. Vous pouvez éviter de définir dependsOn quand le nom symbolique d’une ressource est utilisé dans une autre déclaration de ressource.
La structure du fichier Bicep est plus flexible que celle du modèle JSON. Vous pouvez déclarer des paramètres, des variables et des sorties n’importe où dans le fichier. Dans JSON, vous devez déclarer l’ensemble des paramètres, variables et sorties dans les sections correspondantes du modèle.
Obtenir de l’aide
Voici les étapes permettant d’ouvrir un ticket de support pour les problèmes de modèle Azure Resource Manager (ARM) :
Générez des solutions de bout en bout dans Microsoft Azure pour créer des fonctions Azure Functions, implémenter et gérer des applications web, développer des solutions qui utilisent le Stockage Azure, et bien plus encore.