Añadir opciones personalizables a su arquitectura desplegable

Este tutorial le guiará a través de una forma de ampliar una arquitectura desplegable con opciones personalizables que se adapten a sus necesidades empresariales. Complete este tutorial para aprender a crear una nueva versión de una arquitectura desplegable existente en su catálogo privado y apilar con ella otras arquitecturas que los usuarios puedan elegir incluir.

Imagina que eres un profesional de la ingeniería de automatización de la nube para la empresa ficticia Example Corp. Previamente ha personalizado una arquitectura desplegable que se llama Example Corp's infrastructure y la ha añadido a un catálogo privado. Esa arquitectura desplegable personalizada es la base sobre la que se construirán las aplicaciones de Example Corp. Ahora, usted quiere dar a sus desarrolladores de software algunas opciones de base de datos para utilizar con Example Corp's infrastructure. Después de examinar el catálogo IBM Cloud, decide dar a sus desarrolladores la posibilidad de elegir entre dos arquitecturas desplegables que crean bases de datos diferentes:

Automatización en la nube para Databases for Elasticsearch
Esta arquitectura desplegable crea una instancia de Elasticsearch, que es una base de datos NoSQL adecuada para la búsqueda de texto completo y la consulta de grandes conjuntos de datos. Esta base de datos es una opción adecuada para la aplicación de Example Corp, ya que es lo suficientemente flexible como para procesar datos no estructurados y semiestructurados como texto, imágenes y vídeo. Este tutorial se creó basándose en la versión 1.32 de la arquitectura desplegable, pero puede utilizar una versión posterior si lo desea.
Automatización en la nube para Databases for PostgreSQL
Esta arquitectura desplegable crea una instancia de PostgreSQL, que es una base de datos SQL para consultas relacionales y datos estructurados. Esta base de datos es otra opción adecuada para Example Corp, ya que gestiona datos transaccionales estructurados para ofrecer experiencias de aplicación personalizadas a los usuarios. Este tutorial se creó basándose en la versión 3.22, pero puede utilizar una versión posterior si lo desea.

Este tutorial utiliza un escenario ficticio para ayudarle a entender cómo crear una arquitectura desplegable más compleja apilándola con otras arquitecturas. A medida que completes el tutorial, adapta cada paso a las necesidades de tu organización.

Antes de empezar

  1. Verifique que está utilizando una cuenta de Pago según uso o Suscripción yendo a Gestionar > Cuenta > Valores de la cuenta en la consola de IBM Cloud.

  2. Compruebe que tiene asignadas las siguientes funciones de IBM Cloud Identity and Access Management (IAM):

    • Administrador en todos los servicios de gestión de cuentas y todos los servicios IAM.
    • Editor en el servicio de Gestión de Catálogos.
    • Función de acceso al servicio de administrador para Schematics.
    • Otros roles que se requieren para recursos específicos en su arquitectura desplegable. La automatización en la nube para Code Engine requiere la función de acceso al servicio Writer, que se aplica a todos los recursos del servicio Code Engine.

    Para más información, consulte Asignación de acceso a los servicios de gestión de cuentas y Gestión del acceso a los recursos.

  3. Cree una arquitectura desplegable personalizada denominada Example Corp's infrastructure e incorpórela a un catálogo privado denominado Example Corp catalog. Esta arquitectura es la que irás ampliando a medida que completes este tutorial.

  4. Configure un método de autenticación. Puede utilizar una clave API almacenada en Secrets Manager o un perfil de confianza para autorizar una implantación en su cuenta de destino.

    ¿Despliegue de una prueba de concepto con fines de prueba? Puede crear una clave API más adelante, al editar una configuración en su proyecto. Al hacerlo, se autoriza el despliegue del proyecto en la cuenta seleccionada en ese momento.

Creación de una versión de una arquitectura desplegable

