Meilleures pratiques pour l'organisation et la gestion des projets

Ces bonnes pratiques vous fournissent les éléments de base pour gérer des projetsCollection d'artefacts qui définissent et gèrent les ressources et l'infrastructure en tant que déploiements de code. réussis et sécurisés sur IBM Cloud®. Les projets sont bénéfiques pour les entreprises réglementées, car ils permettent de mieux gérer les déploiements basés sur le code tout en maintenant la conformité et en collaborant avec les membres de l'équipe sur tous les comptes.

Création d'un compte de projet principal

L'un des principaux avantages des projets IBM Cloud est la possibilité de gérer et de collaborer de manière centralisée à votre infrastructure en tant que déploiements de code. Si vous utilisez une entreprise, l'établissement d'un compte principal ou d'un compte personnel pour stocker tous vos projets permet de gérer et de suivre vos projets dans un seul emplacement.

L'utilité de l'établissement d'un compte principal dépend de la structure de votre entreprise. Les projets peuvent être créés dans un compte et déployer des ressources dans d'autres comptes. Les utilisateurs peuvent afficher uniquement les projets qui se trouvent dans le compte auquel ils sont actuellement connectés. En outre, les rapports de plusieurs projets ne peuvent être générés que pour les projets d'un même compte. Il s'agit d'un autre avantage utile de l'établissement d'un compte d'habitation commun pour tous les projets d'une entreprise ou pour tous les projets ayant un secteur d'activité similaire. En conservant votre projet dans un compte principal et en le déployant dans des comptes distincts pour chaque environnement (développement, test et production) afin de simplifier la gestion de l'entreprise.

Pour faciliter l'identification de l'objectif et des projets dans le compte par tous les utilisateurs, attribuez au compte un nom lisible par l'utilisateur. Par exemple, Front-end UI team et Back-end API team.

Définition d'une méthode d'authentification

Lorsque vous configurez votre architecture déployable, vous devez ajouter une méthode d'authentification. La méthode d'authentification identifie le compte cible où les ressources sont déployées et autorise le déploiement. Vous pouvez choisir de vous authentifier via un profil sécurisé ou un secret existant.

Utilisation de profils sécurisés

Certains services ne peuvent pas entièrement configurer et déployer des architectures à l'aide de profils sécurisés. Pour plus d'informations, voir Problèmes connus et limitations des projets.

Vous pouvez déployer une architecture dans votre propre compte ou dans un autre compte à l'aide de profils sécurisés. En fonction de votre organisation, le déploiement d'une architecture peut nécessiter l'accès à un autre compte à l'aide d'un profil sécurisé et la coordination avec les administrateurs de plusieurs comptes. Si le service de projets IBM Cloud dans un autre compte a besoin d'accéder à votre compte pour déployer une architecture, utilisez des profils de confiance et des ID de service pour autoriser les déploiements dans votre compte. Pour plus d'informations sur la création d'un profil sécurisé pour votre projet, voir Utilisation de profils sécurisés pour autoriser un projet à déployer une architecture.

Utilisation de IBM Cloud® Secrets Manager

Lors du déploiement d'Infrastructure as Code ( IaC ), des secrets sont souvent nécessaires pour configurer l'infrastructure, comme les clés API, les clés SSH et les certificats SSL. Dans ce cas, il est recommandé de stocker ces secrets dans une Secrets Manager instance. Les projets prennent directement en charge le référencement des clés API qui sont stockées dans Secrets Manager en tant qu'entrée dans une architecture déployable. Pour plus d'informations, voir Utilisation d'une clé API avec Secrets Manager pour autoriser le déploiement d'un projet.

Créez une instance de service Secrets Manager dans votre compte de projet principal que vous pourrez utiliser pour tous les projets de ce compte avant de créer votre projet.

Il existe différents types de secret que vous pouvez créer. Utilisez une instance de secret arbitraire pour stocker des clés d'API pour votre projet. Pour plus d'informations, voir Création de secrets arbitraires dans l'interface utilisateur.

