Temos o prazer de anunciar o suporte ao .NET Core for Pulumi! Este anúncio significa que você pode declarar sua infraestrutura de nuvem - incluindo tudo no Azure, como Kubernetes, Funções, AppService, Máquinas Virtuais, CosmosDB e muito mais - usando seu idioma .NET favorito, incluindo C #, VB.NET e F #. Isso permite que você use a nuvem inteira sem precisar sair do editor de código usando os métodos de infraestrutura como código que estão prontos para uso.

Atualmente, a infraestrutura se tornou mais relevante, pois os recursos modernos de nuvem, como microsserviços, contêineres, servidores e data warehouses, permeiam a arquitetura do seu aplicativo. O termo infraestrutura abrange todos os recursos de nuvem que seu aplicativo precisa. As arquiteturas modernas exigem uma reflexão profunda sobre elas ao criar um aplicativo. A abordagem da Pulumi ajuda os desenvolvedores e as equipes de infraestrutura a trabalharem juntos para criar novos recursos inovadores que aproveitam tudo o que a nuvem moderna tem a oferecer.
O Pulumi foi lançado há pouco mais de um ano e recentemente alcançou uma marca estável de 1,0. Depois de trabalhar com centenas de empresas para implantar aplicativos baseados em nuvem na produção, o .NET passou rapidamente para um dos recursos de comunidade mais solicitados pela Pulumi. Especialmente porque muitos de nós na equipe Pulumi somos especialistas em .NET, hoje temos o prazer de disponibilizar o Pulumi no .NET Core para atender às suas necessidades de desenvolvimento em nuvem.
O que é Pulumi?
O Pulumi permite que você use idiomas reais para expressar as necessidades de infraestrutura do seu aplicativo usando um método poderoso chamado "infraestrutura como código". Usando a infraestrutura como um código, você declara a infraestrutura desejada, e o mecanismo permite que você seja automatizado, fácil de replicar e confiável o suficiente para atender aos requisitos de produção. A Pulumi leva essa abordagem um passo adiante, usando linguagens reais e criando modelos modernos de infraestrutura em nuvem, como contêineres e programas sem servidor, de primeira classe e simples.
Com o Pulumi for .NET, você pode:
- Declare a infraestrutura com C #, VB.NET ou F #.
- Crie, atualize ou exclua automaticamente recursos da nuvem usando a estrutura Pulumi como manipulador de código, removendo apontamentos e cliques manuais na interface do usuário do Azure e scripts personalizados.
- Use seus IDEs e ferramentas favoritos, incluindo o Visual Studio e o Visual Studio Code, para executar funções como preenchimento automático, refatoração e documentação online.
- Detecte erros com antecedência usando erros de compilador padrão, analisadores Roslyn e um mecanismo de política específico da infraestrutura para segurança, conformidade e práticas recomendadas.
- Reutilize qualquer biblioteca NuGet existente ou redistribua a sua, seja para melhor infraestrutura, desempenho ou apenas padrões de programação comuns.
- Execute implantações contínuas, previsíveis e confiáveis com os Pipelines do Azure DevOps, as ações do GitHub ou uma das mais de uma dúzia de integrações.
- Crie aplicativos em nuvem escaláveis usando tecnologias clássicas de infraestrutura em nuvem, como Kubernetes, contêineres do Docker, recursos sem servidor.
O SDK gratuito de código aberto Pulumi, que inclui a CLI e uma variedade de bibliotecas, fornece esses recursos. O Pulumi também oferece recursos avançados para equipes que desejam usar o Pulumi na produção, como a integração do Azure ActiveDirectory para autenticação e políticas avançadas.
Exemplo: um banco de dados global com um aplicativo sem servidor
Digamos que queremos criar um novo aplicativo que use o Azure CosmosDB para distribuição global de dados para oferecer alto desempenho aos clientes, não importa onde eles estejam, usando um aplicativo C # sem servidor que seja escalonado automaticamente com nosso banco de dados. Normalmente, usamos outras ferramentas de criação de infraestrutura, como JSON, YAML, DSL ou apontar e clicar manualmente no console do Azure. Essa abordagem como um todo é normal, mas é assustadora - é complexa, sem uso e significa que é necessário um especialista em infraestrutura para começar.
A abordagem da Pulumi é escrever código em nossa linguagem .NET favorita, e a ferramenta Pulumi pode lidar com o resto. Por exemplo, esse código C # cria um banco de dados do Azure CosmosDB usando o Azure AppService FunctionApp, sem servidor, que é dimensionado automaticamente com o banco de dados:
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; }, }); }); }
Assista Program.cs no GitHub
Depois de escrever esse código, você executa o CLI Pulumi usando o comando pulumi up e ele primeiro mostra uma visualização dos recursos de infraestrutura que planeja criar. Após a confirmação, ele implantará todo o aplicativo e a infraestrutura necessária em apenas alguns minutos.

