Cómo utilizar Terraform para crear una plataforma de gestión de autoservicio basada en la hiperconvergencia SmartX

Cada vez más operadores y desarrolladores han descubierto que la infraestructura que no se puede gestionar automáticamente se ha convertido en un obstáculo para el despliegue empresarial ágil.

Para el personal de operación y mantenimiento de infraestructura, tareas como la creación y el reciclaje de máquinas virtuales son muy repetitivas durante el mantenimiento diario. Al crear máquinas virtuales empresariales, el personal de operación y mantenimiento debe considerar las mejores prácticas de ubicación de recursos, como qué servidor tiene más recursos de CPU y memoria, para que puedan ubicarse primero. Al aprovisionar máquinas virtuales para sistemas comerciales, también es necesario asegurarse de que se creen en diferentes plataformas en la nube tanto como sea posible para evitar anomalías comerciales causadas por fallas en la plataforma en la nube.

Para los desarrolladores de sistemas de aplicaciones, DevOps ahora se utiliza para el desarrollo y prueba ágiles de sistemas empresariales. Para probar una versión, el proceso CI/CD puede empaquetar automáticamente la aplicación según el código fuente y realizar pruebas de versión. Sin embargo, la creación de máquinas virtuales no se puede automatizar: si los desarrolladores desean utilizar la máquina virtual, primero deben esperar a que el personal de operación y mantenimiento cree con éxito la máquina virtual, lo que bloqueará el flujo de trabajo de CI. Si desea realizar una gestión automatizada del ciclo de vida de la máquina virtual, debe organizar scripts para crear automáticamente máquinas virtuales basadas en la API del proveedor de la nube privada. Sin embargo, si una empresa tiene varias plataformas en la nube, deberá consultar la API de cada fabricante para desarrollar funciones de gestión de recursos de infraestructura, lo que será más engorroso.

Entonces, ¿se puede entregar la infraestructura también al código para su gestión automatizada? Esto no sólo puede reducir la presión laboral del personal de operación y mantenimiento, sino que también permite a los desarrolladores suministrar recursos de infraestructura según demanda.

Los lectores pueden tener una pregunta aquí: ¿No puede un sistema comercial de gestión de la nube satisfacer estas necesidades? De hecho, cuando se trata de gestión de plataformas en la nube, casi todos los usuarios tienen necesidades diferentes. Por ejemplo, un usuario puede esperar que la plataforma de administración de la nube se pueda combinar con su CMDB para monitorear los recursos, mientras que otro usuario puede esperar que la plataforma de administración de la nube se pueda combinar con su sistema OA para aprobar recursos. Es posible que algunos usuarios también deseen implementar automáticamente sistemas empresariales en clústeres VMware y SmartX para lograr una alta disponibilidad en la capa de infraestructura. Pero en realidad son algo difíciles de lograr para las plataformas de gestión de la nube. Y aquí hay una cuestión muy crítica: es necesario cargar el sistema de la plataforma de gestión de la nube, lo que sin duda aumentará el coste del dinero.

Para ayudar a más empresas a implementar la "infraestructura como código" a bajo costo y alta eficiencia, este artículo le presentará una herramienta poderosa: Terraform y le explicará cómo usar Terraform para implementar la infraestructura hiperconvergente SmartX a través de la práctica de las instituciones financieras. .gestión automatizada .

Flujo de trabajo y ventajas de Terraform

Terraform es una herramienta de orquestación de automatización de infraestructura lanzada por HashiCorp que puede definir recursos de infraestructura a través de archivos de configuración y crear, cambiar y reciclar recursos en función de archivos de configuración, ayudando así a los usuarios a realizar "infraestructura como código". Los usuarios pueden utilizar el mismo flujo de trabajo para configurar y administrar toda la infraestructura y también pueden realizar control de versiones de los recursos. Terraform no solo admite proveedores de nubes públicas como AWS, GCP y Alibaba Cloud, sino que también admite proveedores de nubes privadas como VMware, Lutanix y SmartX. También puede aprovisionar infraestructuras como Kubernetes y Docker, que cubren nubes públicas, nubes privadas, y bases de datos, seguridad, registros, monitoreo y otras infraestructuras, incluidos muchos campos.

Terraform no sólo es potente y capaz de gestionar un gran número de infraestructuras, sino que además su uso es muy sencillo, dividido principalmente en tres pasos:

  1. Escritura : Escribe archivos de configuración en un lenguaje legible para definir los recursos requeridos por la infraestructura.
  2. Plan : combine el estado actual de la infraestructura y el archivo de configuración predefinido, inicialice la configuración y utilice el comando Terraform Plan para obtener una vista previa del plan de recursos de la infraestructura.
  3. Aplicación : aplique el archivo de configuración para completar la creación, actualización y destrucción de recursos.

 Fuente de la imagen: "¿Cómo funciona Terraform?" por HashiCorp

