¿Qué son los módulos y las arquitecturas desplegables?
La creación de una infraestructura de aplicaciones segura, compatible y escalable puede ser difícil de configurar y costosa de mantener. En lugar de averiguar cómo ensamblar una arquitectura de infraestructura compatible por su cuenta, puede aprovechar los módulos y las arquitecturas desplegables. Los módulos y las arquitecturas desplegables pueden ayudarle a crear una infraestructura sobre cómo se despliegan los recursos en las cuentas de su organización. Al trabajar con estas configuraciones reutilizables, puede definir el estándar para el despliegue una vez y asegurarse de que sea fácilmente repetible para cada miembro de la organización.
Por ejemplo, piense en un arquitecto que está construyendo un complejo de apartamentos. Estos diseños se ejecutan típicamente de una manera modular. Hay patrones para apartamentos estándar de un dormitorio, dos o tres dormitorios. El constructor puede combinar los apartamentos estándar, cada uno funcional a su manera, en un arreglo de vida más grande, más complejo, pero funcional. IBM ha aplicado esta misma analogía al despliegue de soluciones en la nube. En lugar de que su organización dedique meses a averiguar cómo conseguir que los servicios y el software funcionen juntos, puede utilizar los patrones bien estructurados de IBM Cloud. Cada patrón se empaqueta como bloques de construcción componibles y automatizados, conocidos como módulos y arquitecturas desplegables.
¿Qué es un módulo?
Un módulo es una unidad autónoma de código de automatización que los desarrolladores pueden reutilizar y compartir como parte de un sistema más grande. De forma similar a los paquetes Node.js o Python, los módulos son una comodidad para los desarrolladores que gestionan recursos relacionados. Aunque es posible utilizar módulos solos, son más potentes cuando los combina para crear una arquitectura desplegable. Los módulos creados por IBM Cloud están disponibles en la organización deIBM módulos de Terraform públicos GitHub. Por ejemplo, el clúster de VPC de Red Hat® OpenShift® en el módulo IBM Cloud instala y configura un clúster de Red Hat OpenShift en IBM Cloud.
¿Qué es una arquitectura desplegable?
Una arquitectura desplegable es la automatización de nube para desplegar un patrón de arquitectura común que combina uno o más recursos de nube. Está diseñado para proporcionar un despliegue simplificado por usuarios, escalabilidad y modularidad. Una arquitectura desplegable incorpora uno o más módulos. Las arquitecturas desplegables se codifican en Terraform, que se configura con variables de entrada para lograr el comportamiento que desee. Para crear una arquitectura desplegable más compleja, puede apilar arquitecturas desplegables sin necesidad de editar el código de Terraform.
{: caption="que contiene módulos*
Un ejemplo de arquitectura desplegable es la automatización en la nube para Secrets Manager. Esta arquitectura desplegable suministra una instancia de IBM Cloud Secrets Manager como solución modular. Puede utilizar esta arquitectura para gestionar de forma segura los secretos con su cuenta de IBM Cloud. La automatización en la nube para Secrets Manager tiene un alcance limitado. Sólo despliega una instancia de Secrets Manager, aunque la arquitectura desplegable también puede crear opcionalmente un llavero IBM Key Protect y una clave para cifrar los datos si no existe.
Las arquitecturas desplegables pueden tener un alcance más amplio, como VPC landing zone. VPC landing zone aprovisiona varias nubes privadas virtuales en un patrón de red hub-and-spoke conectado por una pasarela de tránsito. Incluye una serie de servicios de soporte que se utilizan para la supervisión y la seguridad de las cargas de trabajo que se ejecutan en las VPC.
Las arquitecturas desplegables creadas y mantenidas por expertos en IBM Cloud se ponen a su disposición en el catálogo de IBM Cloud. Si elige crear su propia versión de estas arquitecturas desplegables, o crear una desde cero, puede incorporar la arquitectura desplegable a un catálogo privado y compartir la solución lista para desplegar con la organización a través del catálogo.
¿Qué significa apilar arquitecturas desplegables?
Para un caso de uso más complejo, puede apilar arquitecturas para formar una solución completa de extremo a extremo para desplegar una aplicación o infraestructura compleja. A diferencia de los módulos individuales o las arquitecturas desplegables, que proporcionan funcionalidades específicas, el apilamiento combina múltiples arquitecturas desplegables para formar una solución integral que puede desplegarse y gestionarse fácilmente. Al igual que los módulos pueden combinarse para crear una arquitectura desplegable, las arquitecturas desplegables pueden apilarse para crear una solución más amplia. El apilamiento incluye la vinculación de las arquitecturas entre sí para crear una arquitectura compleja desplegable. Esta vinculación se consigue especificando referencias en las entradas de cada arquitectura desplegable mediante el uso de una notación de referencia. No es necesario ser un experto en Terraform, ni tener conocimientos de codificación de Terraform, para apilar arquitecturas y desplegarlas.
Como ejemplo, considere la automatización de la nube para Secrets Manager. Esa arquitectura desplegable incluye el módulo Secrets Manager, que crea una instancia de Secrets Manager. Si sólo necesita una instancia de Secrets Manager, esa arquitectura desplegable es una opción adecuada. Sin embargo, la gestión segura de los secretos es sólo una parte del mantenimiento de la seguridad en la nube. ¿Qué le parece realizar análisis de conformidad para conocer en todo momento la situación de sus recursos? ¿O recibir notificaciones de eventos críticos en su cuenta IBM Cloud? Cloud foundation para la seguridad y la observabilidad aprovecha toda la gama de servicios de seguridad de IBM Cloud. Se creó apilando la automatización de la nube para Secrets Manager junto con arquitecturas desplegables que aprovisionan otros servicios de IBM Cloud, como Security and Compliance Center y Event Notifications. Esa arquitectura desplegable proporciona una solución de seguridad más completa que Secrets Manager no puede ofrecer por sí sola.
Puede apilar arquitecturas desplegables en un proyecto IBM Cloud y publicarlas juntas en un catálogo sin muchos pasos de validación adicionales. O bien, puede apilar arquitecturas a medida que incorpora una solución a un catálogo privado. A partir de ahí, puedes compartirlo con otros para ahorrarles el tiempo de reconstruirlo por su cuenta.
Esta compleja solución obtiene gran parte de sus garantías de coste, conformidad, asistencia y calidad de las arquitecturas desplegables que incluye. Sin embargo, esa solución compleja tiene una versión, una descripción y un diagrama de arquitectura únicos. Si se realiza una actualización en una arquitectura desplegable que está apilada con otras en un catálogo, la solución completa debe ser actualizada por el onboarder para utilizar la última versión de esa arquitectura desplegable componente. Actualizar toda la solución a una nueva versión ayuda a garantizar que la última actualización de una única arquitectura funciona correctamente dentro de la solución más amplia.
Sin embargo, cada arquitectura desplegable tiene estados de configuración independientes, lo que permite desplegar, actualizar o des-desplegar cada una de ellas de forma independiente. Por ejemplo, ya sabe que la base de la nube para la seguridad y la observabilidad incluye la automatización de la nube para la arquitectura desplegable Secrets Manager, entre otras. Si se actualiza Cloud automation para Secrets Manager, entonces Cloud foundation para la seguridad y la observabilidad necesita actualizarse para utilizar la última versión de Secrets Manager. Sin embargo, cada arquitectura que se incluye en Cloud foundation para la seguridad y la observabilidad no necesita ser redistribuida por el usuario que consume esa solución. Cuando el usuario actualiza su proyecto para utilizar la última versión, sólo es necesario volver a desplegar Secrets Manager.
¿Qué incluye una arquitectura desplegable?
Una arquitectura desplegable puede incluir variaciones, tener dependencias o estar apilada para crear soluciones más complejas.
- Variaciones
-
Una variación es un tipo de arquitectura desplegable que aplica prestaciones o complejidad diferentes a una arquitectura desplegable existente. Por ejemplo, puede haber una variación de inicio rápido en la arquitectura desplegable que tenga prestaciones básicas para un despliegue sencillo y de bajo coste que se pueda probar internamente. Además, es posible que tenga una variación estándar que sea un poco más compleja que esté lista para su uso en producción.
- Arquitecturas necesarias
-
Una arquitectura desplegable puede contener entradas que requieran las salidas de otras arquitecturas desplegables para desplegarse con éxito. Esta relación entre una arquitectura desplegable y otra arquitectura que requiere se denomina comúnmente dependencia. Puede satisfacer las dependencias de dos formas: apilando arquitecturas desplegables o incorporando una arquitectura desplegable a un catálogo privado y ampliándolo para incluir otras arquitecturas.
con una dependencia de otra - Arquitecturas opcionales
-
Las arquitecturas desplegables están diseñadas para ser flexibles, por lo que se pueden apilar fácilmente para crear una solución más completa. Sin embargo, es posible que una arquitectura desplegable de utilidad general no incluya las opciones específicas que necesita para satisfacer un caso de uso complejo. Por ejemplo, ¿qué base de datos va con su aplicación Java? ¿Necesitas notificaciones de eventos, una cola de mensajes o algún otro servicio opcional que no esté incluido por defecto? Las arquitecturas desplegables opcionales pueden apilarse junto con las arquitecturas desplegables obligatorias para resolver este problema de personalización para los usuarios.
- Arquitecturas intercambiables
-
Tanto si una arquitectura es necesaria para satisfacer una dependencia, como si se incluye como extensión opcional de una arquitectura, los usuarios pueden necesitar más flexibilidad. Puede que sepa que su aplicación Java funciona con una base de datos opcional, pero ¿qué base de datos necesitan sus usuarios? Especificar arquitecturas intercambiables para los usuarios les ayuda a personalizar la solución integral para satisfacer sus necesidades específicas. Después de apilar las arquitecturas opcionales o necesarias, puede agrupar las arquitecturas como intercambiables entre sí. A continuación, el usuario consumidor puede seleccionar la arquitectura necesaria que desea utilizar para satisfacer una dependencia, o seleccionar una arquitectura opcional si desea ampliar su caso de uso.
Se pueden añadir arquitecturas opcionales e intercambiables a medida que se incorpora una arquitectura desplegable a un catálogo privado. Actualmente, el apilamiento de arquitecturas desplegables en un proyecto no admite arquitecturas opcionales o intercambiables.
¿Qué son los proyectos y cómo funcionan con arquitecturas desplegables?
Un proyecto IBM Cloud es una herramienta de gestión diseñada para organizar y proporcionar visibilidad en un proyecto del mundo real que existe en su organización. Un proyecto gestiona todas las instancias configuradas de una arquitectura desplegable y los recursos relacionados con las razones reales por las que se despliegan. Los proyectos almacenan instancias de arquitectura desplegable con versión y organizan las instancias y los recursos en entornos para ayudar a mejorar la visibilidad en el ciclo de vida de desarrollo. Un entorno es un grupo de instancias de arquitectura desplegables relacionadas que comparten valores para facilitar los despliegues. Por ejemplo, desarrollo, prueba o producción.
Los proyectos son responsables de garantizar que solo se puedan desplegar las arquitecturas desplegables aprobadas. Además, pueden ayudar a garantizar que las arquitecturas y los recursos que han creado estén actualizados, sean compatibles y que la desviación no se produzca a lo largo del tiempo. Por ejemplo, puede tener un proyecto de aplicación de gestión de cuentas. Este proyecto está diseñado para gestionar todos los recursos que la aplicación de gestión de cuentas necesita para desplegar en un entorno de desarrollo, prueba o producción. Cada entorno tiene las mismas variables, como una región o un prefijo, pero tiene distintos valores. Cuando se asigna una arquitectura desplegable a un entorno a través de un proyecto, sus valores de entrada pueden hacer referencia automáticamente a cualquiera de las propiedades del entorno que tengan el mismo nombre. Aunque los proyectos de IBM Cloud son fáciles de crear y actualizar, no se han creado plantillas ni se han optimizado para la réplica o el uso compartido.
¿Cómo puedo saber qué solución crear?
Si tiene previsto crear su propia solución, se debe tener en cuenta el ámbito, el acoplamiento, si es desplegable y la finalidad de la solución. Para obtener instrucciones y casos de uso que le ayuden a decidir qué piensa crear, consulte Planificación e investigación para diseñar una arquitectura y ¿Cómo puedo decidir qué tipo de componente crear?.
La tabla siguiente proporciona una visión general de alto nivel de por qué es posible que desee crear los distintos componentes.
Finalidad | Método recomendado | ¿Por qué? |
---|---|---|
Creación de una biblioteca de componentes de automatización compartibles | Crear un módulo | Los módulos proporcionan automatización reutilizable y comisariada para acelerar el proceso para aquellos que están creando y configurando arquitecturas desplegables. |
Asegurarse de que el entorno de nube de su organización es seguro y compatible | Crear una arquitectura desplegable | Las arquitecturas desplegables se empaquetan de forma que puede definir un despliegue seguro y compatible una vez y asegurarse de que todos los miembros de la organización repiten el despliegue de la misma forma. |
Arquitectura de sus propias soluciones | Apilar arquitecturas desplegables | Al combinar arquitecturas, puede crear una solución global más compleja para su organización. |