Posteriormente, se você precisar fazer alterações, basta editar seu programa, executar novamente a CLI e ele fará as alterações incrementais necessárias para atualizar sua infraestrutura de acordo. Um histórico completo de suas implantações é registrado para que você possa ver facilmente quais alterações foram feitas.
Por que o .NET também é ótimo para infraestrutura?
Muitos de nós gostam de usar o .NET para criar nossos aplicativos. Por que não usá-lo para IaaS? De fato, já listamos algumas das vantagens acima. Muitos deles provavelmente são óbvios se você já conhece e ama o .NET, mas vamos repetir brevemente.
Usando qualquer linguagem .NET, você obtém muitos recursos úteis para IaaS:
- Treinamento: Não há necessidade de aprender DSL ou linguagens de modelo de marcação.
- Expressividade: use loops, expressões condicionais, correspondência de padrões, LINQ, código assíncrono etc. criar dinamicamente uma infraestrutura que atenda às necessidades do ambiente de destino.
- Abstração: encapsule modelos comuns em classes e funções para ocultar a complexidade e evitar várias cópias e colagens do mesmo modelo.
- Compartilhamento e reutilização: junte-se à comunidade de aplicativos em nuvem e especialistas em infraestrutura compartilhando e reutilizando as bibliotecas NuGet com sua equipe ou com a comunidade internacional.
- Produtividade: use seu ambiente de desenvolvimento favorito e obtenha Conclusão de Instrução, Go-To Definition, verificação de erro ao vivo, refatoração, análise estática e documentação interativa.
- Organização do projeto: use técnicas comuns de estruturação de código, como assemblies e namespaces, para gerenciar a infraestrutura de um ou mais projetos.
- Ciclo de vida do aplicativo: use sistemas e métodos ALM existentes para gerenciar e implantar seus projetos de infraestrutura, incluindo controle de origem, verificação de código, teste e integração contínua (CI) e entrega (CD).
A Pulumi fornece acesso a todo o ecossistema .NET - algo que é fácil de dar como certo, mas não em outras soluções baseadas em scripts JSON, YAML, DSL ou CLI. O acesso ao idioma completo foi necessário para adicionar o exemplo CosmosApp acima, que é um componente personalizado que utiliza internamente classes, loops, lambdas e até LINQ. Essa abordagem também ajuda desenvolvedores e operadores a trabalharem melhor juntos usando uma estrutura comum. Adicione todos os itens acima juntos e obterá o resultado mais rápido e mais confiável.
Participe da comunidade e comece
Lançamos a primeira visualização do Pulumi para .NET, incluindo suporte para toda a gama de serviços do Azure. Para experimentar o Pulumi, visite a página inicial da
Pulumi na página inicial
do .NET .
Lá você encontrará algumas instruções de instalação e introdução ao Pulumi for .NET. Os seguintes recursos fornecem informações úteis adicionais: