Planification de l'utilisation des espaces de travail

Planifiez et concevez vos espaces de travail en utilisant les questions suivantes comme invites:

  • Comment associer des espaces de travail à des référentiels Git ?
  • De combien d'espaces de travail mon environnement d'application a-t-il besoin?
  • Comment réutiliser les fichiers de configuration Terraform entre les environnements et les espaces de travail?
  • Comment contrôler l'accès à mes espaces de travail et les gérer?

Espaces de travail et référentiels Git

Les espaces de travail utilisent des modèles Terraform provenant de référentiels d' Git s privés ou publics tels que GitHub, GitLab, Bitbucket et Azure DevOps. Le tableau ci-après indique le format de la source de référentiels.

Référentiels Git
Référentiels Git URL
GitHub https://github.com/<your_user_name>/<repo_name>/tree/<branch_name>/<folder_name>
GitLab https://gitlab.com/<your_user_name>/<project_name>/tree/<branch_name>/<folder_name>
Bitbucket https://bitbucket.org/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://<username>@bitbucket.org/<workspace_name>/tf_cloudless_sleepy/src/master
Azure DevOps https://azure.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://visualstudio.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>

De combien d'espaces de travail mon environnement d'application a-t-il besoin?

Le nombre d'espaces de travail dont vous avez besoin dans IBM Cloud Schematics est déterminé par la structure de votre application et les environnements dont vous avez besoin pour développer, tester et publier votre application ou votre micro-service.

En règle générale, envisagez des espaces de travail distincts pour chaque microservice et les environnements que vous utilisez. Par exemple, si vous avez une application produit qui se compose de composants de microservices de recherche, de paiement et d'évaluation, envisagez de créer des espaces de travail distincts pour chaque composant de microservice et leurs environnements de développement, de test et de production. Avec des espaces de travail distincts pour chaque composant et environnement, vous pouvez développer, déployer et mettre à jour vos fichiers de configuration Terraform et les ressources Cloud associées sans affecter les autres composants.

Examinez l'image suivante, en observant la structure de l'espace de travail IBM Cloud Schematics pour une application qui se compose de trois microservices.

Structure de l'espace de travail pour IBM Cloud Schematics
Structure de l'espace de travail pour IBM Cloud Schematics

Dans les organisations où les responsabilités d'infrastructure sont réparties entre plusieurs équipes, il n'est pas recommandé d'utiliser un espace de travail pour gérer des environnements de transfert ou de production entiers. Lorsque vous déployez toutes vos ressources Cloud à l'aide d'un seul espace de travail, il peut devenir difficile pour les différentes équipes de coordonner les mises à jour et de gérer l'accès à ces ressources. Des espaces de travail distincts, partageant des définitions d'infrastructure à l'aide de sources de données d'état distant, fournissent un mécanisme permettant de créer des zones de responsabilité distinctes.

Comment structurer mes référentiels d' Git s pour cartographier mes espaces de travail?

Structurez votre référentiel d' Git s de manière à disposer d'un référentiel unique pour tous les fichiers de configuration Terraform qui composent votre microservice, et utilisez des variables d'entrée dans les branches ou répertoires Schematics ou GitHub pour différencier vos environnements de développement, de test et de production.

Le tableau ci-après contient une liste d'options vous permettant de structurer votre référentiel Git afin de mapper les différents environnements d'espace de travail.

Structure du référentiel Git
Option Description
Un référentiel Git, utilisation de variables pour distinguer les différents environnements Créez un référentiel Git dans lequel stocker les fichiers de configuration Terraform qui constituent votre composant de microservice. Faites en sorte de créer des fichiers de configuration Terraform aussi généraux que possible afin de pouvoir réutiliser la même configuration dans vos environnements. Pour configurer les caractéristiques de votre environnement de développement, de préproduction et de production, utilisez des variables d'entrée Terraform dans vos fichiers de configuration. Les variables d'entrée sont automatiquement chargées dans IBM Cloud Schematics lorsque vous créez votre espace de travail. Pour personnaliser votre espace de travail, entrez les valeurs propres à votre environnement pour vos variables. Cette configuration est utile si le cycle de vie du composant de microservice est géré par une équipe et si la configuration de vos environnements n'est pas très différente.
Un référentiel Git, utilisation de branches pour distinguer les différents environnements Créez un référentiel Git pour votre composant de microservice et utilisez différentes branches GitHub pour stocker les fichiers de configuration Terraform pour chacun de vos environnements. Cette configuration permet de distinguer clairement vos environnements et offre davantage de contrôle sur les personnes qui sont autorisées à accéder et à modifier une configuration particulière. Assurez-vous de configurer la façon dont les modifications dans un fichier de configuration sont remplies entre les branches pour éviter que vous n'avez des configurations différentes dans chaque environnement.
Un référentiel Git, utilisation de répertoires pour distinguer les différents environnements Pour les organisations qui préfèrent des branches à courte durée de vie et où les configurations diffèrent considérablement d'un environnement à l'autre, envisagez de créer des répertoires représentant les différentes configurations de vos environnements. Avec cette configuration, tous vos répertoires sont à l'écoute des modifications qui sont validées dans la branche master. Assurez-vous de configurer la façon dont les modifications dans un fichier de configuration sont remplies dans les répertoires pour éviter d'avoir des configurations différentes dans chaque environnement.
Un référentiel Git par environnement Utilisez un référentiel Git pour chacun de vos environnements. Avec cette configuration, vous avez une relation 1:1 entre votre espace de travail et le référentiel Git et vous pouvez appliquer des droits d'accès distincts pour chacun de vos référentiels Git. Assurez-vous que votre équipe peut gérer plusieurs référentiels Git et faire en sorte qu'ils restent synchronisés.

