Fundada en 2017, Pulumi ofrece una solución de infraestructura como código (IaC) de código abierto para configurar, implementar y administrar recursos de infraestructura en la nube. A diferencia de HashiCorp Terraform, en particular, Pulumi no requiere aprender un idioma específico, sino que se basa en herramientas y lenguajes de desarrollo comunes. Pulumi se basa en esta especificidad para convertir las organizaciones de TI a IaC y convertirse en su herramienta de ingeniería de nube preferida para la producción de aplicaciones nativas de la nube, en contenedores o sin servidor.
¿Qué es la infraestructura como código?
En entornos cada vez más grandes, heterogéneos y cambiantes, con cientos de servidores, se está volviendo casi imposible para los administradores de sistemas administrar los recursos de infraestructura manualmente. En entornos virtualizados, como la nube, estos recursos pueden configurarse, activarse o desactivarse mediante instrucciones digitales, que pueden programarse.
Esto es lo que propone IaC: escribir estos conjuntos de instrucciones en forma de programas que puedan ejecutarse automáticamente según las circunstancias. Los recursos se preparan y luego se activan, modifican o desactivan según la demanda, sin necesidad de intervención humana. Este enfoque acelera drásticamente las implementaciones, reduce drásticamente el riesgo de errores y ayuda a establecer y aplicar políticas para la estandarización y la optimización de recursos, que son esenciales para escalar la nube.
¿Por qué la infraestructura como código es tan importante para DevOps?
DevOps tiene como objetivo acelerar la producción y el despliegue de aplicaciones al reunir a los equipos de desarrollo e infraestructura en un proceso continuo. Sin embargo, para que este enfoque brinde los resultados deseados, se debe evitar cualquier cosa que pueda causar cuellos de botella. Sin IaC, Ops puede verse abrumado rápidamente por el ritmo de Devs. Para evitar retrasos, necesitan herramientas que les permitan configurar los recursos necesarios y automatizar su activación sobre la marcha. Esto es lo que Pulumi llama ingeniería en la nube: usar IaC y basarse en las mejores prácticas de DevOps para industrializar las operaciones y explotar al máximo las posibilidades de la nube y DevOps.
¿Cómo funciona Pulumi?
Pulumi se apoya en una tecnología llamada CrossCode que traduce instrucciones expresadas en un lenguaje de programación común (Python, Go, .Net, Java, YAML, Node.js…), o en un lenguaje IaS propietario (Terraform HCL, AWS CloudFormation…), a parámetros específicos de la plataforma de destino: Azure, AWS , GCP , Kubernetes , Docker, Databricks … Pulumi cuenta con más de sesenta APIs de conversión.
Cada servicio está asociado con un archivo de metadatos que describe su estado cuando se ejecutó el script por última vez. La actualización se realiza de manera diferencial: un motor examina si los recursos existen y si es necesario actualizarlos, recrearlos o eliminarlos. El almacenamiento de estos archivos de estado y las herramientas para ayudar a administrarlos se encuentran entre los servicios pagos de Pulumi, mientras que la solución IaS en sí es gratuita.
La plataforma también ofrece capacidades de política como código para implementar reglas y controles, gestionar secretos y administración.
¿Cuáles son los beneficios de Pulumi?
La capacidad de Pulumi para modelar infraestructuras utilizando lenguajes y herramientas de desarrollo comunes proporciona muchos beneficios:
- Sintaxis enriquecida : bucles, condiciones, funciones… Los patrones de programación habituales multiplican las posibilidades.
- Integración natural : compatible con las herramientas actuales, Pulumi se integra en el proceso DevOps y se integra naturalmente en la canalización de CI/CD.
- Mayor productividad : el uso de herramientas conocidas y dominadas permite un ahorro de tiempo considerable. En particular, no hay necesidad de aprender un idioma específico.
- Capitalización más fácil : gracias a Pulumi Package, es posible encapsular el recurso para compartirlo y reutilizarlo.
- Colaboración mejorada : es más fácil reunir a los equipos de desarrollo, infraestructura y seguridad en torno a un código que todos puedan entender y analizar.
- Gestión simplificada : Todos los recursos se describen de la misma manera y se gestionan desde una única plataforma centralizada.
Todas estas ventajas ya han convencido a muchas empresas y Pulumi bien podría hacer de la ingeniería en la nube el nuevo paradigma de la gestión de infraestructuras.
¿Cómo puedo aprender más?
Este artículo es parte de una serie más amplia centrada en las tecnologías y los temas que se encuentran en la primera edición de Devoteam TechRadar. Para leer más sobre estos temas, descargue TechRadar.