Ir al contenido principal

Pulumi IaC TypeScript Multi-Cloud

Infraestructura como código con Pulumi: automatización cloud con lenguajes reales

La infraestructura como código con Pulumi permite a los ingenieros definir la infraestructura en la nube en TypeScript, Python, Go o .NET: los mismos lenguajes, herramientas y frameworks de pruebas que usan para el código de aplicación. Creamos stacks de Pulumi para AWS, Azure, GCP y Kubernetes, imponemos guardrails de políticas con CrossGuard, gestionamos secretos con Pulumi ESC y conectamos la automatización de autoservicio mediante la Pulumi Automation API para equipos de producto de EE. UU. y la UE que necesitan una infraestructura auditable y repetible.

Pedir propuesta Ver casos

Infraestructura como código con Pulumi para aprovisionamiento multinube en lenguajes de programación reales

La infraestructura como código con Pulumi permite a los ingenieros definir la infraestructura en la nube en TypeScript, Python, Go o .NET: los mismos lenguajes, herramientas y frameworks de pruebas que usan para el código de aplicación. Creamos stacks de Pulumi para AWS, Azure, GCP y Kubernetes, imponemos guardrails de políticas con CrossGuard, gestionamos secretos con Pulumi ESC y conectamos la automatización de autoservicio mediante la Pulumi Automation API para equipos de producto de EE. UU. y la UE que necesitan una infraestructura auditable y repetible.

Retos

Retos del sector que resolvemos

Gestión del estado y elección del backend

Elegir mal el backend de estado, o trabajar sin bloqueo, provoca corrupción por aplicaciones concurrentes y stacks con split-brain. Configuramos Pulumi Cloud, S3 con cifrado en el servidor o backends de Azure Blob con el bloqueo y los controles de acceso adecuados para cada nivel de entorno.

Secretos que se filtran a los archivos de estado

El estado de Pulumi es JSON y puede conservar sin querer valores sensibles en salidas en texto plano. Auditamos las salidas de los stacks, marcamos los valores sensibles con `Output.secret` y sustituimos el paso de secretos ad hoc por Pulumi ESC, de modo que las credenciales nunca se materialicen en el estado ni en los logs del CI.

Aplicación de políticas entre equipos

Sin guardrails, los ingenieros despliegan recursos que incumplen las políticas de cifrado, etiquetado o red. Implementamos policy packs de CrossGuard —ejecutados en el servidor en Pulumi Cloud o en local en el CI— para bloquear los recursos no conformes antes de que se haga ninguna llamada a la API de la nube.

Detección de deriva y cambios fuera de banda

Los cambios hechos en la consola y los hotfixes aplicados al margen de Pulumi se acumulan como deriva y hacen que el siguiente `pulumi up` sea impredecible. Programamos ejecuciones automáticas de `pulumi preview` en el CI, enviamos alertas con la salida del diff a Mattermost o Slack e imponemos una política de cambios de infraestructura mediante PR.

Pruebas del código de infraestructura

El código de infraestructura suele entregarse sin pruebas porque los frameworks de testing tradicionales no modelan los recursos de la nube. Escribimos pruebas unitarias de Pulumi (con mock del SDK) y pruebas basadas en propiedades que verifican la configuración de los recursos antes de llamar a ninguna API de la nube.

Abstracción multicloud frente a paridad con Terraform

Los equipos que migran desde Terraform afrontan un coste de arranque: faltan módulos maduros de la comunidad, el modelo de programación asíncrona resulta desconocido y las herramientas de importación de estado son limitadas. Mantenemos bibliotecas reutilizables de componentes de Pulumi para AWS, Azure y GCP y ejecutamos `pulumi convert` para acelerar las migraciones desde Terraform.

Soluciones

Soluciones que desarrollamos

Stacks de IaC con lenguajes reales

Stacks completos de Pulumi escritos en TypeScript o Python —el mismo lenguaje que la capa de aplicación— con linting, comprobación de tipos y refactorización en el IDE desde el primer momento. Sin HCL, sin DSL.

Políticas como código con CrossGuard

Los policy packs de CrossGuard, aplicados a toda la organización, imponen controles de cifrado, etiquetado, exposición de red y costes. Las políticas se ejecutan antes de `pulumi up` y bloquean los recursos no conformes en la puerta de entrada, no a posteriori.

Secretos y configuración con Pulumi ESC

Gestión centralizada de secretos y configuración de entornos mediante Pulumi ESC: cifrados en reposo, inyectados en el momento del despliegue, versionados y auditables. Sustituye los archivos `.env` dispersos, la proliferación de parámetros en SSM y las credenciales incrustadas en el código.