Généralement, une seule instance Secrets Manager est utilisée pour tous les projets d'un compte. Les secrets de cette instance peuvent être organisés en groupes de secrets qui s'alignent avec les restrictions d'accès. Par exemple, vous pouvez utiliser un groupe de secrets par projet ou pour un ensemble de projets associés.

Contrôle des déploiements à l'aide d'environnements

Dans un projet, vous pouvez regrouper des configurations associées à l'aide d'un environnement. Un environnement peut également contenir des propriétés telles que des valeurs d'entrée et des détails d'authentification. Ces propriétés sont automatiquement ajoutées à une configuration lorsque vous sélectionnez un environnement, ce qui permet de garantir des déploiements précis sur votre compte cible. Lorsque vous éditez une configuration, vous pouvez sélectionner un environnement à utiliser dans la section Définir les détails.

Avantages liés à l'utilisation des environnements

Les environnements facilitent le contrôle des déploiements. En spécifiant un environnement et en ajoutant des propriétés, vous savez que les mêmes valeurs sont partagées entre les configurations qui utilisent cet environnement. Dans une configuration, vous pouvez remplacer toutes les valeurs fournies automatiquement par un environnement.

Les environnements permettent de regrouper des configurations associées au sein d'un projet. Par exemple, vous disposez d'un ensemble de configurations que vous souhaitez déployer sur le même compte cible que votre compte de développement. Vous pouvez créer un environnement de développement et ajouter les détails d'authentification du compte cible à cet environnement. La méthode d'authentification est ajoutée à chaque configuration qui utilise l'environnement de développement.

Bien que vous puissiez créer autant d'environnements que vous le souhaitez, il est recommandé de limiter le nombre d'environnements dans votre projet. L'utilisation d'un ensemble d'environnements standard pour vos déploiements entre comptes facilite la configuration et le déploiement d'architectures.

Pour plus d'informations, voir Création d'un environnement.

Organisation de vos configurations

Envisagez d'organiser toutes les configurations associées en un seul projet. Ainsi, vous pouvez gérer les déploiements à partir d'un seul emplacement et vous assurer qu'ils sont sécurisés et conformes. Il peut s'agir d'une ou de plusieurs architectures déployables pour créer l'infrastructure nécessaire, qui doit ensuite être répliquée pour prendre en charge plusieurs régions et environnements tels que le développement, le test et la production.

Utilisez une convention de dénomination pour vos configurations afin que les utilisateurs puissent comprendre la fonction de chaque configuration. Par exemple, dans un déploiement qui utilise une architecture déployable VPC Base et une architecture déployable de cluster Kubernetes reposant sur VPC Base, vous pouvez nommer vos configurations comme suit:

Exemples de noms de configuration
Nom architecture déployable Environnement Remarques
Dev-VPC-Global Base VPC Développement Créer le VPC de base pour l'environnement de développement
Dev-Kub-Dallas Cluster Kubernetes Développement Créer le cluster à Dallas pour le développement
Dev-Kub-Londres Cluster Kubernetes Développement Créer le cluster à Londres pour le développement
Prod-VPC-Global Base VPC Production Créer le VPC de base pour l'environnement de production
Prod-Kub-Dallas Cluster Kubernetes Production Création du cluster à Dallas pour la production
Prod-Kub-Londres Cluster Kubernetes Production Créer le cluster à Londres pour la production
Prod-Kub-Tokyo Cluster Kubernetes Production Créer le cluster à Tokyo pour la production
Prod-Kub-Sydney Cluster Kubernetes Production Créer le cluster à Sydney pour la production

Vous pouvez dupliquer la configuration de développement dans le fichier project.json et la modifier si nécessaire pour créer rapidement des déploiements de production à partir de leurs déploiements de développement testés.

Création de groupes d'accès pour les projets