Dado que Example Corp's infrastructure ya está disponible en un catálogo privado, es necesario actualizarlo con una nueva versión.

  1. En la consola IBM Cloud, haga clic en Gestionar > Catálogos > Catálogos privados y abra el catálogo privado Example Corp catalog.
  2. Seleccione la infraestructura de Example Corp de la lista de productos.
  3. Haga clic en Versiones > Añadir versión
  4. Seleccione Terraform como método de entrega.
  5. Especifique si su repositorio es público o privado y proporcione la fuente URL. A efectos de este tutorial, puede utilizar la misma fuente URL que utilizó para incorporar la versión 0.0.1 de Example Corp's infrastructure.
  6. Seleccione Deploy Example Corp AI app en IBM Cloud Code Engine como la variación.
  7. Introduzca 0.0.2 para la versión del software.
  8. Haga clic en Añadir versión

Desde aquí, puede configurar los detalles de la versión que ha añadido.

Ampliación de la infraestructura de Example Corp añadiendo opciones de bases de datos

A medida que configure los detalles de la versión, amplíe Example Corp's infrastructure apilándola con otras dos arquitecturas desplegables que creen bases de datos diferentes. Quiere que sus usuarios elijan IBM Cloud Databases for Elasticsearch o IBM Cloud Databases for PostgreSQL. Complete los pasossiguientes:

  1. En el Paso 3 - Amplíe su arquitectura, haga clic en Añadir.

  2. En el menú Producto, busque Cloud automation for Databases for Elasticsearch y selecciónelo.

  3. User Semantic Versioning Specification ( SemVer ) para listar las versiones de la arquitectura que funcionan con la infraestructura de Example Corp.

    Por lo general, las versiones de parche no contienen cambios importantes, por lo que puede utilizar SemVer para especificar un rango de versiones que sean compatibles con la infraestructura de Example Corp, por ejemplo ~1.32. De esta manera, si la automatización de Cloud para Databases for Elasticsearch se actualiza con una versión de parche a 1.32.5, por ejemplo, cualquier usuario que haya implementado Example Corps con Elasticsearch puede actualizar su proyecto para utilizar la nueva versión. Para cambios importantes en la versión Elasticsearch, cree una nueva versión de la infraestructura de Example Corp para asegurarse de que la nueva Elasticsearch versión funcione correctamente con su arquitectura.

  4. Seleccione la variación Estándar.

  5. Especifique Estándar como variación por defecto, que es la que se selecciona por defecto para los usuarios.

  6. Seleccione Opcional en el menú Relación, ya que la arquitectura no es necesaria para desplegar Example Corp's infrastructure.

  7. (Opcional) proporcione una descripción de la pantalla para ayudar a los usuarios a entender cómo funciona esta arquitectura con Example Corp's infrastructure y qué ventajas ofrece. Por ejemplo, escriba NoSQL database for full-text searching and querying large datasets.

  8. Pulse Añadir.

Ahora que ha añadido Cloud automation para Databases for Elasticsearch, repita los pasos de nuevo pero esta vez, busque Cloud automation for Databases for PostgreSQL. Para la descripción opcional de la pantalla, introduzca SQL database for relational queries and structured data.

Hacer que las bases de datos sean intercambiables entre sí

Ahora que ha añadido ambas bases de datos como opcionales a Example Corp's infrastructure, puede especificar que sean intercambiables entre sí. Sus usuarios pueden seleccionar la opción de base de datos que desean utilizar con Example Corp's infrastructure. Complete los pasossiguientes:

  1. En el Paso 3 - Amplíe su arquitectura, marque la casilla de automatización de la nube para Databases for Elasticsearch.
  2. Seleccione la casilla de verificación de Automatización en la nube para Databases for PostgreSQL.
  3. Haga clic en Agrupar como intercambiable.
  4. Introduzca Databases como nombre del grupo y haga clic en Añadir.
  5. Pulse Siguiente.

Defina variables para sus usuarios