Plataformas de autoservicio con la Automation API

Plataformas internas para desarrolladores y pipelines de CI creados con la Pulumi Automation API: creación, actualización y eliminación de stacks por programa, sin recurrir a la CLI de Pulumi. Permite entornos efímeros por PR y flujos de aprovisionamiento de tenants.

Pruebas unitarias y basadas en propiedades de la infraestructura

Las pruebas unitarias de Pulumi simulan el SDK de la nube y verifican las propiedades de los recursos sin hacer llamadas a la API. Las pruebas basadas en propiedades validan invariantes de configuración con entradas generadas. Ambas suites se ejecutan en el CI en cada pull request.

Bibliotecas de componentes multicloud

Componentes reutilizables de Pulumi —clústeres EKS/AKS/GKE, patrones de VPC/VNet, RDS/Azure SQL, almacenamiento S3/Blob con cifrado— que se comparten entre equipos mediante npm o PyPI. Las stack references conectan las salidas entre stacks sin acoplar los archivos de estado.

Stack

Stack tecnológico

Pulumi (TypeScript / Python / Go / .NET), backend de estado Pulumi Cloud, backends de estado S3/Azure Blob, políticas como código con CrossGuard, Pulumi ESC (secretos y configuración), component resources, Automation API, dynamic providers, stack references, pruebas unitarias y basadas en propiedades, multicloud (AWS / Azure / GCP / Kubernetes).

Cumplimiento

Cumplimiento y normativa

Pista de gestión de cambios para SOC 2 · guardrails de políticas con CrossGuard · secretos cifrados con Pulumi ESC · higiene de la cadena de suministro con proveedores fijados

UE

  • RGPD — Pulumi ESC almacena todos los secretos y la configuración cifrados en reposo y en tránsito; no aparecen credenciales en texto plano en los archivos de estado, los logs del CI ni las salidas de los stacks.
  • Reglamento de IA de la UE — el linaje completo de la infraestructura, mediante el historial de estado inmutable y las stack references, proporciona la pista de procedencia que exigen los despliegues de sistemas de IA.
  • NIS2 — las políticas como código de CrossGuard imponen requisitos de segmentación de red, cifrado en reposo y registro antes de desplegar cualquier recurso; la detección de deriva se ejecuta según un calendario.
  • eIDAS — el aprovisionamiento de certificados y claves (ACM, Key Vault, GCP KMS) está codificado en componentes de Pulumi, de modo que la rotación de certificados es una operación probada y auditable y no un paso manual.

EE. UU.

  • SOC 2 — cada cambio de infraestructura pasa por una PR con salida de preview, aprobación humana y registro de up; el historial de estado en Pulumi Cloud o S3 proporciona las evidencias de gestión de cambios que necesitan los clientes regulados.
  • Políticas como código — los guardrails de CrossGuard se ejecutan antes de `pulumi up` y bloquean los recursos no conformes, lo que da a los equipos de cumplimiento un control preventivo y no detectivo.
  • Higiene de secretos — Pulumi ESC cifra los secretos en el servidor y los inyecta en los stacks en el momento del despliegue; los secretos nunca aparecen en texto plano en el estado ni en el control de versiones.
  • Cadena de suministro — las versiones de los providers se fijan en el código y se validan en el CI; las pruebas unitarias y basadas en propiedades de la infraestructura detectan regresiones de configuración antes de que lleguen a producción.

Por qué YuSMP

Por qué los equipos de ingeniería eligen YuSMP para el desarrollo con Pulumi

Su lenguaje, su toolchain

La infraestructura se escribe en el mismo TypeScript o Python que la aplicación: el mismo linter, el mismo IDE, el mismo ejecutor de pruebas. Los ingenieros no cambian de contexto a HCL ni mantienen un conjunto de habilidades de IaC aparte.

Aplicación de políticas antes del despliegue

CrossGuard bloquea los recursos no conformes en el momento de `pulumi up`, antes de cualquier llamada a la API de la nube. El cumplimiento es preventivo, no una auditoría posterior al despliegue. Los clientes regulados de EE. UU. y la UE obtienen un control que pueden mostrar a los auditores.

Automation API para platform engineering

La Pulumi Automation API expone el motor completo de Pulumi como una biblioteca, lo que permite plataformas internas, aprovisionadores de tenants y flujos de entornos efímeros que son imposibles con herramientas de IaC que solo ofrecen CLI.

Preguntas frecuentes

Preguntas frecuentes sobre Pulumi e infraestructura como código

