Ce tutoriel explique comment gérer une infrastructure sous forme de code avec Terraform et Cloud Build à l'aide de la méthodologie GitOps. Le terme GitOps a été inventé par Weaveworks. Son concept clé consiste à utiliser un dépôt Git pour stocker l'état que vous souhaitez pour votre environnement. Terraform est un outil d'HashiCorp qui vous permet de créer, de modifier et d'améliorer de manière prévisible votre infrastructure cloud en utilisant du code. Dans ce tutoriel, vous allez utiliser Cloud Build, un service d'intégration continue de Google Cloud, pour appliquer automatiquement des fichiers manifestes Terraform à votre environnement.
Ce tutoriel s'adresse aux développeurs et aux opérateurs qui recherchent une stratégie conviviale pour apporter des modifications prévisibles à l'infrastructure. Dans cet article, nous partons du principe que vous connaissez Google Cloud, Linux et GitHub.
Les rapports sur l'état du DevOps identifient les capacités qui améliorent les performances de livraison de logiciels. Ce tutoriel vous permettra d'effectuer les opérations suivantes :
Architecture
Pour comprendre comment ce tutoriel applique les pratiques de GitOps en matière de gestion des exécutions de Terraform, analysez le schéma d'architecture suivant. Notez que les branches GitHub dev
et prod
sont utilisées pour représenter des environnements réels. Ces environnements sont définis par des réseaux VPC (Virtual Private Cloud), respectivement dev
et prod
, dans un projet Google Cloud.
Le processus commence lorsque vous envoyez le code Terraform à la branche dev
ou prod
. Dans ce scénario, Cloud Build se déclenche, puis applique les fichiers manifestes Terraform pour obtenir l'état souhaité dans l'environnement concerné.
D'autre part, lorsque vous transférez du code Terraform vers une autre branche, par exemple une branche de fonctionnalité, Cloud Build s'exécute pour exécuter terraform plan
mais rien n'est appliqué aux environnements.
Idéalement, les développeurs ou les opérateurs doivent faire des propositions d'infrastructure à des branches non protégées, puis les soumettre par le biais de demandes d'extraction.
L'application GitHub Cloud Build, décrite plus loin dans ce tutoriel, déclenche automatiquement les tâches de compilation et associe les rapports terraform plan
à ces demandes d'extraction. Ainsi, vous pouvez discuter des modifications potentielles et les examiner avec les collaborateurs, et ajouter des commits de suivi avant que les modifications ne soient fusionnées dans la branche de base.
Si aucun problème n'est soulevé, vous devez d'abord fusionner les modifications dans la branche dev
. Cette fusion déclenche un déploiement d'infrastructure dans l'environnement dev
, ce qui vous permet de tester cet environnement. Une fois que vous avez testé votre infrastructure et que vous êtes sûr de la fiabilité de votre déploiement, vous devez fusionner la branche dev
dans la branche prod
pour déclencher l'installation de l'infrastructure dans l'environnement de production.
Objectifs
- Configurez votre dépôt GitHub.
- Configurez Terraform pour stocker l'état dans un bucket Cloud Storage.
- Accordez des autorisations à votre compte de service Cloud Build.
- Connectez Cloud Build à votre dépôt GitHub.
- Modifiez la configuration de votre environnement dans une branche de fonctionnalité.
- Faites la promotion des modifications dans l'environnement de développement.
- Faites la promotion des modifications dans l'environnement de production.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Prérequis
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Dans Cloud Shell, récupérez l'ID du projet que vous venez de sélectionner :
gcloud config get-value project
Si cette commande ne renvoie pas l'ID du projet, configurez Cloud Shell pour utiliser votre projet. RemplacezPROJECT_ID
par l'ID de votre projet :gcloud config set project PROJECT_ID
- Activez les API requises :
gcloud services enable cloudbuild.googleapis.com compute.googleapis.com
Cette étape peut prendre quelques minutes. - Si vous n'avez jamais utilisé Git dans Cloud Shell, configurez-le avec votre nom et votre adresse e-mail :
git config --global user.email "YOUR_EMAIL_ADDRESS" git config --global user.name "YOUR_NAME"
Git utilise ces informations pour vous identifier en tant qu'auteur des commits que vous créez dans Cloud Shell.
Configurer votre dépôt GitHub
Dans ce tutoriel, vous utilisez un seul dépôt Git pour définir votre infrastructure cloud. Vous orchestrez cette infrastructure grâce à différentes branches correspondant à différents environnements :
- La branche
dev
contient les dernières modifications appliquées à l'environnement de développement. - La branche
prod
contient les dernières modifications appliquées à l'environnement de production.
Grâce à cette infrastructure, vous pouvez toujours faire référence au dépôt pour savoir quelle configuration est attendue dans chaque environnement et pour proposer de nouvelles modifications en les fusionnant d'abord dans l'environnement dev
. Vous faites ensuite la promotion des modifications en fusionnant la branche dev
dans la branche prod
suivante.
Pour commencer, vous allez dupliquer le dépôt solutions-terraform-cloudbuild-gitops.
- Sur GitHub, accédez à https://github.com/GoogleCloudPlatform/solutions-terraform-cloudbuild-gitops.git.
En haut à droite de la page, cliquez sur Fork (Dupliquer).
Vous disposez maintenant d'une copie du dépôt
solutions-terraform-cloudbuild-gitops
avec les fichiers sources.Dans Cloud Shell, clonez ce dépôt dupliqué en remplaçant
YOUR_GITHUB_USERNAME
par votre nom d'utilisateur GitHub :cd ~ git clone https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops.git cd ~/solutions-terraform-cloudbuild-gitops
Le code dans ce dépôt est structuré comme suit :
Le dossier
environments/
contient des sous-dossiers représentant des environnements, tels quedev
etprod
, qui offrent une séparation logique entre les charges de travail à différents stades de maturité (développement et production, respectivement). Bien qu'il soit judicieux d'avoir des environnements aussi similaires que possible, chaque sous-dossier possède sa propre configuration Terraform. Cela permet de garantir qu'ils peuvent avoir des paramètres uniques, si nécessaire.Le dossier
modules/
contient des modules Terraform intégrés. Ces modules représentent des regroupements logiques de ressources connexes et sont utilisés pour partager du code dans différents environnements.Le fichier
cloudbuild.yaml
est un fichier de configuration de compilation qui contient des instructions pour Cloud Build, par exemple pour indiquer comment effectuer des tâches correspondant à un ensemble d'étapes. Ce fichier spécifie une exécution conditionnelle selon la branche à partir de laquelle Cloud Build récupère le code, par exemple :Pour les branches
dev
etprod
, les étapes suivantes sont exécutées :terraform init
terraform plan
terraform apply
Pour toute autre branche, les étapes suivantes sont exécutées :
terraform init
pour tous les sous-dossiersenvironments
terraform plan
pour tous les sous-dossiersenvironments
Pour vous assurer que les modifications proposées sont appropriées pour chaque environnement, terraform init
et terraform plan
sont exécutés pour tous les sous-dossiers environments
. Avant de fusionner la demande d'extraction, vous pouvez passer en revue les plans pour vous assurer que l'accès n'est pas accordé à une entité non autorisée, par exemple.
Configurer Terraform pour stocker l'état dans un bucket Cloud Storage
Par défaut, Terraform stocke l'état localement dans un fichier nommé terraform.tfstate
. Cette configuration par défaut peut rendre l'utilisation de Terraform difficile pour les équipes, en particulier lorsque de nombreux utilisateurs exécutent Terraform en même temps et que chaque ordinateur possède sa propre compréhension de l'infrastructure actuelle.
Pour vous aider à éviter de tels problèmes, cette section permet de configurer un état distant qui pointe vers un bucket Cloud Storage. Un état distant est une fonctionnalité des backends. Dans ce tutoriel, il est configuré dans les fichiers backend.tf
. Par exemple :
Dans les étapes suivantes, vous allez créer un bucket Cloud Storage et modifier quelques fichiers pour qu'ils pointent vers votre nouveau bucket et votre projet Google Cloud.
Dans Cloud Shell, créez le bucket Cloud Storage.
PROJECT_ID=$(gcloud config get-value project) gsutil mb gs://${PROJECT_ID}-tfstate
Activez la gestion des versions des objets pour conserver l'historique de vos déploiements :
gsutil versioning set on gs://${PROJECT_ID}-tfstate
L'activation de la gestion des versions des objets augmente les coûts de stockage. Vous pouvez limiter cette augmentation des coûts en configurant la gestion du cycle de vie des objets afin de supprimer les anciennes versions d'état.
Remplacez l'espace réservé
PROJECT_ID
par l'ID de projet dans les fichiersterraform.tfvars
etbackend.tf
:cd ~/solutions-terraform-cloudbuild-gitops sed -i s/PROJECT_ID/$PROJECT_ID/g environments/*/terraform.tfvars sed -i s/PROJECT_ID/$PROJECT_ID/g environments/*/backend.tf
Sous OS X/MacOS, vous devrez peut-être ajouter deux guillemets (
""
) aprèssed -i
, comme suit :cd ~/solutions-terraform-cloudbuild-gitops sed -i "" s/PROJECT_ID/$PROJECT_ID/g environments/*/terraform.tfvars sed -i "" s/PROJECT_ID/$PROJECT_ID/g environments/*/backend.tf
Vérifiez que tous les fichiers ont bien été mis à jour :
git status
Le résultat ressemble à ceci :
On branch dev Your branch is up-to-date with 'origin/dev'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: environments/dev/backend.tf modified: environments/dev/terraform.tfvars modified: environments/prod/backend.tf modified: environments/prod/terraform.tfvars no changes added to commit (use "git add" and/or "git commit -a")
Procédez au commit et au transfert de vos modifications :
git add --all git commit -m "Update project IDs and buckets" git push origin dev
Selon votre configuration GitHub, vous devrez peut-être vous authentifier pour appliquer les modifications précédentes.
Accorder des autorisations à votre compte de service Cloud Build
Pour permettre au compte de service Cloud Build d'exécuter des scripts Terraform dans le but de gérer des ressources Google Cloud, vous devez lui accorder l'accès approprié à votre projet. Pour plus de simplicité, l'accès à l'éditeur de projet est accordé dans ce tutoriel. Toutefois, lorsque le rôle d'éditeur de projet dispose d'une autorisation étendue, vous devez suivre les bonnes pratiques de votre entreprise en matière de sécurité informatique dans les environnements de production, en fournissant généralement un accès selon la stratégie du moindre privilège.
Dans Cloud Shell, récupérez l'adresse e-mail du compte de service Cloud Build de votre projet :
CLOUDBUILD_SA="$(gcloud projects describe $PROJECT_ID \ --format 'value(projectNumber)')@cloudbuild.gserviceaccount.com"
Accordez l'accès requis à votre compte de service Cloud Build :
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$CLOUDBUILD_SA --role roles/editor
Connecter directement Cloud Build à votre dépôt GitHub
Cette section vous explique comment installer l'application GitHub Cloud Build. Cette installation vous permet de connecter votre dépôt GitHub à votre projet Google Cloud afin que Cloud Build puisse automatiquement appliquer vos fichiers manifestes Terraform chaque fois que vous créez une branche ou que vous transférez du code vers GitHub.
Procédez comme suit pour installer l'application uniquement pour le dépôt solutions-terraform-cloudbuild-gitops
. Vous pouvez également choisir de l'installer pour plusieurs dépôts ou l'ensemble de ceux-ci.
Accédez à la page GitHub Marketplace pour l'application Cloud Build :
Ouvrir la page de l'application Cloud Build
- Si c'est la première fois que vous configurez une application dans GitHub : cliquez sur Configurer avec Google Cloud Build en bas de la page. Cliquez ensuite sur Autoriser cette application à accéder à votre compte GitHub.
- Si ce n'est pas la première fois que vous configurez une application dans GitHub : cliquez sur Configurer l'accès. La page Applications de votre compte personnel s'affiche.
Cliquez sur Configurer dans la ligne Cloud Build.
Sélectionnez Sélectionner uniquement les dépôts, puis sélectionnez
solutions-terraform-cloudbuild-gitops
pour vous connecter au dépôt.Cliquez sur Enregistrer ou Installer ; Le libellé du bouton change en fonction de votre workflow. Vous êtes redirigé vers Google Cloud pour poursuivre l'installation.
Connectez-vous avec votre compte Google Cloud. Si vous y êtes invité, autorisez l'intégration de Cloud Build à GitHub.
Sur la page Cloud Build, sélectionnez votre projet. Un assistant s'affiche.
Dans la section Sélectionner un dépôt, sélectionnez votre compte GitHub et le dépôt
solutions-terraform-cloudbuild-gitops
.Si vous acceptez les conditions d'utilisation, cochez la case puis cliquez sur Se connecter.
Dans la section Créer un déclencheur, cliquez sur Créer un déclencheur :
- Ajoutez un nom de déclencheur, tel que
push-to-branch
. Notez ce nom de déclencheur, car vous en aurez besoin plus tard. - Dans la section Événement, sélectionnez Déployer sur une branche.
- Dans la section Source, sélectionnez
.*
dans le champ Branche. - Cliquez sur Create (Créer).
- Ajoutez un nom de déclencheur, tel que
L'application GitHub Cloud Build est maintenant configurée et votre dépôt GitHub est lié à votre projet Google Cloud. À partir de maintenant, les modifications apportées au dépôt GitHub déclenchent des exécutions de Cloud Build, qui renvoient les résultats à GitHub à l'aide des vérifications GitHub.
Modifier la configuration de votre environnement dans une nouvelle branche de fonctionnalité
Votre environnement est désormais presque entièrement configuré. Il est donc temps de modifier le code de votre environnement de développement.
Sur GitHub, accédez à la page principale de votre dépôt dupliqué.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Assurez-vous que vous vous trouvez dans la branche
dev
.Pour ouvrir le fichier pour modification, accédez au fichier
modules/firewall/main.tf
et cliquez sur l'icône en forme de crayon.À la ligne 30, corrigez la faute de frappe
"http-server2"
dans le champtarget_tags
.La valeur doit être égale à
"http-server"
.Ajoutez un message de commit en bas de page ("Correction de la cible de pare-feu http", par exemple), puis sélectionnez Créer une branche pour ce commit et démarrer une demande de fusion.
Cliquez sur Proposer des modifications.
Sur la page suivante, cliquez sur Create pull request (Créer une demande d'extraction) pour ouvrir une nouvelle demande d'extraction avec votre modification.
Une fois votre demande d'extraction ouverte, une tâche Cloud Build est automatiquement lancée.
Cliquez sur Show all checks (Afficher toutes les vérifications) et attendez que la vérification devienne verte.
Cliquez sur Details (Détails) pour afficher plus d'informations, y compris la sortie de
terraform plan
sur le lien Afficher plus d'informations sur Google Cloud Build.
Ne fusionnez pas encore votre demande d'extraction.
Notez que la tâche Cloud Build a exécuté le pipeline défini dans le fichier cloudbuild.yaml
. Comme indiqué précédemment, ce pipeline présente différents comportements en fonction de la branche à récupérer. La compilation vérifie si la variable $BRANCH_NAME
correspond à un dossier d'environnement. Si oui, Cloud Build exécute terraform plan
pour cet environnement.
Sinon, Cloud Build exécute terraform plan
pour tous les environnements afin de s'assurer que la modification proposée est valable pour tous. Si l'exécution de l'un de ces plans échoue, la compilation échoue.
De même, la commande terraform apply
s'exécute pour les branches de l'environnement, mais elle est complètement ignorée dans les autres cas. Dans cette section, vous avez soumis une modification de code à une nouvelle branche, et aucun déploiement d'infrastructure n'a été appliqué à votre projet Google Cloud.
Forcer l'exécution Cloud Build avant la fusion des branches
Pour vous assurer que les fusions ne peuvent être appliquées que lorsque les exécutions Cloud Build respectives ont abouti, procédez comme suit :
Sur GitHub, accédez à la page principale de votre dépôt dupliqué.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Sous le nom de votre dépôt, cliquez sur Settings (Paramètres).
Dans le menu de gauche, cliquez sur Branches.
Sous Branch protection rules (Règles de protection des branches), cliquez sur Add rule (Ajouter une règle).
Dans le champ Modèle de nom de branche, saisissez
dev
.Dans la section Protéger les branches correspondantes, sélectionnez Exiger la validation des vérifications d'état avant la fusion.
Recherchez le nom du déclencheur Cloud Build créé précédemment.
Cliquez sur Create (Créer).
Répétez les étapes 3 à 7 en définissant le Modèle de nom de branche sur
prod
.
Cette configuration est importante pour protéger les branches dev
et prod
. En effet, les commits doivent d'abord être transférés vers une autre branche avant de pouvoir être fusionnés dans la branche protégée. Dans ce tutoriel, la protection nécessite que l'exécution de Cloud Build réussisse pour que la fusion soit autorisée.
Promouvoir des modifications dans l'environnement de développement
Vous disposez d'une demande d'extraction en attente de fusion. Il est temps d'appliquer l'état de votre choix à votre environnement dev
.
Sur GitHub, accédez à la page principale de votre dépôt dupliqué.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Sous le nom de votre dépôt, cliquez sur Pull requests (Demandes d'extraction).
Cliquez sur la demande d'extraction que vous venez de créer.
Cliquez sur Merge pull request (Fusionner la demande d'extraction), puis sur Confirm merge (Confirmer la fusion).
Vérifiez qu'une nouvelle compilation Cloud Build a été déclenchée :
Ouvrez la compilation et vérifiez les journaux.
Lorsque la compilation est terminée, vous devez voir quelque chose de semblable à ceci :
Step #3 - "tf apply": external_ip = EXTERNAL_IP_VALUE Step #3 - "tf apply": firewall_rule = dev-allow-http Step #3 - "tf apply": instance_name = dev-apache2-instance Step #3 - "tf apply": network = dev Step #3 - "tf apply": subnet = dev-subnet-01
Copiez
EXTERNAL_IP_VALUE
et ouvrez l'adresse dans un navigateur Web.http://EXTERNAL_IP_VALUE
Ce provisionnement peut prendre quelques secondes pour démarrer la machine virtuelle et propager la règle de pare-feu. À terme, Environment: dev s'affiche dans le navigateur Web.
Accédez au fichier d'état Terraform dans votre bucket Cloud Storage.
https://storage.cloud.google.com/PROJECT_ID-tfstate/env/dev/default.tfstate
Promouvoir des modifications dans l'environnement de production
Maintenant que votre environnement de développement est entièrement testé, vous pouvez promouvoir votre code d'infrastructure en production.
Sur GitHub, accédez à la page principale de votre dépôt dupliqué.
https://github.com/YOUR_GITHUB_USERNAME/solutions-terraform-cloudbuild-gitops
Sous le nom de votre dépôt, cliquez sur Pull requests (Demandes d'extraction).
Cliquez sur New pull request (Nouvelle demande d'extraction).
Sélectionnez le dépôt que vous venez de dupliquer sous base repository (dépôt de base).
Pour base, sélectionnez
prod
dans votre propre dépôt de base. Pour compare (comparer), sélectionnezdev
.Cliquez sur Create pull request (Créer une demande de fusion).
Sous title (titre), saisissez un titre tel que
Promoting networking changes
, puis cliquez sur Create pull request (Créer une demande d'extraction).Examinez les modifications proposées, y compris les détails de
terraform plan
de Cloud Build, puis cliquez sur Merge pull request (Fusionner la demande d'extraction).Cliquez sur Confirm merge (Confirmer la fusion).
Dans la console Google Cloud, ouvrez la page Historique de compilation pour voir vos modifications appliquées à l'environnement de production :
Attendez la fin de la compilation, puis consultez les journaux.
À la fin des journaux, vous devez voir quelque chose de semblable à ceci :
Step #3 - "tf apply": external_ip = EXTERNAL_IP_VALUE Step #3 - "tf apply": firewall_rule = prod-allow-http Step #3 - "tf apply": instance_name = prod-apache2-instance Step #3 - "tf apply": network = prod Step #3 - "tf apply": subnet = prod-subnet-01
Copiez
EXTERNAL_IP_VALUE
et ouvrez l'adresse dans un navigateur Web.http://EXTERNAL_IP_VALUE
Ce provisionnement peut prendre quelques secondes pour démarrer la machine virtuelle et propager la règle de pare-feu. À terme, Environment: prod s'affiche dans le navigateur Web.
Accédez au fichier d'état Terraform dans votre bucket Cloud Storage.
https://storage.cloud.google.com/PROJECT_ID-tfstate/env/prod/default.tfstate
Vous avez configuré avec succès un pipeline d'Infrastructure as Code (IaC) sans serveur sur Cloud Build. À l'avenir, vous voudrez peut-être essayer les opérations suivantes :
- Ajouter des déploiements pour des cas d'utilisation distincts
- Créer des environnements supplémentaires pour répondre à vos besoins
- Utiliser un projet par environnement au lieu d'un VPC par environnement
Nettoyage
Une fois que vous avez terminé le tutoriel, nettoyez les ressources que vous avez créées sur Google Cloud pour qu'elles ne vous soient plus facturées à l'avenir.
Supprimer le projet
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Supprimer le dépôt GitHub
Pour éviter de bloquer de nouvelles demandes d'extraction sur votre dépôt GitHub, vous pouvez supprimer vos règles de protection des branches :
- Sur GitHub, accédez à la page principale de votre dépôt dupliqué.
- Sous le nom de votre dépôt, cliquez sur Paramètres.
- Dans le menu de gauche, cliquez sur Branches.
- Dans la section Règles de protection des branches, cliquez sur le bouton Supprimer pour les lignes
dev
etprod
.
Vous pouvez éventuellement désinstaller complètement l'application Cloud Build à partir de GitHub :
Accédez aux paramètres Applications dans GitHub.
Dans l'onglet Applications GitHub installées, cliquez sur Configurer sur la ligne Cloud Build. Ensuite, dans la section Zone de danger, cliquez sur le bouton Désinstaller de la ligne Désinstaller Google Cloud Builder.
En haut de la page, le message suivant s'affiche : "Vous avez terminé. Une tâche a été mise en file d'attente pour désinstaller Google Cloud Build."
Dans l'onglet Applications GitHub autorisées, cliquez sur le bouton Révoquer dans la ligne Google Cloud Build, puis sur Je comprends, révoquer l'accès dans la fenêtre pop-up.
Si vous ne souhaitez pas conserver votre dépôt GitHub :
- Dans GitHub, accédez à la page principale de votre dépôt dupliqué.
- Sous le nom de votre dépôt, cliquez sur Paramètres.
- Faites défiler la page vers le bas jusqu'à la zone de danger.
- Cliquez sur Supprimer ce dépôt et suivez les étapes de confirmation.
Étapes suivantes
- Envisagez d'utiliser les modèles du kit Cloud Foundation pour créer rapidement une base reproductible adaptée aux entreprises dans Google Cloud.
- Observez les environnements Google Cloud reproductibles à grande échelle grâce à des pipelines d'Infrastructure as Code Cloud Build de la conférence Next 2019 sur le flux de travail GitOps décrit dans ce tutoriel.
- Consultez le tutoriel sur la livraison continue de type GitOps avec Cloud Build.
- Découvrez certaines fonctionnalités Cloud Build avancées : Configurer l'ordre des étapes de compilation, Compiler, tester et déployer des artefacts et Créer des étapes de compilation personnalisées.
- Consultez le blog Garantir l'évolutivité et la conformité de votre déploiement Terraform avec Cloud Build.
- Consultez nos ressources sur DevOps.
- Obtenez davantage d'informations sur les fonctionnalités DevOps associées à ce tutoriel :
- Passez notre évaluation DevOps rapide pour comprendre où vous vous situez par rapport au reste du secteur.