Ahora que ha añadido algunas opciones de base de datos a su arquitectura, necesita definir variables para sus usuarios. Al hacerlo, las entradas de las arquitecturas se conectan entre sí, lo que facilita a sus usuarios la configuración de Example Corp's infrastructure para su despliegue.

  1. En el Paso 4 - Configurar los detalles de despliegue, haga clic en Definir variables.

    Aparecerá la ventana Definir variables con Automatización en la nube para Databases for Elasticsearch seleccionada para usted, de modo que pueda acceder a las entradas y salidas de esa arquitectura. Desde aquí, puede añadir referencias o mover entradas a Example Corp's infrastructure para que los usuarios puedan configurarlas.

  2. Cuando se creó Example Corp's infrastructure, la región se limitaba a Estados Unidos. Para asegurarse de que Cloud automation para Databases for Elasticsearch utiliza la misma región que Example Corp's infrastructure, añada una referencia para conectarlos completando los siguientes pasos:

    1. En la ventana Entradas necesarias para la automatización de la nube para Databases for Elasticsearch, seleccione el icono Referencia a una variable Icono de referencia a una variable para la entrada region.
    2. A continuación, seleccione región en el menú Nombre de la variable.
    3. Pulse Añadir. Cuando un usuario configura la entrada region en Example Corp's infrastructure, la automatización de Nube para Databases for Elasticsearch utilizará ese valor que el usuario proporciona como entrada.
  3. Dado que Example Corp's infrastructure también contiene una entrada prefix, complete los mismos pasos para la entrada prefix en Cloud automation para Databases for Elasticsearch:

    1. Seleccione el Referenciar a una variable icono Referenciar a una variable icono para la prefix aporte.
    2. A continuación, seleccione prefijo en el menú Nombre de la variable.
    3. Pulse Añadir.
  4. Dado que Example Corp's infrastructure contiene una entrada para existing_resource_group_name, puede utilizar ese mismo grupo de recursos para la automatización de Nube para Databases for Elasticsearch:

    1. Seleccione el Referenciar a una variable icono Referenciar a una variable icono para la resource_group_name aporte.
    2. A continuación, seleccione existing_resource_group_name en el menú Variable name.
    3. Pulse Añadir.
  5. Establezca el valor predeterminado de use_existing_resource_group en true para indicar que sus usuarios necesitan un grupo de recursos existente para su arquitectura.

  6. Para simplificar la configuración y reducir los costes de un entorno de desarrollo, elimine el requisito de cifrado de claves completando los siguientes pasos:

    1. Establezca el valor por defecto de existing_kms_instance_crn en __NULL__.
    2. Haga clic en Entradas opcionales.
    3. Establezca el valor predeterminado de use_ibm_owned_encryption_key en true.
    4. Establezca el valor por defecto de plan en enterprise.
    5. Establezca el valor por defecto de member_cpu_count en 2.
    6. Establezca el valor por defecto de member_host_flavor en multitenant.

Ahora que ha definido variables para Cloud automation para Databases for Elasticsearch, necesita definir variables para la otra opción de base de datos que ha incluido: Automatización en la nube para Databases for PostgreSQL. Complete los pasossiguientes:

  1. En la ventana Definir variables, utilice el menú de arquitectura para cambiar de Automatización en la nube para Databases for Elasticsearch a Automatización en la nube para Databases for PostgreSQL.
  2. Haga clic en Entradas obligatorias y elimine el requisito de cifrado de claves estableciendo el valor predeterminado de existing_kms_instance_crn en __NULL__.
  3. Las otras tres entradas necesarias en esta arquitectura pueden hacer referencia a entradas ya disponibles en Example Corp's infrastructure. Complete los siguientes pasos para añadir referencias a estas entradas:
    1. Seleccione el Referenciar a una variable icono Referenciar a una variable icono para resource_group_name, luego seleccione existing_resource_group_name del menú Nombre de variable. Haga clic en Añadir, y la entrada resource_group_name dentro de Cloud automation para Databases for PostgreSQL hará referencia al valor existing_resource_group_name de la infraestructura de Example Corp que su usuario proporcione.
    2. Seleccione el Referenciar a una variable icono Referenciar a una variable icono para prefix y seleccione el prefijo del menú Nombre de variable y haga clic en Agregar.
    3. Seleccione el icono Referencia a una variable Icono de referencia a una variable para region y seleccione región en el menú Nombre de la variable y haga clic en Añadir.
  4. Haga clic en Entradas opcionales.
  5. Establezca el valor predeterminado de use_existing_resource_group en true para indicar que sus usuarios necesitan un grupo de recursos existente para su arquitectura.
  6. Establezca el valor predeterminado de use_ibm_owned_encryption_key en true.
  7. Pulse Guardar.