Comment puis-je réutiliser des fichiers de configuration dans des environnements et des espaces de travail ?

Essayez de réduire au minimum le nombre de fichiers de configuration Terraform que vous devez gérer en créant des modèles Terraform standardisés et en utilisant des variables pour personnaliser l'utilisation d'un modèle en fonction de vos besoins.

Vous pouvez à présent utiliser des modules Terraform provenant du registre de modules Terraform pour IBM Cloud.

Les modèles ou modules Terraform normalisés vous permettent de faire en sorte que les meilleures pratiques de développement soient suivies au sein de votre organisation et que tous les fichiers de configuration Terraform aient la même structure. Lorsqu'ils connaissent la structure d'un fichier de configuration Terraform, vos développeurs peuvent plus facilement comprendre un fichier, déclarer des variables, contribuer au code et traiter des incidents.

Comment puis-je contrôler l'accès à mes espaces de travail ?

IBM Cloud Schematics est entièrement intégré à IBM Cloud® Identity and Access Management. Pour contrôler l'accès à un espace de travail ainsi que les personnes autorisées à exécuter votre code d'infrastructure à l'aide d'IBM Cloud Schematics, voir Gestion de l'accès utilisateur.

Que dois-je savoir lorsque je dispose d'un référentiel précédemment utilisé avec Terraform standalone?

IBM Cloud Schematics, qui fournit Terraform en tant que service, vous permet de réutiliser vos modèles Terraform existants avec des espaces de travail. Selon la façon dont vos modèles Terraform sont écrits et les référentiels Git structurés, vous devrez peut-être apporter des modifications pour utiliser avec succès IBM Cloud Schematics.

  • Déclaration de bloc de fournisseur: Étant donné que IBM Cloud Schematics est intégré à IBM Cloud® Identity and Access Management, votre clé d'API IBM Cloud est automatiquement extraite pour toutes les ressources IAM et vous n'avez pas à fournir ces informations dans le bloc provider. Cependant, la clé API n'est pas récupérée pour les ressources d'infrastructure classiques. Pour plus d'informations, voir Configuration du bloc provider.
  • Ligne de commande Terraform et plug-in du fournisseur IBM Cloud : Pour utiliser IBM Cloud Schematics, vous n'avez pas besoin d'installer la ligne de commande Terraform ou IBM Cloud Provider Plug-in for Terraform. Si vous souhaitez automatiser la mise à disposition de ressources, utilisez plutôt le plug-in de ligne de commande IBM Cloud Schematics.

Configuration d'une chaîne d'outils de distribution continue pour votre espace de travail

Connectez votre référentiel source à un pipeline de distribution continue dans IBM Cloud pour générer automatiquement un plan d'exécution Terraform et exécuter votre code Terraform dans IBM Cloud chaque fois que vous mettez à jour vos fichiers de configuration Terraform.

  1. Si vous ne possédez pas encore d'instance de service Continuous Delivery dans votre compte, créez-en une.
    1. Dans le catalogue IBM Cloud, ouvrez le service Continuous Delivery.
    2. Sélectionnez la région IBM Cloud dans laquelle vous souhaitez créer le service.
    3. Sélectionnez un plan de tarification.
    4. Entrez un nom pour votre instance de service, sélectionnez un groupe de ressources et entrez les balises que vous souhaitez associer à votre instance de service.
    5. Cliquez sur Créer pour créer l'instance de service dans votre compte.
  2. Dans le tableau de bord de l'espace de travail, sélectionnez un espace de travail.
  3. Sélectionnez l'onglet Paramètres.
  4. Dans la section Récapitulatif, cliquez sur Activer la distribution continue.
  5. Configurez votre chaîne d'outils.
    1. Entrez un nom pour votre chaîne d'outils et sélectionnez la région et le groupe de ressources dans lesquels vous souhaitez déployer cette chaîne d'outils. La région et le groupe de ressources peuvent être différents de la région et du groupe de ressources que vous avez utilisés pour votre espace de travail Schematics.
    2. Sélectionnez le type de référentiel source dans lequel vos fichiers de configuration Terraform sont stockés. Par exemple : GitHub.
    3. Passez en revue les informations relatives à votre référentiel source. Par exemple, si vos fichiers Terraform sont stockés dans GitHub, consultez le serveur GitHub et le référentiel pour lesquels vous souhaitez créer une chaîne d'outils de distribution continue. Ces zones sont préremplies en fonction de la configuration de votre espace de travail.
    4. Facultatif : indiquez si vous voulez activer le suivi des modifications du code et des problèmes Git pour votre chaîne d'outils.
  6. Sélectionnez l'icône Delivery Pipeline pour configurer votre pipeline de distribution.
    1. Vérifiez que l'ID d'espace de travail qui s'affiche est correct.
    2. Entrez une clé d'API IBM Cloud. Si vous ne disposez pas d'une clé d'API, cliquez sur Nouveau pour en créer une.
  7. Cliquez sur Créer pour terminer la configuration de votre chaîne d'outils. Une présentation des outils qui ont été configurés pour votre chaîne d'outils s'affiche.
  8. Ouvrez Delivery Pipeline. Delivery Pipeline inclut des étapes permettant d'extraire des mises à jour de votre référentiel source, de créer un plan d'exécution Terraform, d'appliquer ce plan et d'exécuter un diagnostic d'intégrité sur votre espace de travail.
  9. Mettez à jour le fichier Terraform dans votre référentiel source et examinez la façon dont cette modification est traitée dans votre pipeline de distribution. Si l'une des étapes échoue, cliquez sur Afficher les journaux et l'historique pour commencer à identifier les erreurs. Pour plus d'informations sur la consultation des journaux et de l'historique, voir Consulter les détails d'une tâche d' Schematics.