IBM Cloud Docs
Creación de una arquitectura desplegable

Creación de una arquitectura desplegable

Después de seguir los pasos para planificar y diseñar la arquitectura y decidir qué tipo de componente crear, puede empezar a crear el código automatizado que da vida a la arquitectura. Este tema le guía a través de la creación de una arquitectura desplegable que se compone de módulos.

Para crear una arquitectura implementable, debe definir los archivos requeridos, crear una versión en GitHub, y luego incorpórelo a un catálogo privado para que pueda compartirlo con otras personas dentro o fuera de su organización.

Tiene varias opciones para crear una arquitectura desplegable:

Información sobre la estructura de una arquitectura desplegable

Una arquitectura desplegable, que describe esta documentación, está formada por 1 o más módulos. Una arquitectura desplegable se compone de lo siguiente en el repositorio de origen:

![Anatomía de la arquitectura "){: caption="de la arquitectura ](images/da-anatomy.png "de una " caption-side="bottom"} desplegable basada en terraformación*

Código de Terraform
El repositorio de origen incluye archivos de Terraform. Estos archivos declaran la infraestructura deseada (estado final) y se basan en proveedores de Terraform que realizan las solicitudes de API reales para crear, actualizar y suprimir la infraestructura. Algunos de los proveedores más comunes utilizados son el proveedor de Terraform IBM Cloud® y el proveedor de API REST de Helm/Kubernetes/Rest.
Scripts (opcional)
Se utiliza como un hueco de detención para funciones que pueden no existir (Bash/Python) o para tareas operativas ad hoc (Ansible). Para obtener más información, consulte Creación de scripts para arquitecturas desplegables.
Pruebas automatizadas
Pruebas de validación que se utilizan para desplegar, verificar y destruir la infraestructura. Para ver un ejemplo, consulte el directorio tests en el repositorio de ejemplo sample-deployable-architectures.
Documentación
Es necesario incluir un diagrama de arquitectura y un archivo readme en el repositorio de origen.
Archivo de manifiesto de catálogo
Define cómo se expone la arquitectura desplegable en el catálogo IBM Cloud. Además de los detalles generales del catálogo como el nombre, la descripción y las características, incluye las definiciones de variación que apuntan a la configuración de Terraform subyacente, las reclamaciones de conformidad que se verifican durante la incorporación al catálogo utilizando IBM Cloud® Security and Compliance Centery los permisos de IAM necesarios para ejecutar la arquitectura desplegable. Para obtener más información, consulte Edición local del manifiesto de catálogo.
Variaciones
Una arquitectura desplegable puede incluir variaciones de capacidad o complejidad. Por ejemplo, puede crear una variación de inicio rápido con prestaciones básicas para un despliegue sencillo y de bajo coste y, a continuación, puede tener una variación estándar con una arquitectura más compleja que se utilizaría en producción. Cada una de estas variaciones es en sí misma una arquitectura desplegable, que se incorporan y configuran para aparecer juntas en un catálogo. Estas variaciones se originan en el mismo repositorio en distintos directorios de trabajo y se definen en el archivo ibm_catalog.json. Para más información, consulte Creación de una variación.

Especificación de dependencias y ampliación de la arquitectura

Experimental

Si su arquitectura desplegable depende de otra, puede incluir información sobre esa dependencia al incorporar su arquitectura desplegable a un catálogo. También puede incluir arquitecturas opcionales para ampliar las suyas propias para diferentes casos de uso. El resultado es una solución personalizable para los usuarios, ya que pueden elegir qué arquitecturas quieren incluir junto con la suya. Para obtener más información, consulte Ampliación de una arquitectura desplegable durante la incorporación.

También puede proporcionar información sobre otras arquitecturas que desee incluir con la suya en el archivo de manifiesto del catálogo para su arquitectura desplegable antes de incorporarla.

Utilice la sección dependencies del archivo de manifiesto del catálogo para crear una solución personalizable con arquitecturas opcionales y obligatorias. Asegúrese de que dependency_version_2 está configurado como true en el archivo de manifiesto del catálogo. La forma anterior de trabajar con las dependencias en el archivo de manifiesto del catálogo sigue siendo compatible. Con dependency_version_2 establecido en false, puede establecer install_type en extension y proporcionar información sobre las dependencias en la sección dependencies. Si lo hace, cada arquitectura de la lista de dependencias deberá desplegar la suya propia. Para obtener más información y establecer estos valores, consulte Edición local del manifiesto del catálogo.

Creación de una arquitectura desplegable

Puede esperar completar las siguientes tareas de alto nivel al crear la arquitectura desplegable:

  1. Cree el repositorio de origen y añada el código.
  2. Cree el archivo de manifiesto ibm_catalog.json para preparar la creación de un mosaico en el catálogo.
  3. Cree un release.
  4. Incorpore el código para crear un mosaico de catálogo en un catálogo privado revisándolo y validándolo.
  5. Elija dónde desea compartir o publicar la arquitectura desplegable.

Las instrucciones siguientes para crear una arquitectura desplegable utilizan un repositorio de ejemplo público para enseñar con el ejemplo.

Creación del repositorio de origen

Utilizando los requisitos definidos por la organización, cree un repositorio GitHub que pueda utilizar para contener el código fuente para la arquitectura desplegable. Para obtener ayuda para crear un repositorio, consulte la documentación deGitHub. Si ya dispone de un repositorio que desea utilizar, puede omitir este paso. Puede optar por utilizar otra organización para alojar su código fuente, como GitLab, pero para los fines de esta documentación, GitHub se utiliza.

Creación de los archivos de Terraform necesarios

Revise las secciones siguientes para comprender qué archivos de Terraform base son necesarios en el repositorio de origen de GitHub para crear el archivo .tgz que es necesario como parte de la incorporación de la arquitectura desplegable a un catálogo privado.

main.tf

El archivo main.tf es donde coloca el código que suministra los recursos que desea crear. Puede llamar a un módulo desde terraform-ibm-modules o un módulo externo o un recurso de proveedor directamente.

Consulte los ejemplos:

outputs.tf

El archivo outputs.tf contiene valores de salida que puede incluir en la arquitectura desplegable.

Consulte los ejemplos:

provider.tf

El archivo provider.tf contiene la configuración del proveedor como, por ejemplo, el nombre del proveedor, la clave de API y la región que espera el código.

Consulte los ejemplos:

README.md

El archivo léame contiene información de fondo y de uso sobre la arquitectura desplegable, incluidas las secciones de requisitos, módulos, recursos, acceso necesario, entradas y salidas.

Si el repositorio de origen está en la organización terraform-ibm-modules, se genera la mayor parte del archivo léame. Por lo tanto, no añade manualmente la información como las entradas y salidas. Los nombres de variable y las descripciones se generan en el archivo léame desde el archivo variables.tf.

Consulte los ejemplos:

variables.tf

El archivo variables.tf incluye las variables necesarias y opcionales para la arquitectura desplegable.

Consulte los ejemplos:

version.tf

El archivo version.tf almacena información sobre la versión de Terraform y la versión de proveedor necesaria para ejecutar la arquitectura desplegable.

Los proveedores de Terraform necesarios para la arquitectura desplegable deben estar bloqueados en una versión exacta en lugar de utilizar un rango para garantizar resultados coherentes con la arquitectura desplegable.

Consulte los ejemplos:

Creación de un archivo de manifiesto de catálogo

El manifiesto de catálogo es un archivo en la raíz del repositorio que se denomina ibm_catalog.json. Este archivo define los metadatos necesarios para crear un mosaico en un catálogo, por ejemplo, el nombre, la descripción, las características, las definiciones de variación que apuntan a la configuración de Terraform subyacente, las reclamaciones de conformidad que se verificarán durante la incorporación utilizando Security and Compliance Centery los permisos de IAM necesarios para desplegar la arquitectura. También define las configuraciones que desea que se seleccionen de forma predeterminada cuando un usuario intenta desplegar la arquitectura desde el catálogo. Para obtener más información, consulte correlación de detalles de catálogo con el archivo de manifiesto.

Consulte el ejemplo del repositorio de ejemplo que muestra una variación de tipo de extensión y pila completa.

Puede crear el archivo de manifiesto de catálogo utilizando dos métodos diferentes:

  1. Puede crear este archivo desde cero utilizando la plantilla.

  2. Puede iniciar el proceso de incorporación con el siguiente ejemplo básico en el repositorio de origen y, a continuación, descargar el archivo de manifiesto después de realizar cambios durante la incorporación en la consola para añadir el archivo actualizado al repositorio de origen.

    A continuación se muestra un archivo de manifiesto básico que puede añadir al repositorio y editar para ayudarle a empezar a utilizar esta opción.

    {
        "products": [
            {
                "flavors": [
                    {
                        "architecture": {},
                        "compliance": {},
                        "install_type": "fullstack"
                    }
                ],
                "label": "catalog-create-sample-da-0.0.1",
                "name": "catalog-create-sample-da-0.0.1",
                "offering_icon_url": "url",
                "product_kind": "solution",
                "provider_name": "Community",
                "short_description": "A simple deployable architecture.",
                "tags": [
                    "dev_ops"
                ],
                "version": "0.0.1"
            }
        ]
    }
    

Pasos siguientes: Incorporar la arquitectura desplegable a un catálogo privado

Con un release de Git creado que incluye los archivos necesarios en el repositorio de origen, puede incorporar una versión de la arquitectura desplegable y todas las variaciones incluidas. La incorporación es el proceso de crear un mosaico de catálogo en un catálogo privado revisando los detalles del catálogo y validando un despliegue de prueba y las reclamaciones de conformidad en IBM Cloud. Para ver el proceso paso a paso, consulte Incorporación de arquitecturas desplegables.