¡Nos complace anunciar el soporte para .NET Core para Pulumi! Este anuncio significa que puede declarar su infraestructura en la nube, incluido todo en Azure, como Kubernetes, Functions, AppService, Virtual Machines, CosmosDB y más, utilizando su lenguaje .NET favorito, incluidos C #, VB.NET y F #. Esto le brinda la capacidad de usar toda la nube sin tener que abandonar el editor de código utilizando los métodos de infraestructura como código que están listos para usar.

La infraestructura se ha vuelto más relevante en estos días a medida que las capacidades modernas de la nube, como microservicios, contenedores, servidores y almacenes de datos, impregnan la arquitectura de su aplicación. El término infraestructura cubre todos los recursos en la nube que su aplicación necesita. Las arquitecturas modernas requieren una profunda reflexión sobre ellas al crear una aplicación. El enfoque de Pulumi ayuda a los desarrolladores y equipos de infraestructura a trabajar juntos para crear nuevas características innovadoras que aprovechen todo lo que la nube moderna tiene para ofrecer.
Pulumi se lanzó hace poco más de un año y recientemente alcanzó una marca estable de 1.0. Después de trabajar con cientos de compañías para implementar aplicaciones basadas en la nube en producción, .NET pasó rápidamente a una de las funciones comunitarias más solicitadas por Pulumi. Especialmente dado que muchos de nosotros en el equipo de Pulumi somos los primeros expertos en .NET, hoy estamos muy contentos de hacer que Pulumi esté disponible en .NET Core para sus necesidades de desarrollo en la nube.
¿Qué es pulumi?
Pulumi le permite usar lenguajes reales para expresar las necesidades de infraestructura de su aplicación utilizando un método poderoso llamado "infraestructura como código". Usando la infraestructura como código, declara la infraestructura deseada, y el mecanismo le permite ser automatizado, fácil de replicar y lo suficientemente confiable como para cumplir con los requisitos de producción. Pulumi lleva este enfoque un paso más allá, utilizando lenguajes reales y creando plantillas modernas de infraestructura en la nube, como contenedores y programas sin servidor, de primera clase y simples.
Con Pulumi para .NET, puede:
- Declarar infraestructura con C #, VB.NET o F #.
- Cree, actualice o elimine automáticamente recursos en la nube utilizando el marco Pulumi como controlador de código, eliminando los puntos manuales y los clics en la interfaz de usuario de Azure y los scripts personalizados.
- Use sus IDE y herramientas favoritas, incluidos Visual Studio y Visual Studio Code, para realizar funciones como autocompletar, refactorización y documentación en línea.
- Detecte los errores de antemano utilizando errores de compilación estándar, analizadores Roslyn y un motor de políticas específico de infraestructura para seguridad, cumplimiento y mejores prácticas.
- Reutilice cualquier biblioteca NuGet existente o redistribuya la suya, ya sea para una mejor infraestructura, rendimiento o simplemente patrones de programación comunes.
- Realice implementaciones continuas, predecibles y confiables con Azure DevOps Pipelines, GitHub Actions o una de las más de una docena de integraciones.
- Cree aplicaciones escalables en la nube utilizando tecnologías clásicas de infraestructura en la nube, como Kubernetes, contenedores Docker, funciones sin servidor.
El SDK de código abierto gratuito de Pulumi, que incluye la CLI y una gama de bibliotecas, proporciona estas características. Pulumi también ofrece características avanzadas para equipos que buscan usar Pulumi en producción, como la integración de Azure ActiveDirectory para autenticación y políticas avanzadas.
Ejemplo: una base de datos global con una aplicación sin servidor
Digamos que queremos crear una nueva aplicación que use Azure CosmosDB para la distribución global de datos para proporcionar un alto rendimiento a los clientes, sin importar dónde se encuentren, usando una aplicación C # sin servidor que se escala automáticamente con nuestra base de datos. Por lo general, utilizamos algunas otras herramientas de creación de infraestructura, como JSON, YAML, DSL o señalar y hacer clic manualmente en la consola de Azure. Este enfoque en su conjunto es normal, pero da miedo: es complejo, no se utiliza y significa que se necesita un experto en infraestructura incluso para comenzar.
El enfoque de Pulumi es escribir código en nuestro lenguaje .NET favorito, y la herramienta Pulumi puede manejar el resto. Por ejemplo, este código C # crea una base de datos de Azure CosmosDB con la aplicación de aplicación de Azure AppService sin servidor, que se escala automáticamente con la base de datos:
using System; using System.Collections.Generic; using Pulumi; using Pulumi.Azure.AppService; using Pulumi.Azure.Core; using Pulumi.Azure.CosmosDB; class Program { static Task<int> Main(string[] args) { return Deployment.RunAsync(() => { var locations = new[] { "WestUS", "WestEurope", "SouthEastAsia" }; var rg = new ResourceGroup("myapp-rg", new ResourceGroupArgs { Location = locations[0], }); var app = new CosmosApp("myapp", new CosmosAppArgs { ResourceGroup = resourceGroup, Locations = locations, DatabaseName = "pricedb", ContainerName = "prices", Factory = (location, db) => { var func = new ArchiveFunctionApp("myapp-func", new ArchiveFunctionAppArgs { Location = location, Archive = new FileArchive("app"), AppSettings = new Dictionary<string, string> { ["COSMOSDB_ENDPOINT"] = db.Endpoint, }, }, ); return func.App.ID; }, }); }); }
Mira Program.cs en GitHub
Después de escribir este código, ejecuta CLI Pulumi con el comando pulumi up, y primero le mostrará una vista previa de los recursos de infraestructura que planea crear. Después de la confirmación, implementará toda su aplicación y la infraestructura necesaria en solo unos minutos.

Más adelante, si necesita realizar algún cambio, simplemente edite su programa, vuelva a ejecutar la CLI y realizará los cambios incrementales necesarios para actualizar su infraestructura en consecuencia. Se registra un historial completo de sus implementaciones para que pueda ver fácilmente qué cambios se han realizado.
¿Por qué .NET también es excelente para la infraestructura?
A muchos de nosotros nos gusta usar .NET para construir nuestras aplicaciones, entonces ¿por qué no usarlo para IaaS? De hecho, ya hemos enumerado algunas de las ventajas anteriores. Muchos de ellos son probablemente obvios si ya conoce y ama .NET, pero repitamos brevemente.
Usando cualquier lenguaje .NET, obtienes muchas características útiles para IaaS:
- Capacitación: no es necesario aprender DSL o lenguajes de plantillas de marcado.
- Expresividad: use bucles, expresiones condicionales, coincidencia de patrones, LINQ, código asincrónico, etc. para crear dinámicamente una infraestructura que satisfaga las necesidades del entorno objetivo.
- Abstracción: encapsula plantillas comunes en clases y funciones para ocultar la complejidad y evitar múltiples copias y pegar la misma plantilla.
- Compartir y reutilizar: conéctese a la comunidad de aplicaciones en la nube y expertos en infraestructura al compartir y reutilizar las bibliotecas NuGet con su equipo o la comunidad internacional.
- Productividad: use su entorno de desarrollo favorito y obtenga la finalización de la declaración, la definición de inicio, la verificación de errores en vivo, la refactorización, el análisis estático y la documentación interactiva.
- Organización del proyecto: utilice métodos comunes de estructuración de código, como ensamblajes y espacios de nombres, para administrar la infraestructura de uno o más proyectos.
- Ciclo de vida de la aplicación: utilice los sistemas y métodos ALM existentes para administrar e implementar sus proyectos de infraestructura, incluido el control de origen, la verificación del código, las pruebas y la integración continua (CI) y la entrega (CD).
Pulumi proporciona acceso a todo el ecosistema .NET, algo que es fácil de dar por sentado, pero no en otras soluciones basadas en scripts JSON, YAML, DSL o CLI. El acceso al lenguaje completo fue necesario para agregar el ejemplo de CosmosApp anterior, que es un componente personalizado que utiliza internamente clases, bucles, lambdas e incluso LINQ. Este enfoque también ayuda a los desarrolladores y operadores a trabajar mejor juntos usando un marco común. Agregue todo lo anterior junto, y obtendrá el resultado más rápido y más confiable.
Únete a la comunidad y comienza
Lanzamos la primera vista previa de Pulumi para .NET, que incluye soporte para la gama completa de servicios de Azure. Para probar Pulumi, visite la página
de inicio de
Pulumi para la página
de inicio
de .NET .
Allí encontrará algunas instrucciones de instalación y de inicio para Pulumi para .NET. Los siguientes recursos proporcionan información útil adicional: