IBM Cloud Docs
¿Cómo puedo decidir qué tipo de componente crear?

¿Cómo puedo decidir qué tipo de componente crear?

¿Cómo decide si debe crear un módulo, una arquitectura desplegable o apilar arquitecturas desplegables? Vamos a comparar las diferencias y evaluar los casos de uso en las secciones siguientes para ayudarle a decidir.

Comparación de arquitecturas y módulos desplegables

La tabla siguiente proporciona una comparación y un resumen rápido de las diferencias clave entre módulos y tipos de arquitecturas desplegables.

Comparación de conceptos
Método Ámbito Acoplamiento Desplegable Autor
Crear un módulo Inteligencia apretado No Desarrollador
Crear una arquitectura desplegable Medio a amplio apretado Desarrollador
Arquitecturas desplegables de pila Amplia Suelto Cualquier usuario

La siguiente tabla puede ayudarle a decidir si utilizar un módulo, una arquitectura desplegable o apilar arquitecturas desplegables en función de su caso de uso.

Ayúdenme a elegir el componente que debo utilizar
Finalidad Método recomendado Notas
Acelere la automatización de codificación Utilizar módulos Los módulos proporcionan una automatización reutilizable y comisariada para que los desarrolladores de arquitecturas desplegables puedan codificar más rápidamente. Los módulos son para desarrolladores, no para consumidores.
Asegúrese de que el cloud sea seguro y compatible Utilizar una arquitectura desplegable Las arquitecturas desplegables imponen la seguridad y la conformidad para una arquitectura. Si una arquitectura desplegable es demasiado pequeña en el ámbito, no puede imponer la conformidad. Por ejemplo, una arquitectura desplegable que solo despliega una instancia de servidor virtual no puede garantizar la seguridad de la red.
Ofrecer a los usuarios una opción con guardaraíles Apilar arquitecturas desplegables Al apilar arquitecturas desplegables, puede intercambiar arquitecturas desplegables o añadir arquitecturas desplegables y ofrecer a los usuarios más opciones. Puesto que las arquitecturas desplegables aplican la seguridad y la conformidad, el apilamiento ayuda a garantizar que la solución global sigue siendo compatible. El apilamiento de arquitecturas desplegables es un enfoque excelente para cosas como la selección de la base de datos que se va a utilizar.
Soluciones o arquitecturas creadas por el usuario Apilar arquitecturas desplegables El apilamiento de arquitecturas desplegables permite a los usuarios crear y publicar sus propios patrones repetibles que siguen siendo seguros, ya que se componen de arquitecturas desplegables seguras y conformes.
Componentes de arquitectura desacoplados Apilar arquitecturas desplegables Las arquitecturas desplegables pueden desarrollarse y versionarse de forma independiente, pero luego apilarse para su despliegue.
Experiencia de usuario simplificada Utilizar una arquitectura desplegable Las arquitecturas desplegables pueden proporcionar una lista pequeña o simple de entradas al usuario incluso para arquitecturas grandes o complejas. Las arquitecturas desplegables son sencillas de comprender y desplegar. En comparación, el apilamiento de arquitecturas desplegables es un poco más complejo a medida que se exponen las arquitecturas desplegables.

Los proyectos deIBM Cloud garantizan que los recursos se despliegan a través de arquitecturas desplegables del catálogo y operan dentro de los guardaraíles de seguridad y conformidad de la organización. También aseguran que estos recursos se mantengan actualizados y no se desvían.

Dependencias para arquitecturas implementables

Las dependencias surgen cuando los recursos que proporciona una arquitectura implementable son necesarios para otra. Es decir, los recursos que proporciona una arquitectura implementable se utilizan durante la implementación de otra arquitectura, como se ilustra en la siguiente imagen.

Una representación visual de una arquitectura implementable con una dependencia. La arquitectura implementable A genera recursos que luego se utilizan como entradas en la arquitectura implementable B.
Dependencias de la arquitectura desplegable

Una forma de trabajar con dependencias es apilar arquitecturas desplegables y añadir referencias entre ellas en un proyecto. Por ejemplo, la VSI on VPC landing zone arquitectura desplegable incluye una variación que amplía la arquitectura desplegable de Red Hat OpenShift Container Platform en VPC landing zone. Considere apilar estas arquitecturas juntas en un proyecto. Este enfoque funciona bien si aún no se ha implementado la arquitectura de requisitos previos. Tampoco es necesario editar el código para apilar arquitecturas implementables.

Muchas arquitecturas implementables son independientes y no son extensiones de otras arquitecturas, pero puede optar por ampliar algunas arquitecturas implementables en el Arquitectura sección de la página de detalles del catálogo. Seleccione una opción del ¿Cómo quieres construir esta arquitectura? menú.

Sin embargo, si ya implementó Red Hat OpenShift Container Platform y necesita implementar VSI, los recursos necesarios para VSI ya están aprovisionados. No es necesario implementar el Red Hat OpenShift Arquitectura de plataforma de contenedores nuevamente. Dado que la arquitectura VSI es una extensión de la Red Hat OpenShift Container Platform, puede implementar VSI y la arquitectura utiliza los recursos del Red Hat OpenShift Plataforma de contenedores según sea necesario.

Arquitecturas desplegables opcionales e intercambiables

Se trata de una función experimental que está disponible para fines de evaluación y prueba y podría cambiar sin previo aviso.

Cuando incorporas una arquitectura desplegable a un catálogo privado, puedes ampliarla apilándola con otras arquitecturas. De este modo, podrá crear una solución más personalizable para sus usuarios.