Al definir la infraestructura, los usuarios pueden aprovisionar recursos de múltiples proveedores al mismo tiempo. Por ejemplo, definir computación elástica para AWS y Alibaba Cloud al mismo tiempo permite que la infraestructura aprovisione recursos en diferentes proveedores de nube al mismo tiempo para cumplir con los requisitos comerciales. para infraestructura Requisitos de redundancia. Además, la configuración de Terraform es declarativa, por lo que las referencias a otros recursos y variables no dependen del orden en que se definen en el archivo de configuración.

Por ejemplo, si un usuario desea proporcionar un conjunto de recursos para una empresa que se ejecuta en Alibaba Cloud, necesita crear una serie de recursos como VPC, grupo de seguridad, máquina virtual, espejo, almacenamiento de objetos, etc. El orden de estos recursos en el archivo de configuración no importa. Terraform respetará automáticamente las dependencias de los recursos para garantizar que los recursos se puedan crear correctamente.

Llegados a este punto, te resumimos las ventajas de Terraform:

  • Esencialmente una herramienta de aprovisionamiento de infraestructura : a diferencia de las herramientas de configuración de máquinas virtuales como Ansible o Saltstack, Terraform ayuda principalmente a los usuarios a aprovisionar infraestructura, como la gestión del ciclo de vida completo de las máquinas virtuales. Ansible es mejor para configurar máquinas virtuales, como actualizar un lote de versiones de Linux Open SSH en lotes. Estos dos tipos de herramientas no entran en conflicto y los usuarios también pueden utilizarlas combinadas.
  • Para administrar infraestructura inmutable : la mayoría de las herramientas de "infraestructura como código" pueden crear una infraestructura mutable para adaptarse a cambios como actualizaciones de middleware o agregar discos. La desventaja de una infraestructura variable es que las configuraciones pueden variar. A medida que se suman múltiples cambios, la infraestructura aprovisionada real puede desviarse de la configuración original, lo que dificulta el diagnóstico de problemas cuando surgen, la corrección de errores de configuración y la resolución de problemas de rendimiento. Terraform proporciona una arquitectura de infraestructura inmutable. Con cada cambio en el entorno, la configuración actual será reemplazada por una nueva configuración responsable de este cambio y la nueva infraestructura será reaprovisionada. Además, la configuración anterior también se puede conservar como versión para poder revertirla si es necesario más adelante.
  • Simple y fácil de usar : Terraform no solo es fácil de usar, sino que también utiliza un lenguaje declarativo y la sintaxis también es muy legible.
  • Característica "independiente de la nube" : Terraform está desacoplado de los proveedores de la nube, lo que permite el uso del mismo flujo de trabajo para administrar la infraestructura de diferentes proveedores de la nube. Después de crear un conjunto de flujos de trabajo en la etapa inicial, aún puede utilizar este flujo de trabajo cuando presente productos de otros proveedores de nube más adelante. No es necesario aprender las tecnologías de varios proveedores de nube y puede mantener rápidamente los productos de infraestructura de los nuevos proveedores. .
  • Gratis y de código abierto : la comunidad de código abierto de Terraform es muy activa. Actualmente, más de 2200 de los más de 2400 proveedores son cocreados por la comunidad. Al mismo tiempo, los contribuyentes de la comunidad han creado una gran cantidad de complementos para esta plataforma y la actividad de toda la comunidad también ha llevado al rápido desarrollo del producto, que puede introducir continuamente nuevas funciones y mejorarlas.

Implementación de "infraestructura como código" de hiperconvergencia SmartX basada en Terraform

Como se mencionó anteriormente, Terraform también admite la administración automática hiperconvergente de SmartX, que debe implementarse junto con la plataforma de administración nativa de SmartX CloudTower.

 Tomando como ejemplo la infraestructura hiperconvergente de SmartX, los usuarios primero usan código para declarar recursos en archivos de configuración. En tiempo de ejecución, Terraform lee todos los archivos de configuración con una extensión .tf y los concatena. Luego, Terraform invocará CloudTower Provider de acuerdo con el archivo de configuración para crear y administrar los recursos correspondientes en la infraestructura hiperconvergente SmartX. Entre ellos, Provider es un complemento de Terraform. Diferentes proveedores de nube proporcionarán los proveedores correspondientes en función de las API de sus propias plataformas de nube. Terraform utiliza los proveedores proporcionados por diferentes proveedores de nube para crear y administrar recursos en diferentes infraestructuras.

Esta solución tiene las siguientes ventajas:

  • Configuración común : adecuada para soluciones de múltiples nubes y los recursos de CloudTower se pueden orquestar rápidamente en flujos de trabajo existentes. Se pueden gestionar otras plataformas simplemente reemplazando el Proveedor.
  • Reducir la dificultad de la automatización : el personal de operación y mantenimiento no necesita comprender los detalles de la API de CloudTower, lo que reduce la dificultad de implementar operación y mantenimiento automatizados. El personal empresarial solo necesita preocuparse por la configuración de los recursos y no necesita preocuparse por los pasos y procesos de creación de recursos.
  • Listo para usar : CloudTower proporciona módulos y ejemplos nativos que cubren escenarios de uso diario, como administración de máquinas virtuales, administración de discos virtuales, administración de instantáneas y administración de bibliotecas de contenido.

