Que sont les modules et les architectures déployables?
La création d'une infrastructure d'application sécurisée, conforme et évolutive peut être difficile à configurer et coûteuse à gérer. Au lieu de déterminer comment assembler une architecture d'infrastructure conforme par vous-même, vous pouvez tirer parti des modules et des architectures déployables. Les modules et les architectures déployables peuvent vous aider à créer une infrastructure sur la façon dont les ressources sont déployées dans les comptes de votre organisation. En utilisant ces configurations réutilisables, vous pouvez définir la norme pour le déploiement une fois et vous assurer qu'elle est facilement reproductible pour chaque membre de votre organisation.
Par exemple, pensez à un architecte qui construit un complexe d'appartements. Ces conceptions sont généralement exécutées de manière modulaire. Il y a des modèles pour les appartements standard d'une chambre, deux ou trois chambres. Le constructeur peut combiner les appartements standard, chacun fonctionnel à sa manière, dans un ensemble de vie plus grand, plus complexe, mais fonctionnel. IBM a appliqué cette même analogie au déploiement de solutions sur le cloud. Au lieu que votre organisation passe des mois à trouver comment obtenir des services et des logiciels pour travailler ensemble, vous pouvez utiliser les modèles bien structurés de IBM Cloud. Chaque modèle est présenté sous la forme de blocs de construction automatisés et composables, appelés modules et architectures déployables.
Qu'est-ce qu'un module ?
Un module est une unité autonome de code d'automatisation qui peut être réutilisée par les développeurs et partagée dans le cadre d'un système plus vaste. Tout comme les packages Node.js ou Python, les modules sont pratiques pour les développeurs qui gèrent des ressources associées. Bien qu'il soit possible d'utiliser les modules seuls, ils sont plus puissants lorsque vous les combinez pour créer une architecture déployable. Les modules créés par IBM Cloud sont mis à disposition dans l'organisation GitHub publique IBM des modules Terraform. Par exemple, le cluster VPC Red Hat® OpenShift® sur le module IBM Cloud installe et configure un cluster Red Hat OpenShift sur IBM Cloud.
Qu'est-ce qu'une architecture déployable?
Une architecture déployable est une automatisation de cloud permettant de déployer un canevas d'architecture commun qui combine une ou plusieurs ressources de cloud. Il est conçu pour fournir un déploiement simplifié par les utilisateurs, l'évolutivité et la modularité. Une architecture déployable intègre un ou plusieurs modules. Les architectures déployables sont codées dans Terraform, que vous configurez avec des variables d'entrée pour obtenir le comportement souhaité. Pour créer une architecture déployable plus complexe, vous pouvez empiler des architectures déployables sans modifier le code Terraform.
Un exemple d'architecture déployable est l'automatisation en nuage pour Secrets Manager. Cette architecture déployable prévoit une instance IBM Cloud Secrets Manager comme solution modulaire. Vous pouvez utiliser cette architecture pour gérer les secrets en toute sécurité avec votre compte IBM Cloud. L'automatisation de l'informatique en nuage pour Secrets Manager a un champ d'application restreint. Elle ne déploie qu'une instance Secrets Manager, bien que l'architecture déployable puisse également créer un porte-clés IBM Key Protect et une clé pour chiffrer les données s'il n'en existe pas.
Les architectures déployables peuvent avoir une portée plus large, comme par exemple VPC landing zone. VPC landing zone prévoit plusieurs nuages privés virtuels dans un modèle de réseau en étoile relié par une passerelle de transit. Il inclut un certain nombre de services de prise en charge qui sont utilisés pour la surveillance et la sécurité des charges de travail qui s'exécutent sur les VPC.
Les architectures déployables qui sont générées et gérées par des experts dans IBM Cloud sont mises à votre disposition dans le catalogueIBM Cloud. Si vous choisissez de créer votre propre version de ces architectures déployables ou d'en créer une à partir de zéro, vous pouvez intégrer votre architecture déployable dans un catalogue privé et partager votre solution prête à être déployée avec votre organisation via le catalogue.
Que signifie empiler des architectures déployables?
Pour un cas d'utilisation plus complexe, vous pouvez empiler les architectures pour former une solution complète de bout en bout pour le déploiement d'une application ou d'une infrastructure complexe. Contrairement aux modules individuels ou aux architectures déployables, qui fournissent des fonctionnalités spécifiques, l'empilement combine plusieurs architectures déployables pour former une solution complète qui peut être facilement déployée et gérée. Tout comme les modules peuvent être combinés pour créer une architecture déployable, les architectures déployables peuvent être empilées pour créer une solution plus complète. L'empilement consiste à relier les architectures entre elles pour créer une architecture complexe pouvant être déployée. Cette liaison est réalisée en spécifiant des références dans les entrées de chaque architecture déployable à l'aide d'une notation de référence. Il n'est pas nécessaire d'être un expert en Terraform, ni d'avoir des compétences en codage Terraform, pour empiler des architectures et les déployer.
Prenons l'exemple de l'automatisation de l'informatique en nuage pour Secrets Manager. Cette architecture déployable comprend le module Secrets Manager, qui crée une instance Secrets Manager. Si vous n'avez besoin que d'une instance de Secrets Manager, cette architecture déployable est un choix approprié. Cependant, la gestion sécurisée des secrets n'est qu'un élément du maintien de la sécurité dans l'informatique dématérialisée. Pourquoi ne pas effectuer des analyses de conformité afin de toujours connaître l'état de vos ressources? Ou recevoir des notifications d'événements critiques sur votre compte IBM Cloud? La fondation Cloud pour la sécurité et l'observabilité tire parti de la gamme complète de services de sécurité offerts par IBM Cloud. Il a été créé en combinant l'automatisation du cloud avec Secrets Manager des architectures déployables qui fournissent d'autres IBM Cloud services. Event Notifications Cette architecture déployable offre une solution de sécurité plus complète qu'elle Secrets Manager ne peut fournir à elle seule.
Vous pouvez empiler des architectures déployables dans un projet IBM Cloud et les publier ensemble dans un catalogue sans beaucoup d'étapes de validation supplémentaires. Vous pouvez également empiler les architectures au fur et à mesure que vous intégrez une solution dans un catalogue privé. À partir de là, vous pouvez le partager avec d'autres personnes afin de leur éviter de devoir le reconstruire elles-mêmes.
Cette solution complexe tire une grande partie de son coût, de sa conformité, de son soutien et des garanties de qualité qu'elle offre de ses architectures déployables incluses. Cependant, cette solution complexe a une version, une description et un diagramme d'architecture uniques. Si une mise à jour est apportée à une architecture déployable empilée avec d'autres dans un catalogue, l'ensemble de la solution doit être mis à jour par l'utilisateur afin d'utiliser la dernière version de ce composant de l'architecture déployable. La mise à jour de l'ensemble de la solution vers une nouvelle version permet de s'assurer que la dernière mise à jour d'une architecture unique fonctionne correctement au sein de la solution globale.
Cependant, chaque architecture déployable possède des états de configuration indépendants, ce qui permet de la déployer, de la mettre à jour ou de l'annuler indépendamment. Par exemple, vous savez déjà que la la fondation Cloud pour la sécurité et l'observabilité comprend l'automatisation Cloud pour l'architecture déployable Secrets Manager, entre autres. Si Cloud automation for Secrets Manager est mis à jour, La fondation Cloud pour la sécurité et l'observabilité doit être mis à jour pour utiliser la dernière version de Secrets Manager. Cependant, chaque architecture incluse dans la la fondation Cloud pour la sécurité et l'observabilité n'a pas besoin d'être redéployée par l'utilisateur qui consomme cette solution. Lorsque l'utilisateur met à jour son projet pour utiliser la dernière version, seul le site Secrets Manager doit être redéployé.
Que comprend une architecture déployable?
Une architecture déployable peut inclure des variantes, avoir des dépendances ou être empilée ensemble pour créer des solutions plus complexes.
- Variantes
-
Une variante est un type d'architecture déployable qui applique des capacités ou une complexité différentes à une architecture déployable existante. Par exemple, il peut y avoir une variante de démarrage rapide de votre architecture déployable qui dispose de capacités de base pour un déploiement simple et peu coûteux à tester en interne. De plus, vous pouvez avoir une variante standard un peu plus complexe et prête à être utilisée en production.
- Architectures requises
-
Une architecture déployable peut contenir des entrées qui nécessitent les sorties d'autres architectures déployables pour être déployées avec succès. Cette relation entre une architecture déployable et une autre architecture qu'elle requiert est communément appelée dépendance. Vous pouvez respecter les dépendances de deux manières : en empilant des architectures déployables ou en intégrant une architecture déployable à un catalogue privé et en l'étendant à d'autres architectures.
dépendant d'une autre architecture - Architectures optionnelles
-
Les architectures déployables sont conçues pour être flexibles, de sorte que vous pouvez facilement empiler des architectures pour construire une solution plus complète. Cependant, une architecture déployable généralement utile peut ne pas inclure les options spécifiques dont vous avez besoin pour répondre à un cas d'utilisation complexe. Par exemple, quelle base de données pour votre application Java? Avez-vous besoin de notifications d'événements, d'une file d'attente de messages ou d'un autre service optionnel qui n'est pas inclus par défaut? Les architectures déployables optionnelles peuvent être empilées avec les architectures déployables obligatoires afin de résoudre ce problème de personnalisation pour les utilisateurs.
- Architectures interchangeables
-
Qu'une architecture soit nécessaire pour satisfaire une dépendance ou qu'elle soit incluse en tant qu'extension facultative d'une architecture, les utilisateurs peuvent avoir besoin d'une plus grande flexibilité. Vous savez peut-être que votre application Java fonctionne avec une base de données optionnelle - mais de quelle base de données vos utilisateurs ont-ils besoin? La spécification d'architectures interchangeables pour les utilisateurs les aide à personnaliser la solution de bout en bout pour répondre à leurs besoins spécifiques. Après avoir empilé toutes les architectures optionnelles ou requises, vous pouvez regrouper les architectures comme étant interchangeables les unes avec les autres. L'utilisateur consommateur peut alors sélectionner l'architecture requise qu'il souhaite utiliser pour satisfaire une dépendance, ou sélectionner une architecture optionnelle s'il souhaite étendre son cas d'utilisation.
Des architectures optionnelles et interchangeables peuvent être ajoutées au fur et à mesure que vous intégrez une architecture déployable dans un catalogue privé. Actuellement, l'empilement d'architectures déployables dans un projet ne prend pas en charge les architectures optionnelles ou interchangeables.
Que sont les projets et comment fonctionnent-ils avec les architectures déployables?
Un projet IBM Cloud est un outil de gestion conçu pour organiser et fournir une visibilité sur un projet réel existant dans votre organisation. Un projet gère toutes les instances configurées d'une architecture déployable et les ressources associées aux raisons réelles de leur déploiement. Les projets stockent des instances d'architecture déployable versionnées et organisent les instances et les ressources dans des environnements afin d'améliorer la visibilité du cycle de vie de développement. Un environnement est un groupe d'instances d'architecture déployable associées qui partagent des valeurs pour des déploiements plus simples. Par exemple, développement, test ou prod.
Les projets sont chargés de s'assurer que seules les architectures déployables approuvées peuvent être déployées. En outre, ils peuvent aider à s'assurer que les architectures et les ressources qu'ils ont créées sont à jour, conformes et que la dérive ne se produit pas au fil du temps. Par exemple, vous pouvez avoir un projet d'application de gestion de compte. Ce projet est conçu pour gérer toutes les ressources que l'application de gestion des comptes doit déployer dans un environnement de développement, de test ou de production. Chaque environnement possède les mêmes variables, telles qu'une région ou un préfixe, mais possède des valeurs différentes. Lorsqu'une architecture déployable est affectée à un environnement via un projet, ses valeurs d'entrée peuvent automatiquement référencer n'importe laquelle des propriétés de l'environnement ayant le même nom. Bien que les projets IBM Cloud soient faciles à créer et à mettre à jour, ils ne sont pas modélisés ou optimisés pour la réplication ou le partage.
Comment puis-je savoir quelle solution créer?
Si vous prévoyez de créer votre propre solution, la portée, le couplage, la possibilité de la déployer et l'objectif de votre solution doivent tous être pris en compte. Pour obtenir des conseils et des cas d'utilisation afin de vous aider à décider ce que vous prévoyez de générer, voir Planification et recherche pour la conception d'une architecture et Comment choisir le type de composant à créer?.
Le tableau suivant fournit une présentation générale de la raison pour laquelle vous pouvez créer les différents composants.
| Objectif | Méthode recommandée | Pourquoi ? |
|---|---|---|
| Création d'une bibliothèque de composants d'automatisation partageables | Créer un module | Les modules fournissent une automatisation réutilisable et organisée pour accélérer le processus pour ceux qui créent et configurent des architectures déployables. |
| Vérification de la sécurité et de la conformité de l'environnement de cloud de votre organisation | Créer une architecture déployable | Les architectures déployables sont conditionnées de manière à ce que vous puissiez définir un déploiement sécurisé et conforme une seule fois et vous assurer que tous les membres de votre organisation répètent le déploiement de la même manière. |
| Architecture de vos propres solutions | Empiler des architectures déployables | En combinant des architectures, vous pouvez créer une solution de bout en bout plus complexe pour votre organisation. |