Terraform es una herramienta de infraestructura como código (IaC) que le permite previsualizar, configurar y gestionar la infraestructura y los recursos de los servicios en la nube de forma segura y eficiente. Serverless App Engine (SAE) le permite usar Terraform para gestionar sus recursos de SAE con mayor seguridad e implementar integración continua o entrega continua (CI/CD) mediante GitOps.
Introducción
Características básicas
Terraform es una herramienta que admite la orquestación automatizada de la infraestructura de TI. Con esta herramienta, usted gestiona y mantiene los recursos de TI mediante código. Para obtener más información, consulte What is Terraform?
Terraform proporciona un CLI fácil de usar. Este CLI le permite desplegar archivos de configuración en las cargas de trabajo de los servicios de Alibaba Cloud o de terceros, además de gestionar las versiones de dichos archivos. En los archivos de configuración se definen los recursos de infraestructura necesarios para construir topologías en la nube, como máquinas virtuales (VM), cuentas de almacenamiento e interfaces de red.
Terraform se integra con el proveedor de Alibaba Cloud para admitir nuevas infraestructuras. Usted utiliza una plantilla para configurar el proveedor de Alibaba Cloud y así definir, previsualizar y desplegar infraestructura en la nube dentro de Alibaba Cloud.
Terraform le permite crear, modificar y eliminar los recursos de varios servicios de Alibaba Cloud, como Elastic Compute Service (ECS), Virtual Private Cloud (VPC), ApsaraDB RDS y Server Load Balancer (SLB).
Para obtener más información sobre cómo integrar los servicios de Alibaba Cloud con Terraform, consulte Proveedor de Alibaba Cloud.
Escenarios
Terraform le permite definir la infraestructura como código. De este modo, usted crea, consulta, modifica y elimina recursos de infraestructura mediante código. Para ver ejemplos sobre cómo usar Terraform para gestionar los recursos de los servicios de Alibaba Cloud, consulte Scenarios.
Ventajas
Terraform ofrece a continuación varias ventajas en escenarios comunes:
IaC: Terraform almacena las definiciones y configuraciones de la infraestructura como código. Esto facilita el control de versiones, la colaboración entre equipos y la reutilización del código. Además, mejora la eficiencia al reducir las operaciones manuales y los errores.
Alta confiabilidad y estabilidad: el equipo técnico de Alibaba Cloud proporciona capacidades internas de garantía, como pruebas de casos de uso automatizados por escenario e integración automática de plataformas. Estas capacidades aseguran la estabilidad y la confiabilidad.
Amplia compatibilidad con recursos: Alibaba Cloud ofrece servicios basados en un enfoque centrado en recursos y estandariza las definiciones de los recursos de Terraform. Esto brinda a los usuarios una experiencia lista para usarse.
Lenguaje declarativo: Terraform usa HashiCorp Configuration Language (HCL) como lenguaje de configuración. HCL es un lenguaje declarativo que describe el estado deseado en lugar de pasos detallados, lo cual hace que el código sea más fácil de entender y mantener.
Alta escalabilidad: Terraform ofrece una amplia variedad de recursos y proveedores para satisfacer distintos requisitos. También le permite personalizar y ampliar complementos para admitir infraestructuras específicas.
Integración con otras herramientas: Terraform se integra con herramientas como Ansible, Jenkins y GitLab. Esta integración permite implementar flujos de trabajo automatizados más complejos, como pruebas automatizadas, integración continua y despliegue continuo.
Terraform también ofrece ventajas específicas para SAE:
-
Infraestructura como código (IaC) declarativa
Terraform le permite desplegar, escalar horizontalmente, actualizar, degradar, iniciar y detener aplicaciones. También sirve para vincular instancias de SLB con aplicaciones.
Terraform le permite escribir código sin necesidad de conocer la API de SAE.
Terraform es compatible con CI/CD, lo cual mejora el rendimiento de SAE en la entrega automatizada de aplicaciones.
-
Ecosistema de Terraform
Terraform proporciona la capacidad LiveDiff, que le permite gestionar sus recursos de SAE con alta seguridad.
Terraform le ayuda a desplegar aplicaciones de SAE hasta alcanzar el estado deseado de manera estable.
Terraform incluye la capacidad de orquestación de recursos. Esta función le permite desplegar de forma eficiente aplicaciones de SAE y sus recursos dependientes con unos pocos clics.
Categorías
-
Recursos
Cada recurso es un elemento recién creado. Para obtener más información, consulte Recursos.
A continuación se muestra un ejemplo de código para crear una aplicación de SAE:
resource "alicloud_sae_application" "default" { app_description = "tf-testaccDescription" app_name = "tf-testaccAppName" namespace_id = alicloud_sae_namespace.default.id image_url = "registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5" package_type = "Image" vswitch_id = alicloud_vswitch.vsw.id timezone = "Asia/Beijing" replicas = "5" cpu = "500" memory = "2048" } -
Orígenes de datos
Usted consulta un origen de datos para obtener información sobre los recursos existentes y sus atributos. Para obtener más información, consulte Orígenes de datos.
A continuación se muestra un ejemplo de código para listar los espacios de nombres de SAE:
data "alicloud_sae_namespaces" "nameRegex" { name_regex = "^my-Namespace" } output "sae_namespace_id" { value = data.alicloud_sae_namespaces.nameRegex.namespaces.0.id }
Para consultar más ejemplos sobre cómo usar Terraform para gestionar recursos de SAE, consulte Use Terraform to manage SAE resources.
Uso de Terraform para gestionar recursos de SAE
Las siguientes tablas describen los recursos de SAE que usted puede gestionar con Terraform.
|
Tipo de recurso |
Descripción |
|
Consulta la información de un espacio de nombres de SAE. Para obtener más información, consulte Use Terraform to manage SAE namespaces. |
|
|
Consulta la información de una aplicación de SAE. Para obtener más información, consulte Use Terraform to manage SAE applications. |
|
|
Consulta la información de una política de escalado automático de SAE. Para obtener más información, consulte Use Terraform to manage an auto scaling policy for an SAE application. |
|
|
Consulta la información de un ConfigMap de SAE. |
|
|
Consulta la información de una regla de versión canary de SAE. |
|
|
Consulta la información de una instancia de Ingress de SAE. |
|
|
Consulta la información de una instancia de SLB orientada a Internet de SAE. Para obtener más información, consulte Use Terraform to associate an SAE application with an SLB instance. |
|
|
Consulta la información de una instancia de SLB interna de SAE. |
|
Tipo de recurso |
Descripción |
|
Activa SAE. |
|
|
Lista los espacios de nombres de SAE. |
|
|
Lista las aplicaciones de SAE. |
|
|
Lista las políticas de escalado automático de SAE. |
|
|
Lista los ConfigMaps de SAE. |
|
|
Lista las reglas de versión canary de SAE. |
|
|
Lista las instancias de Ingress de SAE. |
|
|
Lista los tipos de instancia de SAE. |