Infraestrutura como código em qualquer linguagem - Pulumi
Conheci, hoje, uma ferramenta chamada Pulumi, para desenvolvimento de infraestrutura como código. Fiz um teste usando a página de início rápido, disponível no site https://www.pulumi.com/docs/clouds/aws/get-started/ e farei um resumo, abaixo, dos passos para o teste e do resultado.
Fiz o teste no meu notebook, usando o Windows 11 Pro com Python e AWS. Usei o PowerShell como administradora, para fazer as instalações.
Passos:
- Instalei o Chocolatey no PowerShell;
- Instalei o Pulumi no PowerShell, usando o Chocolatey;
- Atualizei o AWS CLI (que já tinha instalado anteriormente);
- Criei um usuário no AWS IAM com acesso programático e criei uma chave de acesso para ele (importante lembrar que essa não é a forma mais segura para usar o AWS CLI, mas serve para testes);
- Criei as variáveis de ambiente AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY no PowerShell;
- Criei um diretório para o projeto e entrei nele;
- Dentro do diretório do projeto, rodei o comando -> pulumi new aws-python
- Este comando cria um projeto mínimo de demonstração, do Pulumi, cujo objetivo é criar um bucket S3 na AWS;
- Fui apertando <Enter> para aceitar as configurações padrão;
- Esperei o projeto ser criado (veja abaixo a estrutura criada);
;
- Ainda dentro do diretório do projeto, rodei o comando para fazer o deploy -> pulumi up
- Entrei no Console da AWS e verifiquei que o bucket estava criado;
- Depois continuei seguindo os passos indicados na página https://www.pulumi.com/docs/clouds/aws/get-started/modify-program/ , para criar uma página estática dentro do bucket e configurá-lo como um website;
- Ao final do teste, destruí os recursos criados com o comanto -> pulumi destroy
O que achei mais interessante foi a facilidade de instalação e utilização da ferramenta e o fato de poder usar comandos em Python (ou outra linguagem com a qual o desenvolvedor esteja mais acostumado), eliminando a necessidade de utilização do YAML.
Além disso, o projeto fica armazenado no repositório do Pulumi, na nuvem.