Apilamiento de arquitecturas desplegables en un proyecto
Puede apilar arquitecturas desplegables en un proyecto para crear una arquitectura de solución integral más compleja. No es necesario codificar Terraform para conectar las arquitecturas desplegables. Al configurar los valores de entrada en una arquitectura desplegable, puede hacer referencia a entradas o salidas de otra arquitectura para vincularlas entre sí. Después de desplegar las arquitecturas apiladas, puede añadirlas a un catálogo privado como arquitectura desplegable para compartir fácilmente su solución integral con otras personas de su organización.
Esta es una característica experimental que está disponible para fines de evaluación y prueba y puede cambiar sin previo aviso.
En un proyecto, puede apilar arquitecturas desplegables que ya están a su disposición en un catálogo. Si está creando una arquitectura implementable que aún no está incorporada a un catálogo, puede ampliarla a medida que la incorpora apilándola con otras arquitecturas. Este enfoque ofrece más opciones de personalización que no están disponibles cuando se apilan arquitecturas desplegables en un proyecto, como la inclusión de arquitecturas opcionales para diferentes casos de uso. Este enfoque también funciona si la arquitectura desplegable aún no está disponible en un catálogo privado. Independientemente del enfoque que se adopte para apilar las arquitecturas, el resultado es una arquitectura desplegable más sólida que los usuarios pueden configurar y desplegar mediante un proyecto.
Antes de empezar
Asegúrese de que dispone de los siguientes accesos. Para obtener más información sobre el acceso y los permisos, consulte Asignación de acceso a proyectos.
- La función de Editor en el servicio IBM Cloud Proyectos.
- El rol de Editor y Gestor en el servicio IBM Cloud® Schematics.
- El rol de Visor en el grupo de recursos para el proyecto.
Añada las arquitecturas desplegables que desea apilar en su proyecto. Para obtener más información, consulte Adición de arquitecturas desplegables a un proyecto.
Cuando añada arquitecturas desplegables al proyecto, proporcione nombres significativos que le ayuden a identificarlas. Por ejemplo, si añade una arquitectura desplegable de infraestructura que crea la base para una aplicación, esa infraestructura
debe desplegarse primero. De lo contrario, la aplicación no se puede desplegar en esa infraestructura. Asigne el nombre 1 - infrastructure a la arquitectura desplegable de la infraestructura cuando la añada al proyecto. Asigne
el nombre 2 - application a la aplicación para indicar que debe desplegarse en segundo lugar.
Apilado de arquitecturas utilizando la CLI
Después de añadir las arquitecturas desplegables al proyecto, compárelas ejecutando el siguiente mandato ibmcloud project config-create. En la opción Definition, especifique members proporcionando un nombre
y el ID de configuración de las arquitecturas desplegables existentes que desee apilar:
ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION]
Por ejemplo, el siguiente comando crea una arquitectura desplegable que se denomina StackDev en su proyecto. Contiene dos arquitecturas desplegables, custom-apache y test-slz que ya fueron añadidas como
configuraciones al proyecto:
ibmcloud project config-create \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--definition '{"name": "StackDev", "members": [{"name": "custom-apache", "config_id": "caff3a49-0bf4-40c4-b348-47e5da6e2274"}, {"name": "test-slz", "config_id": "fc7fa3d1-33db-4c40-9570-7604348ab3c4"}]}' \
--output json
Para obtener más información sobre los parámetros del mandato, consulte ibmcloud project config-create.
Creación de la definición de pila mediante la CLI
Para incorporar su arquitectura desplegable a un catálogo privado, debe crear una definición de pila. Define cómo se relaciona cada arquitectura desplegable entre sí. Proporcione esta información para que los usuarios puedan desplegar toda la solución correctamente cuando la añadan a un proyecto desde el catálogo privado.
La definición de la pila contiene entradas y salidas a las que se puede hacer referencia en las arquitecturas desplegables de los miembros. También puede incluir referencias entre arquitecturas desplegables, lo que las vincula entre sí para los usuarios. Las entradas que requieren un valor o referencia específicos para desplegarse correctamente deben incluirse en la definición de la pila.
Actualmente, los miembros no pueden hacer referencia a salidas de la definición de pila.
Ejecute el siguiente mandato ibmcloud project stack-definition-create para crear la definición de pila y proporcionar las entradas:
ibmcloud project stack-definition-create --project-id PROJECT-ID --id
Donde id es el ID de configuración de la arquitectura desplegable StackDev que acaba de crear en su proyecto.
Por ejemplo, el siguiente comando añade las siguientes tres entradas a la definición de la pila. Estas entradas son cadenas obligatorias que no están ocultas para los usuarios, por lo que éstos deben configurar estos valores de entrada para desplegar la arquitectura desplegable de extremo a extremo:
prefixconstackDemocomo valor predeterminado.- Entrada
ssh_keysin valor predeterminado. ssh_private_keycon un valor predeterminado proporcionado para ayudar a los usuarios a configurar la entrada.
El comando también incluye nombres de entrada para las dos arquitecturas desplegables que se apilan juntas. Estas entradas se rellenarán con valores como referencias y se guardarán para los usuarios que añadan la solución a un proyecto desde el catálogo privado:
- La arquitectura desplegable de
test-slzcontiene una entradaprefixy una entradassh_key. - La arquitectura desplegable de
custom-apachecontiene una entradassh_private_keyy una entradaprerequisite_workspace_id.
Para obtener más información sobre cómo escribir referencias, consulte referencia a valores.
ibmcloud project stack-definition-create \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--stack-definition '{"inputs": [{"name": "prefix", "type": "string", "hidden": false, "required": true, "default": "stackDemo"}, {"name": "ssh_key", "type": "string", "hidden": false, "required": true}, {"name": "ssh_private_key", "type": "string", "hidden": false, "required": true, "default": "<<-EOF\nINSERT YOUR KEY HERE\nEOF"}], "members": [{"name": "test-slz", "inputs": [{"name": "prefix"}, {"name": "ssh_key"}]}, {"name": "custom-apache", "inputs": [{"name": "ssh_private_key"}, {"name": "prerequisite_workspace_id"}]} ]}' --output json
Para obtener más información sobre los parámetros del mandato, consulte ibmcloud project stack-definition-create.
Referencia a entradas de la definición de pila dentro de arquitecturas desplegables miembros mediante la CLI
Ahora que las entradas se han añadido a la definición de pila, actualice las arquitecturas desplegables miembro para que hagan referencia a esas entradas ejecutando el comando ibmcloud project config-update para cada arquitectura
que haya apilado:
ibmcloud project config-update --project-id PROJECT-ID --id
Por ejemplo, el siguiente comando actualiza la arquitectura desplegable test-slz para hacer referencia a las entradas que se añadieron a la definición de la pila:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--definition '{"inputs": {"prefix": "ref:../../inputs/prefix", "ssh_key": "ref:../../inputs/ssh_key"}}' --output json
Puesto que la arquitectura de custom-apache utiliza el valor ssh_private_key de la definición de pila, actualice la arquitectura desplegable de custom-apache para que haga referencia a dicho valor. La arquitectura
de custom-apache también utiliza el valor de entrada schematics_workspace_id como una de sus entradas, por lo que debe incluir una referencia a dicho valor:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id caff3a49-0bf4-40c4-b348-47e5da6e2274 \
--definition '{"inputs": {"ssh_private_key": "ref:../../inputs/ssh_private_key", "prerequisite_workspace_id": "ref:../test-slz/outputs/schematics_workspace_id"}}' --output json
Para obtener más información sobre los parámetros del mandato, consulte ibmcloud project config-update.
Actualización de los valores de entrada en la definición de la pila mediante la CLI
Ahora que las arquitecturas desplegables miembro están configuradas para hacer referencia a los valores que desea, actualice los valores de entrada en la definición de la pila ejecutando ibmcloud project config-update para la arquitectura
desplegable StackDev. Por ejemplo, el siguiente comando actualiza el valor de entrada prefix al que hace referencia la arquitectura desplegable test-slz. También se proporcionan valores para las entradas
ssh_key y ssh_private_key:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--definition '{"inputs": {"prefix": "kb-stack-0327", "ssh_key": "<publicKey>", "ssh_private_key": "<privateKey>"}}' --output json
Para obtener más información sobre los parámetros del mandato, consulte ibmcloud project config-update.
Ahora que el valor de entrada está configurado, valide y despliegue cada arquitectura desplegable miembro.
Por ejemplo, el mandato siguiente valida la arquitectura desplegable de test-slz:
ibmcloud project config-validate \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4
Mientras que el mandato siguiente aprueba la arquitectura desplegable de test-slz para el despliegue:
ibmcloud project config-approve \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--comment 'I approve'
Y el mandato siguiente despliega la arquitectura desplegable de test-slz:
ibmcloud project config-deploy \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4
Incorporación a un catálogo privado mediante la CLI
Una vez validada y desplegada cada arquitectura desplegable miembro, puede incorporar su arquitectura desplegable a un catálogo privado para que otros puedan acceder a ella. Cuando un usuario añade su arquitectura desplegable a un proyecto desde
el catálogo privado, cada arquitectura que haya apilado se incluye en el proyecto. Ejecute el siguiente mandato ibmcloud project stack-definition-export:
ibmcloud project stack-definition-export --project-id PROJECT ID
Puede crear un nuevo producto o añadir una versión a un producto existente. Por ejemplo, el mandato siguiente crea un nuevo producto en el catálogo privado denominado My Apache Stack:
ibmcloud project stack-definition-export --project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 --id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 --settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "label": "My Apache Stack"}' --output json
Mientras que el mandato siguiente crea una nueva versión de un producto existente:
ibmcloud project stack-definition-export \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "product_id": "1bf57631-27a2-42cc-ac87-733cca67e8a5", "target_version": "1.0.1"}' --output json
Para obtener más información sobre los parámetros del mandato, consulte ibmcloud project stack-definition-export.
Su arquitectura es ahora un borrador en el catálogo privado que aún no se ha publicado, pero que está disponible para cualquiera que tenga acceso de Editor al catálogo privado.
Para finalizar la incorporación a su catálogo privado, edite los detalles del catálogo y proporcione información como un diagrama de arquitectura y una categoría.
Apilamiento de arquitecturas utilizando la consola
Después de añadir las arquitecturas desplegables a su proyecto, configúrelas. Si las arquitecturas que vas a apilar dependen unas de otras, enlázalas haciendo referencia a las entradas o salidas a medida que las configuras. A continuación, apila las arquitecturas completando los siguientes pasos:
-
Seleccione la casilla de verificación de las arquitecturas desplegables que desee apilar.
-
Seleccione Pila.
-
Proporcione un nombre para las arquitecturas desplegables o seleccione una existente.
Las arquitecturas desplegables deben trabajar juntas para ofrecer una solución. Considere un nombre significativo para la solución integral que represente con precisión cada arquitectura que está apilando. Por ejemplo, si está apilando una aplicación Apache junto con una base de infraestructura, nómbrela algo como
Apache application with infrastructure basepara identificar claramente qué despliega la arquitectura. -
Pulse Continuar.
Definición de variables mediante la consola
Después de apilar las arquitecturas desplegables, hay que definir variables para los usuarios. Su objetivo es vincular las arquitecturas desplegables para que los usuarios puedan configurar las entradas en una única interfaz, en lugar de configurar las arquitecturas individualmente.
Las variables de entrada que se definen son configuradas por los usuarios después de añadir la arquitectura desplegable a un proyecto desde un catálogo. Del mismo modo, las variables de salida que seleccione se muestran para los usuarios en el nivel superior de la arquitectura. No seleccione variables que los usuarios no deben configurar. Por ejemplo, si su arquitectura requiere un valor específico para una variable de entrada, como un plan de almacenamiento, no seleccione la entrada de plan de almacenamiento. No seleccione referencias que unan las arquitecturas desplegables. Si lo hace, la conexión entre esas arquitecturas podría romperse y toda la solución podría no desplegarse con éxito.
Para facilitar la configuración a los usuarios, reduzca al mínimo el número de valores de entrada necesarios. Revise las entradas necesarias para cada arquitectura y asegúrese de que dichas entradas están configuradas añadiendo referencias a valores de entrada en la definición de la pila, o haciendo referencia a valores de salida de otras arquitecturas.
Complete los pasossiguientes:
-
En la pestaña Configuraciones de su proyecto, haga clic en el ícono Opciones
para la arquitectura desplegable apilada y seleccione Definir variables.
-
En la pestaña Seguridad, seleccione las variables que los usuarios necesitan configurar.
-
Vaya a la pestaña Entradas necesarias y seleccione las entradas necesarias que los usuarios necesitan configurar.
-
Vaya a la pestaña Entradas opcionales y seleccione las entradas opcionales que los usuarios necesitan configurar.
-
Vaya a la pestaña Salidas y seleccione las variables de salida que desee que se muestren en el nivel superior.
Facilite a los usuarios la búsqueda de valores de salida importantes tras desplegar la arquitectura, como las URL de las aplicaciones o los nombres de las credenciales. Seleccione los valores de salida importantes de las arquitecturas desplegables miembros para mostrarlos a los usuarios en el nivel superior.
-
Haga clic en Siguiente y continúe seleccionando variables para las arquitecturas restantes.
-
Cuando haya terminado, haga clic en Finalizar y configure la arquitectura para su despliegue. Es posible que sea necesario configurar las entradas que haya seleccionado al definir las variables.
Acceso a un catálogo privado a través de la consola
Después de validar y desplegar cada una de las arquitecturas desplegables que ha apilado, puede añadirlas como arquitectura desplegable a un catálogo privado para compartir fácilmente la solución con otras personas de su organización. Para más información, consulte Compartir un catálogo privado.
Complete los pasossiguientes:
- En la pestaña Configuraciones de su proyecto, haga clic en el ícono Opciones
para la arquitectura desplegable y seleccionar Agregar al catálogo privado.
- Seleccione o cree el catálogo privado al que desea añadir la arquitectura desplegable.
- Seleccione si se trata de un producto nuevo o de una nueva versión de un producto existente.
- Proporcione los detalles como un nombre de producto, si procede, la categoría, variación y versión.
- Pulse Siguiente.
- Revise las variables que los usuarios pueden configurar después de añadir una arquitectura desplegable a un proyecto desde el catálogo privado. Si necesita realizar algún cambio, puede definir las variables.
- Pulse Añadir.
Su arquitectura desplegable es ahora un borrador en el catálogo privado que aún no se ha publicado, pero que está disponible para cualquiera que tenga acceso de Editor a su catálogo privado. Cuando un usuario añade su arquitectura desplegable a un proyecto desde el catálogo privado, cada arquitectura que haya apilado se incluye en el proyecto.
Para terminar de incorporar su arquitectura desplegable a su catálogo privado, edite los detalles del catálogo y proporcione información como un diagrama de arquitectura y una categoría.
¿Hay una nueva versión disponible para una arquitectura desplegable que haya apilado con otras? Actualice la configuración en su proyecto para utilizar la última versión, valide e implante los cambios y, a continuación, complete los pasos para incorporar la solución actualizada a un catálogo privado. Seleccione el producto existente que ya ha incorporado e indique un nuevo número de versión. De este modo, ayuda a garantizar que la arquitectura desplegable actualizada siga funcionando correctamente con las demás arquitecturas que apiló junto con ella.