¿Pulumi o Terraform: cuál deberíamos elegir?

Terraform (HCL) tiene un ecosistema de providers más amplio y más módulos de la comunidad. Pulumi encaja mejor cuando su equipo ya escribe TypeScript, Python o Go y quiere usar funciones reales de un lenguaje —bucles, funciones, clases, pruebas unitarias— sin aprender HCL. Pulumi ofrece además la Automation API para integrar la IaC en el código de aplicación, algo que Terraform no puede igualar. Ambas herramientas son maduras; la elección depende sobre todo de las habilidades de lenguaje que ya tenga su equipo y de la necesidad de una automatización programable.

¿Cómo gestiona Pulumi el estado remoto?

Pulumi admite varios backends de estado: Pulumi Cloud (gestionado, con RBAC, historial y aplicación de políticas), S3 con cifrado en el servidor y bloqueo con DynamoDB, Azure Blob Storage y GCS. Separamos el estado por entorno (dev / staging / prod) y por subsistema principal para limitar el radio de impacto. Los archivos de estado se cifran en reposo; las salidas sensibles se marcan con `Output.secret` para que se cifren en el estado y nunca se registren en los logs.

¿Cómo funcionan los secretos en Pulumi?

Pulumi ofrece dos capas de gestión de secretos. Los secretos a nivel de stack usan la clave de cifrado del stack (Pulumi Cloud o una clave gestionada por el cliente) para cifrar valores de salida individuales en el estado. Pulumi ESC (Environments, Secrets, Config) es el enfoque más reciente y recomendado: los secretos se almacenan de forma centralizada, con control de versiones, se cifran en el servidor y se inyectan en los stacks y en los entornos de CI en tiempo de ejecución, lo que elimina por completo las credenciales en texto plano de los archivos de estado y de los logs del CI.

¿Qué es CrossGuard y cómo impone el cumplimiento?

CrossGuard es el framework de políticas como código de Pulumi. Se escriben políticas en TypeScript o Python que verifican propiedades de los recursos: cifrado activado, acceso público bloqueado, etiquetas obligatorias presentes. Las políticas se agrupan en policy packs y se ejecutan en el servidor de Pulumi Cloud (bloqueando la actualización) o en local en el CI. CrossGuard admite políticas consultivas (solo advierten) y obligatorias (bloquean el despliegue). Los clientes regulados usan packs obligatorios para asegurar que ningún recurso no conforme llegue a producción.

¿Se puede probar el código de infraestructura de Pulumi?

Sí. Pulumi ofrece dos capas de pruebas. Las pruebas unitarias simulan el SDK de Pulumi y verifican las configuraciones de los recursos sin hacer llamadas a la API de la nube: son rápidas y se ejecutan en el CI sin credenciales. Las pruebas basadas en propiedades usan el motor real de Pulumi sobre un stack de prueba y validan que los recursos desplegados cumplen ciertos invariantes. Escribimos ambas capas para cada componente no trivial, de modo que los equipos tengan la misma confianza en las pruebas de la infraestructura que en las del código de aplicación.

¿Cómo migran una base de código de Terraform existente a Pulumi?

Pulumi incluye `pulumi convert --from terraform`, que traduce módulos HCL a TypeScript, Python o Go. En bases de código grandes convertimos de forma incremental: envolvemos el estado de Terraform existente con el data source de remote state de Terraform de Pulumi y migramos los subsistemas uno a uno. El estado de los recursos ya aprovisionados se importa con `pulumi import`, de modo que Pulumi asume su gestión sin volver a aprovisionarlos. Ejecutamos Terraform y Pulumi en paralelo durante la ventana de transición para evitar tiempos de inactividad.

¿Cómo gestionan la infraestructura en AWS, Azure y GCP con Pulumi?

Cada nube es un provider de Pulumi independiente que se instala como dependencia de paquete. Organizamos los stacks por entorno y región de la nube, usamos stack references para compartir salidas entre stacks (por ejemplo, un stack de red compartido que consumen los stacks de aplicación) y mantenemos una biblioteca de componentes reutilizables para los patrones habituales de cada nube. Las versiones de los providers se fijan en el código y se actualizan con una cadencia programada y ejecuciones automáticas de preview para detectar cambios incompatibles antes de que se propaguen.

Cree infraestructura en la nube auditable y con políticas obligatorias con ingenieros sénior de Pulumi

Respuesta en 1 día hábil. NDA a petición.

Pedir propuesta

Pedir propuesta

Cuéntenos algunos detalles y un consultor sénior le responderá en un día hábil.