La función Cluster On/Off de Couchbase Capella permite a los usuarios pausar y reanudar sus clústeres sin problemas, sin borrar permanentemente los datos, lo que ayuda a optimizar los gastos en la nube y mejorar la eficiencia operativa.
En este blog, exploraremos cómo funciona esta característica y cómo puedes automatizarla usando Terraform.
Los usuarios tienen dos opciones para gestionar la disponibilidad del clúster:
-
- On-Demand On/Off - Pausa y reanuda manualmente los clusters según sea necesario.
- Activación/desactivación programada: automatice la pausa/reanudación de los clústeres en fechas y zonas horarias específicas.
Apagar (pausar) un cluster
-
- Detiene todos los servicios del clúster.
- Persiste los datos, la configuración y los metadatos.
- Libera recursos informáticos para reducir costes manteniendo intacto el almacenamiento.
Encender (reanudar) un clúster
-
- Restaura el clúster desde un estado de pausa.
- Reinicia los servicios y vuelve a hacer accesibles los datos.
- Permite a los clientes volver a conectarse y reanudar las operaciones sin problemas.
¿Por qué utilizar la función de activación/desactivación de grupos?
- Ahorra costes de cálculo y optimiza en función del uso:
- Cuando un clúster está apagado, los recursos informáticos (por ejemplo, CPU, RAM) no se facturan, lo que reduce significativamente los costes de infraestructura.
- Cuando un clúster está desactivado, sólo se paga el importe desactivado (principalmente costes de almacenamiento y gestión).
- Ayuda a ajustar los costes al uso real en lugar de pagar por recursos ociosos.
- Reduce los gastos operativos:
- Elimina la necesidad de aprovisionar y desmontar clústeres manualmente.
- Los usuarios pueden reanudar fácilmente un clúster en pausa sin necesidad de reconfigurar o redistribuir recursos.
- Persistencia de los datos y rentabilidad del desarrollo y las pruebas:
- Los datos, el esquema (buckets, ámbitos, colecciones), los índices, los usuarios, las listas de permitidos y las copias de seguridad permanecen intactos cuando se pone en pausa un clúster.
- Garantiza que no se pierda la configuración al reanudar las operaciones.
- Los desarrolladores pueden pausar los entornos que no son de producción fuera del horario laboral. Así se evitan costes innecesarios en las canalizaciones de CI/CD, la puesta en escena o los entornos de UAT.
Optimización de costes
Una de las formas más sencillas y eficaces de reducir los costes operativos es apagar los clústeres cuando no se utilizan. Consideraremos el caso de uso de un clúster de AWS con 3 nodos (Datos, Índice y Consulta) utilizando un Plan Pro para desarrolladores en Couchbase Capella, con la configuración de 2 vCPUs, 16 GB RAM, tamaño de disco de 50 GB, tipo de disco GP3, y IOPS 3000.
Cuando este clúster se mantiene en línea 24 horas al día, 7 días a la semana, incurre en un coste mensual de computación de 1,5 millones de euros. $1,497.60 según el modelo de pago por uso. Sin embargo, muchos clústeres de desarrollo sólo se necesitan durante las horas de trabajo. Con sólo apagar el clúster durante 12 horas al día, por ejemplo durante la noche, los equipos pueden ahorrar $705.60 al mes, lo que supone un 47% reducción de los costes de computación. Esto supone un argumento de peso para automatizar el tiempo de inactividad de los clústeres con el fin de optimizar el gasto en la nube sin afectar a la productividad de los desarrolladores.
En entornos con varios clústeres o entornos de desarrollo que no requieren una disponibilidad ininterrumpida, al programar el tiempo de inactividad de los clústeres no esenciales, los equipos pueden reasignar sus presupuestos de forma más eficaz, invirtiendo en áreas que repercuten directamente en los resultados empresariales.
Primeros pasos: despliegue de una programación on/off mediante el proveedor Terraform
El proveedor Terraform de Capella permite a los usuarios gestionar los despliegues de Capella mediante programación, automatizando la orquestación de recursos. Veamos un sencillo tutorial para desplegar una programación On/Off en Capella a través del Terraform Provider.
Para saber más sobre cómo apagar o encender el cluster a petición utilizando Terraform, consulte los ejemplos y el LÉAME que se proporcionan en este repositorio. Aquí se explica paso a paso cómo activar/desactivar el clúster bajo demanda.
Además de la función de activación/desactivación del clúster, un App Service también puede activarse/desactivarse a petición. Consulte lo siguiente documentación y el proveedor Terraform ejemplos para más información.
Lo que aprenderá
-
- Los pasos para configurar los archivos y comprender los comandos necesarios para ejecutar los scripts de Terraform.
- Un tutorial paso a paso sobre el despliegue de un Cluster On/Off en Capella utilizando el proveedor.
Requisitos previos
Antes de empezar, asegúrate de que tienes:
-
- Versión de Terraform >= 1.5.2
- Versión de Go >= 1.2.0
- Cuenta de pago Capella
- Clúster Capella - Puede crear un clúster Couchbase utilizando el proveedor Capella UIo el API de gestión de Capella y utilizar el organization_id, project_id y cluster_id para crear la programación de encendido/apagado.
- Authentication APIKey - Puede crear la clave de la API utilizando la opción Capella UI o el API de gestión de Capella. Debe crear una clave API que tenga asociado el conjunto adecuado de roles, en función del ámbito de los recursos gestionados por el proveedor.
Para obtener información sobre la configuración de la autorización y la autenticación, consulte el manual Terraform repositorio y esto blog puesto.
Paso 1: Configuración
Crear las variables
- Cree un archivo llamado variables.tf y añada las siguientes definiciones de variables. Vamos a utilizar estas variables dentro de nuestro archivo de configuración.
123456789101112131415variable "organization_id" {descripción = "Capella Organization ID"}variable "project_id" {descripción = "Nombre del proyecto para el proyecto creado a través de Terraform"}variable "cluster_id" {descripción = "Capella Cluster ID"}variable "auth_token" {descripción = "Clave API de autenticación"} - Cree un archivo llamado terraform.template.tfvars y añada las siguientes líneas. Aquí, especificamos los valores de las variables clave asociadas con el despliegue.
1234auth_token = ""organización_id = ""proyecto_id = ""cluster_id = "" - Cree un archivo llamado capella.tf y añada la siguiente configuración para crear la programación de Encendido/Apagado para un cluster Capella existente en un proyecto:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889terraformar {proveedores_requeridos {couchbase-capella = {fuente = "registry.terraform.io/couchbasecloud/couchbase-capella"}}}# Configurar el proveedor Couchbase Capella utilizando variables predefinidasproveedor "couchbase-capella" {ficha_de_autenticación = var.auth_ficha}# Crear un horario de encendido y apagado para el clusterrecurso "couchbase-capella_cluster_onoff_schedule" "new_cluster_onoff_schedule"{organización_id = var.organización_idproyecto_id = var.proyecto_idgrupo_id = var.cluster_idzona horaria = "US/Pacific"días = [{día = "lunes"estado = "personalizado"de = {hora = 12minuto = 30}a = {hora = 14minuto = 30}},{día = "martes"estado = "personalizado"de = {hora = 12}a = {hora = 19minuto = 30}},{día = "miercoles"estado = "on"},{día = "jueves"estado = "personalizado"de = {hora = 12minuto = 30}},{día = "viernes"estado = "personalizado"de = {}a = {hora = 12minuto = 30}},{día = "sábado"estado = "personalizado"de = {hora = 12minuto = 30}a = {hora = 14}},{día = "domingo"estado = "off"}]}# Almacena los detalles de la programación de encendido y apagado del cluster en una variable de salida.# Puede visualizarse mediante el comando `terraform output cluster_onoff_schedule`.salida "cluster_onoff_schedule" {valor = couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_horario}
Paso 2: Despliegue y gestión de la programación
Inicializar el proveedor Terraform
Terraform debe inicializarse la primera vez que se utiliza el proveedor:
1 |
terraformar init |
Revisar el plan Terraform
Utilice el siguiente comando para revisar los recursos que se desplegarán:
1 |
terraformar plan -var-archivo terraformar.plantilla.tfvars |
Debería ver una salida similar a la siguiente al crear una programación de encendido/apagado para un clúster existente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
Terraform usado el seleccionado proveedores a generar el siguiente ejecución plan. Recursos acciones son indicado con el siguiente símbolos: + crear Terraform se realizar el siguiente acciones: # se creará couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule + recurso "couchbase-capella_cluster_onoff_schedule" "new_cluster_onoff_schedule" { + grupo_id = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" + días = [ + { + día = "lunes" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + a = { + hora = 14 + minuto = 30 } }, + { + día = "martes" + de = { + hora = 12 + minuto = 0 } + estado = "personalizado" + a = { + hora = 19 + minuto = 30 } }, + { + día = "miercoles" + estado = "on" }, + { + día = "jueves" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" }, + { + día = "viernes" + de = { + hora = 0 + minuto = 0 } + estado = "personalizado" + a = { + hora = 12 + minuto = 30 } }, + { + día = "sábado" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + a = { + hora = 14 + minuto = 0 } }, + { + día = "domingo" + estado = "off" }, ] + organización_id = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" + proyecto_id = "9f837bbd-d1f3-476d-ac62-ba65a6548215" + zona horaria = "US/Pacific" } Plan: 1 a añada, 0 a cambiar, 0 a destruir. Cambios a Salidas: + cluster_onoff_schedule = { + grupo_id = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" + días = [ + { + día = "lunes" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + a = { + hora = 14 + minuto = 30 } }, + { + día = "martes" + de = { + hora = 12 + minuto = 0 } + estado = "personalizado" + a = { + hora = 19 + minuto = 30 } }, + { + día = "miercoles" + de = null + estado = "on" + a = null }, + { + día = "jueves" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + a = null }, + { + día = "viernes" + de = { + hora = 0 + minuto = 0 } + estado = "personalizado" + a = { + hora = 12 + minuto = 30 } }, + { + día = "sábado" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + a = { + hora = 14 + minuto = 0 } }, + { + día = "domingo" + de = null + estado = "off" + a = null }, ] + organización_id = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" + proyecto_id = "9f837bbd-d1f3-476d-ac62-ba65a6548215" + zona horaria = "US/Pacific" } |
Ejecutar el plan Terraform
Despliegue los recursos Couchbase Capella utilizando el siguiente comando:
1 |
terraformar aplicar -var-archivo terraformar.plantilla.tfvars |
Escriba "sí" si el plan le parece bien.
Nota: El despliegue de los recursos tardará unos minutos si está creando un proyecto, desplegando un clúster y creando un calendario de activación/desactivación para el mismo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
Visite usted desea a realizar estos acciones? Terraform se realizar el acciones descrito sobre. Sólo Sí. se sea aceptado a aprobar. Entre en a valor: sí couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule: Creación de... couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule: Creación completa después de 0s Solicitar completa! Recursos: 1 añadido, 0 cambiado, 0 destruido. Salidas: cluster_onoff_schedule = { "cluster_id" = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" "días" = tolist([ { "día" = "lunes" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "a" = { "hora" = 14 "minuto" = 30 } }, { "día" = "martes" "de" = { "hora" = 12 "minuto" = 0 } "estado" = "personalizado" "a" = { "hora" = 19 "minuto" = 30 } }, { "día" = "miercoles" "de" = null /* objeto */ "estado" = "on" "a" = null /* objeto */ }, { "día" = "jueves" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "a" = null /* objeto */ }, { "día" = "viernes" "de" = { "hora" = 0 "minuto" = 0 } "estado" = "personalizado" "a" = { "hora" = 12 "minuto" = 30 } }, { "día" = "sábado" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "a" = { "hora" = 14 "minuto" = 0 } }, { "día" = "domingo" "de" = null /* objeto */ "estado" = "off" "a" = null /* objeto */ }, ]) "organization_id" = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" "project_id" = "9f837bbd-d1f3-476d-ac62-ba65a6548215" "zona horaria" = "US/Pacific" } |
Se vería así en la interfaz de usuario de Capella:
Destruir el calendario
1 |
terraformar destruir -var-archivo terraformar.plantilla.tfvars |
Referencias
-
- Echa un vistazo Horario de encendido y apagado del clúster utilizando Terraform Provider.
- Echa un vistazo a la Activación/desactivación del clúster a petición utilizando Terraform Provider.
- Echa un vistazo a la Activación/desactivación del servicio de aplicaciones a la carta utilizando Terraform Provider.
- Documentación oficial de Couchbase para On-demand Cluster On/Off - ref
- Documentación oficial de Couchbase para Cluster On/Off Schedule - ref
- Documentación oficial de Couchbase para App Service On/Off Schedule - ref