La infraestructura permite la innovación
Terraform es una herramienta que permite gestionar infraestructura como código. Ya sea on-premise o en servicios PaaS como AWS, GCP o Azure. Gracias a las decenas de proveedores, que incluyen sus módulos para gestionar distintos elementos de una infraestructura en la plataforma de plugins de Hashicorp.
Con la versión Open Source de Terraform, se puede gestionar una infraestructura completa de forma sencilla. Pero cuando llega el momento de pasar a producción, las características de la versión OS se quedan cortas. En algunos casos, sobre todo cuando se trata de las necesidades de un entorno empresarial, como es la gestión de equipos o políticas de acceso.
En Hopla! Software somos partners con la certificación CHIP de Terraform y os vamos a contar tres razones de peso para pasar a Terraform Enterprise. Ya sea en su modo auto-gestionado en una infraestructura on-premise o gestionado por Hashicorp en su plataforma cloud HCP.
Gestión de equipos, auditoría y logging
Terraform Enterprise permite gestionar los usuarios en equipos, y, éstos en organizaciones. De esta forma, es posible dar permisos a los miembros de los equipos para que puedan ejecutar tareas de Terraform. Crear variables en los workspaces, leer y escribir los estados de las tareas, etc. Los equipos sólo pueden tener permisos en los workspaces dentro de su organización, sin embargo, los usuarios individuales pueden pertenecer a equipos de otras organizaciones.
Otra funcionalidad de Terraform Enterprise es: la posibilidad de redirigir los logs a aplicaciones externas, disponiendo así de más observabilidad, ayuda con el cumplimiento en la retención de logs e información durante la resolución de problemas. Entre los servicios a los que se pueden redirigir los logs destacan: Amazon CloudWatch, Azure Log Analytics, Fluentd, o Google Cloud Platform Cloud Logging.
Por último, además de los logs de la aplicación, Terraform reenvía los logs de auditoría para tener un registro de las acciones que han ejecutado los usuarios. Para separarlos de los logs de aplicación tan sólo hay que realizar un filtrado en un sistema de agregación de logs y reenviarlos al destino deseado.
Estimación de gastos
El nacimiento de las PaaS y servicios en la nube como AWS, Google Cloud y Azure trajo muchas ventajas a la hora de poder crear infraestructura y servicios en formato de pago por uso. Pero, un gran poder conlleva una gran responsabilidad, y el poder de crear instancias de máquinas virtuales o infraestructura de red de forma dinámica para responder a nuevas necesidades conlleva la responsabilidad de vigilar la cartera, para que a final de mes no llegue una factura con más cifras de las que podemos asumir.
Para ayudarnos con esa responsabilidad, Terraform Enterprise incorpora la función de estimación de gastos para muchos de los recursos de AWS, GCP y Azure. Los costes estimados aparecen en la interfaz de ejecución como una fase más, antes de la aplicación de los cambios.
La estimación muestra el coste total al mes, y podemos ampliar la vista para tener una lista de los costes por recurso así como los recursos de los que no es posible una estimación. Y, puesto que es una estimación, algunos recursos no tienen información de costes disponible o son impredecibles.
Por último, gracias al motor de políticas Sentinel, podemos validar que la nueva configuración a aplicar no tenga más costes de los que podemos permitir y muestre un aviso al usuario o directamente deniegue la operación.
Política como código
Y, para terminar con responsabilidades, en Terraform Enterprise se incluye Sentinel, un framework de políticas como código para definir políticas y obligar su cumplimiento. Permite decisiones basadas en políticas detalladas y con lógica de programación, y se puede extender para usar información de fuentes externas.
Los usuarios con permisos para gestionar políticas pueden añadirlas a su organización, configurando una integración con un SCV como GitHub o subiendo las definiciones de las políticas a través de la API. También se pueden definir qué políticas se comprueban contra qué workspaces en las ejecuciones, para separar políticas según el entorno.