Usamos la siguiente demostración para demostrar específicamente cómo usar Terraform CLI para administrar por lotes máquinas virtuales de la plataforma CloudTower y cómo usar Terraform para aprovisionar rápidamente máquinas virtuales en Jenkins.

Las instituciones financieras exploran la "infraestructura como código" basada en Terraform

En la demostración de Jenkins, podemos ver que los usuarios solo necesitan completar los parámetros de recursos en Jenkins, y Jenkins puede escribir estos parámetros en el archivo de configuración a través de un script preorganizado en segundo plano. Terraform generará automáticamente una máquina virtual de acuerdo con el archivo de configuración y podrá notificar a WeChat empresarial.

Siguiendo esta idea, los usuarios pueden crear una plataforma de gestión de autoservicio a nivel empresarial agregando algunas funciones sobre esta base . Por ejemplo, los usuarios pueden agregar CMDB: antes de generar el archivo de configuración, primero consulte en CMDB qué servidores tienen recursos suficientes para priorizar la utilización y coloque diferentes máquinas virtuales que apliquen las mismas funciones en diferentes clústeres. Los usuarios también pueden utilizar Ansible para organizar con antelación los playbooks de configuración de aplicaciones de máquinas virtuales (Playbooks). Una vez creada correctamente la máquina virtual, los usuarios también pueden instalar aplicaciones como MySQL, Redis o Kafka en la máquina virtual.

Además de esto, los usuarios también pueden unirse al proceso de solicitud, aprobación y entrega. Los usuarios de la aplicación solo necesitan iniciar sesión en la página de inicio para solicitar recursos (solicitar previamente la cantidad de máquinas virtuales, requisitos de CPU, memoria y almacenamiento, etc.), elegir si necesitan implementar aplicaciones y enviar recursos. aplicaciones. Después de eso, hay una serie de procesos automáticos: la aplicación ingresará al proceso OA de la empresa y comenzará la aprobación; después de que se pase la aprobación, las máquinas virtuales se aprovisionarán automáticamente y las aplicaciones se implementarán según demanda; después de que los recursos se hayan creado exitosamente, la información clave La información sobre las máquinas virtuales y las aplicaciones se enviará automáticamente para mayor comodidad y el personal de aplicaciones la utilizará directamente. Esto crea una plataforma de gestión de autoservicio a nivel empresarial.

 

Práctica de usuario de la industria financiera: autoservicio basado en Terraform + CloudTower

Basado en la arquitectura anterior, un usuario de la industria financiera utilizó Terraform + CloudTower para desarrollar de forma independiente una plataforma de operación y mantenimiento de infraestructura que satisfaga las necesidades de la empresa, y la combinó con CMDB para realizar el uso de recursos, estadísticas y planificación.

El backend de toda la plataforma de operación y mantenimiento usa Terraform para administrar el ciclo de vida de las máquinas virtuales, usa Ansible para administrar la configuración de las máquinas virtuales, usa Python para escribir scripts de implementación para aplicaciones empresariales, usa CMDB para almacenar registros de configuración de los ciclos de vida de los recursos y provisiones para máquinas virtuales. Los clústeres, el almacenamiento y los servidores proporcionan recomendaciones de ubicación óptimas. Al mismo tiempo, los usuarios han agregado las funciones que necesitan según las características del modelo de negocio de la empresa, incluida la gestión de direcciones IP, redes, usuarios y permisos.

A través de esta plataforma de operación y mantenimiento, los usuarios realizan la entrega automatizada de máquinas virtuales y aplicaciones de nivel empresarial en la plataforma de infraestructura en la nube. Todo el proceso de entrega ha sido estandarizado, automatizado, agilizado y digitalizado, acortando enormemente el ciclo de entrega, reduciendo la carga de trabajo del personal de operación y mantenimiento y facilitando la auditoría y trazabilidad de los recursos posteriores .

 

¿Quiere intentar crear su propia plataforma de gestión de autoservicio empresarial? Puede obtener el complemento CloudTower Provider desde el sitio web oficial de Terraform a través del siguiente enlace para automatizar fácilmente la infraestructura: https://registry.terraform.io/Providers/smartxworks/cloudtower

Referencias:

1. ¿Cómo funciona Terraform?

https://developer.hashicorp.com/terraform/intro#how-does-terraform-work

Haga clic para descargar la versión comunitaria de la suite hiperconvergente , experimente la plataforma de administración CloudTower de forma gratuita y comience de inmediato el viaje hacia la automatización de la infraestructura.

Supongo que te gusta

Origin blog.csdn.net/weixin_43696211/article/details/128458632
Recomendado
Clasificación