Personalización de una arquitectura desplegable IBM Cloud para crear su propia infraestructura

Este tutorial le guiará en la creación de una arquitectura desplegable personalizada basada en una arquitectura desplegable existente de IBM Cloud® para satisfacer sus necesidades empresariales. Al completar este tutorial, aprenderás a descargar los archivos Terraform, actualizar las variables y luego probar la arquitectura actualizada.

Al empezar con una arquitectura desplegable en IBM Cloud, no tendrá que preocuparse de crear una arquitectura de infraestructura desde cero. Puede obtener un salto inicial utilizando una arquitectura desplegable de IBM Cloud y configurándola para satisfacer sus necesidades específicas.

Imagina que eres un profesional de la ingeniería de automatización de la nube para Example Corp, una empresa ficticia. Su arquitecto de infraestructuras navegó por el catálogo IBM Cloud y descubrió Cloud automation para Code Engine, una arquitectura desplegable que cumple la mayoría de sus requisitos. Sin embargo, el arquitecto de su infraestructura necesita que realice los siguientes cambios para satisfacer las necesidades de su empresa:

  • Elimine las variables no deseadas.
  • Limite las regiones de IBM Cloud a las regiones de despliegue de EE.UU.
  • Actualizar la arquitectura desplegable para hacer referencia a la aplicación AI de Example Corp.

Esta guía de aprendizaje utiliza un escenario ficticio para ayudarle a aprender y comprender algunas de las opciones de configuración para una arquitectura desplegable. Explica cómo personalizar una arquitectura desplegable para automatizar el despliegue de una aplicación en contenedores en IBM Cloud Code Engine. La imagen de contenedor existente en icr.io/codeengine/helloworld se utiliza como aplicación de ejemplo. A medida que completes el tutorial, adapta cada paso a las necesidades de tu organización.

Antes de empezar

  1. Para construir una arquitectura, debe estar familiarizado con Terraform.

  2. 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.

  3. Cree un repositorio para almacenar su arquitectura desplegable. A efectos de esta guía de aprendizaje, se utiliza GitHub. Para obtener más información, consulte Crear un repositorio.

  4. Instale un editor de su elección, por ejemplo, Visual Studio Code.

  5. 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 de IAM, todos los servicios de gestión de cuentas y todos los servicios habilitados de identidad y acceso.
    • 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.

Descarga de los archivos de arquitectura desplegables

Para empezar, debe descargar los archivos de arquitectura desplegables. Los archivos incluyen un archivo main.tf que invoca el módulo raíz de Terraform.

  1. En la consola IBM Cloud, haga clic en Catálogo.

  2. Introduzca Cloud automation for Code Engine en la barra de búsqueda y seleccione la arquitectura en la lista de resultados.

  3. Seleccione v4.2.2 como versión del producto.

    Este tutorial ha sido creado en base a la versión 4.2.2 de Cloud automation para Code Engine. No obstante, si lo desea, puede seleccionar otra versión de la arquitectura desplegable.

  4. Asegúrese de que está seleccionada la variación New Code Engine apps.

  5. Pulse Revisar opciones de despliegue en el panel de resumen.

  6. Seleccione Trabajar con código > Descargar paquete para descargar el paquete.

  7. Abra el paquete descargado en el sistema local.

  8. Extraiga el paquete .tar.gz para acceder a los archivos de una carpeta y editarlos. Cambie el nombre de la carpeta extraída a Example-corp-infrastructure para facilitar su localización y uso.

    Después de descargar y extraer correctamente el paquete, verá los siguientes archivos y carpetas:

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

Edición de la lista de variables

Cuando su arquitecto de infraestructuras investigó IBM Cloud Code Engine, decidió modificar la región y la clave API IBM Cloud. El resto de variables que se incluyen en la arquitectura no son necesarias para tus propósitos, por lo que deberás eliminarlas utilizando tu editor favorito Visual Studio Code.

  1. En Visual Studio Code, abra el archivo variables.tf.

  2. Mueva las variables siguientes al inicio del archivo variables.tf.

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    El orden de las variables no importa.

  3. Suprima todas las demás variables y guarde el archivo.

Actualización del archivo main.tf

Ahora que ha actualizado el archivo variables.tf, asegúrese de que la información de configuración del archivo main.tf sea correcta. Dado que desea utilizar Code Engine para ejecutar una aplicación creada por Example Corp, debe proporcionar información sobre su aplicación.

  1. Abra el archivo main.tf.

  2. Actualice la variable app_name e introduzca "example-corp-ai-app" como nombre de la aplicación.

  3. Actualiza la variable image_reference e introduce "icr.io/codeengine/helloworld", que es la imagen docker para tu aplicación.

  4. Añada la variable project_name e introduzca "example-corp-ce-project" como nombre para su proyecto Code Engine.

  5. Añade la variable provider_visibility y establécela en "public".

  6. Confirme que las variables ibmcloud_api_key, prefix, y region están incluidas como se muestra en el siguiente ejemplo:

    module "deploy-arch-ibm-code-engine" {
      source      = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2"
      ibmcloud_api_key      = var.ibmcloud_api_key
      prefix      = var.prefix
      existing_resource_group_name      = var.existing_resource_group_name
      region      = var.region
      app_name      = "example-corp-ai-app"
      image_reference      = "icr.io/codeengine/helloworld"
      project_name      = "example-corp-ce-project"
      provider_visibility      = "public"
    }
    
  7. Guarde el archivo.