Comunique los cambios a sus usuarios

La última versión de Example Corp's infrastructure no contiene cambios de última hora, pero sí incluye nuevas funciones que sus usuarios deben conocer. Informe a sus usuarios de las nuevas opciones de base de datos que pueden utilizar con Example Corp's infrastructure añadiendo un aviso de cambio. Complete los pasossiguientes:

  1. En el Paso 6 - Añadir avisos de cambio, haga clic en Añadir nueva función.
  2. En el campo Título, introduzca Database options added to Example Corp's infrastructure.
  3. Para la Descripción, introduzca Version 0.0.2 includes two optional databases that you can choose to add. You can either use Cloud automation for Databases for Elasticsearch, or Cloud automation for Databases for PostgreSQL.
  4. Pulse Guardar.

En el menú Acciones, seleccione Generar manifiesto para descargar los últimos cambios. Es una buena práctica descargar los archivos y añadirlos al repositorio de código fuente para que los cambios se apliquen en la próxima versión.

Validar las arquitecturas desplegándolas desde un proyecto

Ahora, la versión 0.0.2 de Example Corp's infrastructure está disponible como borrador en su catálogo privado. Cualquier usuario con acceso a su catálogo privado puede desplegarlo. Para asegurarse de que las opciones de la base de datos funcionan con Example Corp's infrastructure, despliéguela dos veces desde su proyecto. Para un despliegue, incluya Elasticsearch. Y, para el otro despliegue, incluya PostgreSQL. Al desplegar la arquitectura dos veces, se verifica que ambas opciones de base de datos funcionan con Example Corp's infrastructure según lo previsto.

Antes de poder compartir Example Corp's infrastructure con su empresa, debe validar la versión al incorporarla a su catálogo privado. Actualmente, la validación de la versión en el catálogo no valida ninguna arquitectura que haya apilado con la suya. El despliegue de las arquitecturas de un proyecto mientras Example Corp's infrastructure se encuentra en estado borrador en el catálogo privado ayuda a garantizar que las arquitecturas incluidas funcionen correctamente con Example Corp's infrastructure.