¿Por qué apilar durante la incorporación?
El apilamiento de arquitecturas durante la incorporación es similar al apilamiento de arquitecturas en un proyecto. Al incorporar una arquitectura, puede incluir dependencias apilando las arquitecturas necesarias junto con ella. Sin embargo, a diferencia del apilamiento de arquitecturas en un proyecto, el apilamiento de arquitecturas durante la incorporación incluye las siguientes capacidades:
  • Puede añadir arquitecturas opcionales adaptadas a diferentes casos de uso.
  • Puede añadir arquitecturas intercambiables entre las que los usuarios puedan elegir.
Arquitecturas opcionales
Tal vez su arquitectura funcione bien con otra arquitectura desplegable, pero no sea necesaria para cumplir una dependencia o satisfacer la conformidad. Puede añadir la arquitectura desplegable como opcional, y los usuarios pueden elegir incluirla cuando añadan su arquitectura desplegable a un proyecto. Por ejemplo, una arquitectura de supervisión podría ser útil pero no necesaria.
Arquitecturas intercambiables
Cualquier arquitectura que se apile con la propia durante la incorporación puede intercambiarse con otras arquitecturas. Las arquitecturas intercambiables permiten a los usuarios elegir entre varias opciones que ofrecen la misma funcionalidad. Por ejemplo, puede incluir dos arquitecturas desplegables que creen bases de datos diferentes, y el usuario puede decidir qué opción de base de datos desea utilizar con su arquitectura.

Para obtener más información, consulte Ampliación de una arquitectura desplegable durante la incorporación.

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.

Terraform frente a Ansible

En IBM Cloud, una arquitectura desplegable debe utilizar Terraform para declarar las entradas y salidas de la arquitectura desplegable (la interfaz) ya que Ansible no tiene una definición de interfaz legible por máquina. De lo contrario, el autor de una arquitectura desplegable puede utilizar cualquier combinación de scripts anteriores o posteriores de Ansible y Terraform para ejecutar el trabajo de la arquitectura desplegable. Entonces, ¿cómo decide un desarrollador qué tecnología utilizar y para qué?

Comparación de lenguajes de configuración
La primera columna son categorías utilizadas para comparar Terraform y Ansible. La segunda columna proporciona información sobre cómo Terraform se relaciona con la categoría de conjunto en la columna uno y la tercera columna proporciona información sobre cómo Ansible se relaciona con la categoría de conjunto en la columna uno.
Terraform Ansible
Idioma Declarativo Procedimiento
Sintaxis HCL (similar a JSON) YAML (y llamadas a otros scripts)
Enfoque predeterminado Infraestructura mutable Infraestructura inmutable
Foco Infraestructura Configuración
Desviación Comparación con el estado deseado Tareas idempotentes

Terraform es excelente para crear y gestionar infraestructura, mientras que Ansible es excelente para configurar el software y los sistemas operativos que se ejecutan en dicha infraestructura. Puesto que Ansible es procedimental, también puede crear un script de operaciones de una sola vez. Las tareas de mantenimiento, como la restauración a partir de una copia de seguridad, son fáciles en Ansible.

Ayúdame a elegir el idioma de configuración
Finalidad Idioma de configuración recomendado Notas
Desplegar infraestructura o servicios cloud Terraform Terraform se dirige a este caso de uso y es mejor para manejar la infraestructura cambiante. IBM Cloud proporciona módulos de Terraform y arquitecturas desplegables soportadas para acelerar patrones de infraestructura seguros y compatibles. El modelo de estado de Terraform permite a los desarrolladores obtener una vista previa de los cambios. Estos cambios se pueden explorar en busca de conformidad.
Instalar o configurar software Ansible Si una imagen de contenedor o máquina virtual precompilada no es adecuada para el caso de uso, Ansible es mejor para manejar la instalación y configuración de software. Ansible tiene un amplio soporte para operaciones automatizadas como, por ejemplo, ediciones de configuración, gestión de paquetes y reinicios de procesos. Hay disponible una gran biblioteca de módulos y playbooks de Ansible para facilitar la configuración de miles de paquetes de software utilizados habitualmente.
Integración de CCDB Ansible La realización de una llamada dinámica a un servicio local como un CCDB se puede realizar en Terraform o Ansible, pero es más fácil de realizar en un lenguaje de procedimientos o scripts.
Validación de entrada Terraform o Ansible Terraform tiene una capacidad limitada para realizar la validación de entrada, pero es declarativo y puede ser utilizado por las interfaces de usuario. Ansible añade la posibilidad de realizar la validación de entrada dinámica donde las entradas de una arquitectura desplegable se comprueban con un servicio remoto.
Acciones de mantenimiento del día 2 Ansible El mantenimiento del día 2 suele ser de naturaleza procedimental y se realiza mejor en Ansible. Los ejemplos incluyen la copia de seguridad manual, la restauración o las rotaciones de claves.
Gestión de desviación
  • Terraform
  • Ansible
  • Terraform se puede utilizar para determinar si se ha producido una desviación y qué es esa desviación, lo que puede ayudarle a decidir cómo gestionar la desviación. La información de desviación es potente porque puede indicar que puede añadir un cambio a la automatización.
  • Ansible no puede detectar la desviación. Pero al volver a aplicar regularmente un script ansible idempotente, puede evitar la desviación.

Para obtener más información sobre cómo incluir scripts anteriores o posteriores con las arquitecturas desplegables, consulte Creación de scripts para la arquitectura desplegable.

Pasos siguientes: Decidir dónde publicar

Después de planificar la arquitectura y decidir qué tipo de componente crear, debe considerar dónde tiene previsto compartir o publicar la solución, para que otros usuarios puedan aprovechar la solución que cree. En función de dónde tenga previsto compartir o publicar, es posible que tenga distintos niveles de requisitos o aprobaciones para completar.