Su arquitectura está ahora codificada para hacer referencia a su aplicación de IA de Example Corp y configurada para utilizar las variables para la clave de API IBM Cloud, el prefijo y la región.

Actualización del archivo ibm_catalog.json

El archivo ibm_catalog.json es un archivo JSON de manifiesto que se utiliza para importar automáticamente la información de versión cuando se incorpora una arquitectura desplegable a un catálogo privado. Como ha cambiado la arquitectura desplegable, ha creado una arquitectura totalmente nueva para sus necesidades. Actualice la siguiente información en el archivo ibm_catalog.json para reflejar los cambios.

Para obtener más información sobre el archivo de manifiesto y lo que contiene, consulte Edición local del manifiesto de catálogo.

Actualización de la información del producto

Ahora que ha actualizado la configuración y creado su propia arquitectura, también debe actualizar el nombre y el nombre programático de la arquitectura desplegable.

  1. Abra el archivo ibm_catalog.json.

  2. Busque el campo label y actualice el nombre de la arquitectura desplegable a Example Corp's infrastructure.

  3. Busque el campo name y actualice el nombre programático de la arquitectura a deploy-arch-example-corp.

  4. Busque el campo version y especifique 0.0.1 para actualizar el número de versión. Si falta el campo, añádalo en una nueva línea inmediatamente después del campo name, por ejemplo:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. Dentro de la sección flavors, busque el campo label y actualice el nombre de esta variación de su arquitectura desplegable a Deploy Example Corp AI app on IBM Cloud Code Engine. Al hacerlo, identificará el propósito de esta variación de su arquitectura desplegable y lo que consigue.

  6. Guarde el archivo.

Actualización de la información de configuración

Ahora, quiere asegurarse de que los usuarios de su arquitectura desplegable puedan desplegarla sólo en regiones de EE.UU. Para ello, actualice la información de variable en la sección de configuración del archivo ibm_catalog.json.

  1. En la sección configuration del archivo ibm_catalog.json, busque las siguientes variables y muévalas al principio de la sección de configuración:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. Para restringir las regiones sólo a las de EE.UU., debe añadir cada región como opción para la variable region, eliminar las secciones innecesarias y establecer region como variable obligatoria.

    {
        "key": "region",
        "type": "string",
        "default_value": "us-south",
        "description": "The region in which to provision all resources created by this solution.",
        "required": true,
        "options": [
            {
                "displayname": "us-east",
                "value": "us-east"
            },
            {
                "displayname": "us-south",
                "value": "us-south"
    
            }
        ],
        "virtual": false
    }
    
  3. Suprima el resto de las variables de la sección de configuración.

    Cuando los usuarios despliegan la arquitectura, pueden elegir entre las opciones de región que ha listado. Para ver una lista de las regiones disponibles, consulte Regiones.

  4. Guarde el archivo ibm_catalog.json.

Prueba de la arquitectura desplegable

Antes de incorporar su arquitectura desplegable configurada a un catálogo privado y ponerla a disposición para su uso, pruebe su configuración para asegurarse de que la arquitectura se ejecuta según lo previsto. Para probar la arquitectura con la línea de mandatos de Terraform, realice los pasos siguientes:

  1. Cree o actualice un archivo .netrc necesario para utilizar los módulos Terraform de IBM Cloud. Para obtener más información, consulte ibmcloud catalog utility netrc.

    ibmcloud catalog utility netrc
    
  2. Inicialice la CLI de Terraform. Para obtener más información, consulte Inicialización de directorios de trabajo.

    terraform init
    
  3. Suministre los recursos. Para obtener más información, consulte Infraestructura de suministro con Terraform.

    1. Ejecute terraform plan para generar un plan de ejecución de Terraform para obtener una vista previa de las acciones propuestas.

      terraform plan
      
    2. Ejecute terraform apply para crear los recursos definidos en el plan.

      terraform apply
      

Próximos pasos

Si su arquitectura desplegable se ejecutó como se esperaba, ha creado con éxito su propia arquitectura desplegable desde Cloud automation para Code Engine. Ahora está preparado para mover los archivos actualizados al repositorio GitHub que ha creado y incorporar el producto a un catálogo privado.

Después de incorporar Example Corp's infrastructure a un catálogo privado, puede compartirlo con su empresa. Si no estás preparado para compartir tu arquitectura desplegable, o no formas parte de una empresa, puedes saltarte el compartirla y continuar con el siguiente tutorial, desplegando Example Corp's infrastructure mediante un proyecto.