Despliegue de la infraestructura de Example Corp con Elasticsearch

  1. Vaya al catálogo IBM Cloud y abra el catálogo privado Example Corp catalog.

  2. Seleccione la infraestructura de Example Corp para abrir su catálogo.

  3. Asegúrate de que 0.0.2 está seleccionado como versión.

  4. Haga clic en Crear proyecto, asigne un nombre al nuevo proyecto Testing Example Corp infrastructure y haga clic en Crear.

  5. Haga clic en el iconoConfiguración del proyecto. Cambie el nombre de la configuración a Example Corp infrastructure with Elasticsearch y haga clic en Guardar.

  6. En la sección Descripción general de la arquitectura desplegable, haga clic en Personalizar, asegúrese de que la automatización en la nube para Databases for Elasticsearch esté seleccionada y haga clic en Guardar.

  7. Haga clic en Configurar e implantar.

  8. Configure la arquitectura completando los siguientes pasos:

    1. En la sección Detalles, revise la información y haga clic en Siguiente.
    2. En la sección Seguridad, proporcione un método de autenticación para implementar en su cuenta de destino y haga clic en Siguiente. Utilice un perfil de confianza o una clave API.
    3. En la sección Entradas, introduzca test-south como valor de la variable de entrada prefix.
    4. Seleccione Predeterminado para la variable de entrada existing_resource_group_name.
    5. Seleccione us-south para la variable de entrada region.
    6. Haga clic en Guardar para guardar la configuración de Example Corp's infrastructure.
  9. Pulse Validar. El modal que se muestra proporciona más detalles sobre su validación en curso.

    Si la validación falla, puede solucionar el problema. O bien, un administrador del servicio IBM Cloud Proyectos puede revisar los resultados a través del servicio Schematics y anular el fallo y aprobar la configuración para desplegarla de todos modos. Sin embargo, asegúrese de que la canalización falló debido al análisis del Analizador de Riesgos de Código y no debido a un fallo de validación o del plan. No se recomienda anular un fallo marcado debido a un fallo de validación o del plan, ya que la configuración no puede desplegarse correctamente. Para más información sobre seguridad y conformidad en los proyectos, consulte Lograr la conformidad continua en la empresa.

  10. Una vez completada la validación, apruebe e implante los cambios:

    1. En el proyecto Testing Example Corp infrastructure, seleccione la pestaña Configuraciones.
    2. Haga clic en Example Corp infrastructure with Elasticsearch > Ver detalles para ver la última validación y aprobar los cambios.
    3. Añada un comentario con más detalles sobre la aprobación y haga clic en Aprobar.
  11. Haga clic en Desplegar y espere a que finalice el despliegue.

    Si la implementación se ha realizado correctamente, entonces sabes que Example Corp's infrastructure funciona con Elasticsearch como estaba previsto.

  12. Por último, desinstale los recursos creados por las arquitecturas. En la pestaña Configuraciones del proyecto, haga clic en el icono Opciones Icono Opciones para Example Corp infrastructure with Elasticsearch > Despliegue.

Despliegue de la infraestructura de Example Corp con PostgreSQL

Realice los mismos pasos para comprobar que Example Corp's infrastructure funciona con PostgreSQL:

  1. En la pestaña Configuraciones del proyecto Testing Example Corp infrastructure, haga clic en Crear y abra el catálogo privado Example Corp catalog.

  2. Seleccione la infraestructura de Example Corp para abrir su catálogo.

  3. Asegúrate de que 0.0.2 está seleccionado como versión.

  4. Asegúrese de que la infraestructura Testing Example Corp está seleccionada como proyecto.

  5. Haga clic en el iconoConfiguración del proyecto. Cambie el nombre de la configuración a Example Corp infrastructure with PostgreSQL y haga clic en Guardar.

  6. En la sección Descripción general de la arquitectura implementable, haga clic en Personalizar, asegúrese de que la opción Automatización en la nube para Databases for PostgreSQL esté seleccionada y haga clic en Guardar.

  7. Haga clic en Configurar e implantar.

  8. Configura la arquitectura. A continuación, valídelo, apruébelo y despliéguelo para comprobar que Example Corp's infrastructure funciona con PostgreSQL tal y como está previsto.

    Al configurar la arquitectura, seleccione us-east para la variable de entrada region para confirmar que la arquitectura puede desplegarse tanto en la región sur como en la región este de Estados Unidos. Introduzca test-east como prefijo para indicar en qué región se despliegan los recursos.

  9. Despliegue las configuraciones de su proyecto para desplegar recursos.

Próximos pasos

Continúe incorporando la última versión de Example Corp's infrastructure. Cuando haya terminado, una nueva versión de la arquitectura desplegable estará disponible para los usuarios. Cuando añaden la nueva versión a un proyecto, pueden personalizarlo incluyendo la automatización en la nube para Databases for Elasticsearch o la automatización en la nube para Databases for PostgreSQL.

Si un usuario ya ha desplegado la versión anterior de Example Corp's infrastructure, se le pedirá en su proyecto con el widget de atención a las necesidades que actualice la arquitectura a la última versión.