L'accès aux projets est contrôlé par Identity and Access Management (IAM). Il est recommandé de créer deux ou trois groupes d'accès par projet et d'affecter les utilisateurs qui travaillent sur le projet à l'un de ces groupes d'accès. Par exemple, vous pouvez créer un* Nom du projet*-Groupe d'accès lecteur qui fournit un accès en lecture seule au projet pour les utilisateurs qui ont besoin de surveiller les coûts ou la disponibilité et un* Nom du projet*-Groupe d'accès Writer pour les utilisateurs opérationnels qui doivent apporter des modifications à un projet et déployer des ressources. Si nécessaire, vous pouvez créer deux groupes d'accès en écriture, un pour les utilisateurs qui peuvent ajouter des configurations et des valeurs d'entrée complètes et un autre pour les utilisateurs qui peuvent déployer des ressources.

Groupes et rôles d'accès aux projets
Groupe d'accès Rôles
Nom du projet-Lecteur Lecteur, Afficheur
Nom du projet-Écrivain Gestionnaire, Opérateur

Pour créer de nouveaux projets, les utilisateurs doivent disposer d'un accès spécifique. Pour plus d'informations, voir Affectation d'accès utilisateur à des projets.

La surveillance nécessite des éléments d'attention

Les éléments nécessitant une attention particulière sont utilisés pour surveiller la validation, les approbations, les échecs et les mises à jour de version. En vérifiant régulièrement les éléments nécessitant une attention particulière, vous pouvez vous assurer que votre projet et votre configuration sont à jour et conformes.

Ajout de balises à des projets

Vous pouvez appliquer des balises pour organiser, suivre et gérer vos projets. Il peut être utile d'ajouter des balises aux projets connexes, voire une balise pour identifier les projets temporaires, tels que les infrastructures utilisées pour une démonstration client ou un prototype qui n'est plus nécessaire. Cela permet de localiser et de gérer facilement les projets temporaires.

Les étiquettes ne sont pas sensibles à la casse et peuvent comporter jusqu'à 128 caractères. Les caractères autorisés sont les suivants : A à Z, 0 à 9, espace, trait de soulignement, trait d'union, point et virgule.

Les ressources d'un projet reçoivent automatiquement des balises de service avec l'ID de projet et l'ID de configuration auxquels elles sont associées. Pour plus d'informations, voir Suivi de l'utilisation et des dépenses pour les projets.

Annuler le déploiement des ressources créées par les projets

Lorsque vous déployez votre configuration, les ressources créées peuvent être gérées en tant que groupe dans votre projet. Ces ressources sont créées en fonction du plan Terraform et peuvent être gérées individuellement dans votre espace de travail Schematics.

Bien que vous puissiez détruire des ressources individuelles à partir de l'espace de travail Schematics, cette opération n'est pas recommandée pour les ressources créées à l'aide d'un projet, car elle entraîne une dérive. Au lieu de cela, vous pouvez annuler le déploiement de toutes les ressources associées à une configuration simultanément à partir de l'interface utilisateur du projet en un seul clic. Ainsi, le déploiement est supprimé de l'environnement cible dans lequel votre configuration a été déployée. Annuler le déploiement des ressources sans supprimer la configuration peut être utile si vous devez déployer à nouveau votre configuration ultérieurement.

Par défaut, lorsque vous supprimez un projet ou une configuration, toutes les ressources déployées sont automatiquement annulées. Il est recommandé de conserver ce paramètre activé, mais vous pouvez le désactiver en ouvrant votre projet et en accédant à Gérer > Paramètres. Si vous désactivez ce paramètre, les ressources restent déployées lorsque vous supprimez une configuration ou un projet, mais vous perdez la possibilité de gérer facilement ces ressources dans le projet. Les ressources déployées peuvent continuer à accumuler des coûts pour votre compte cible si elles restent disponibles après la suppression d'un projet ou d'une configuration. Pour plus d'informations, voir Annuler le déploiement des ressources.