Definición: Plataforma de infraestructura como codigo que permite definir y gestionar recursos cloud con lenguajes de programacion de proposito general en cualquier proveedor cloud.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Que es Pulumi
Pulumi es una plataforma de infraestructura como codigo (IaC) que permite definir, desplegar y gestionar recursos cloud usando lenguajes de programacion de proposito general como TypeScript, Python, Go, Java o C#. A diferencia de Terraform (que usa HCL) o CloudFormation (que usa YAML/JSON), Pulumi utiliza los mismos lenguajes y herramientas que los desarrolladores ya conocen. Soporta multiples proveedores cloud: AWS, Azure, Google Cloud, Kubernetes y mas de 100 proveedores adicionales.
Como funciona
El desarrollador escribe un programa en su lenguaje preferido que declara los recursos de infraestructura deseados. Pulumi compara el estado deseado con el estado actual (almacenado en un backend de estado, ya sea Pulumi Cloud o un bucket de S3) y calcula las operaciones necesarias: crear, actualizar o eliminar recursos. El motor de Pulumi ejecuta estas operaciones contra las APIs de los proveedores cloud. Al usar lenguajes reales, se pueden aplicar patrones como herencia, composicion, genericos y tests unitarios a la infraestructura.
Por que importa
Pulumi elimina la barrera entre el codigo de aplicacion y el codigo de infraestructura. Los equipos no necesitan aprender un lenguaje especifico de IaC: usan las mismas herramientas, editores y flujos de trabajo. Esto facilita la adopcion de IaC en equipos de desarrollo y permite aplicar las mismas practicas de ingenieria de software (tests, code review, CI/CD) tanto a la aplicacion como a la infraestructura.
Ejemplo practico
Un equipo construye una aplicacion multi-cloud con el backend en AWS y servicios de machine learning en Google Cloud. Con Pulumi en TypeScript, definen ambas infraestructuras en un solo proyecto: funciones Lambda, tablas DynamoDB y colas SQS en AWS, junto con instancias de Vertex AI y buckets de Cloud Storage en GCP. Un unico comando pulumi up despliega toda la infraestructura en ambos proveedores, y los tests unitarios verifican la configuracion antes del despliegue.