Nessa semana eu aprendi - Semana 10 de 2025

Não demorou nem mesmo uma semana para que eu quebrasse uma das regras que criei para esse blog:

Quanto a periodicidade das postagens, minha pretensão é começar devagar, com no máximo uma postagem por mês.
— Meireles, Daniel

Acontece que durante essa semana eu trabalhei em dois novos repositórios que, creio eu, podem ser do seu interesse caso trabalhe com Terraform tanto quando eu. Portanto, achei de bom-tom compartilhá-los com todos os meus leitores.

Nota: Eu sempre quis dizer isso 😅.

Vamos a eles:

🏷️ terratag-poc-demo

Criei esse repositório, pois no projeto onde estou atualmente alocado, tags são coisa séria.

O meu cliente usa as tags que adicionamos aos recursos de infraestrutura para uma série de coisas: identificar o ambiente em que uma determinada máquina virtual se encontra, para saber quem é o “dono” da aplicação que aquele pedaço de infra está suportando, para gerenciar questões de compliance e chargeback, dentre outras paradinhas.

Acontece que às vezes nem todas as tags são inseridas, e as que são ainda carecem de uma certa curadoria. Não é uma questão de definição técnica, afinal as tags requeridas estão amplamente documentadas. São questões de processo e de melhoria da qualidade do projeto que, a meu ver, ainda precisam ser ajustadas internamente com todas as equipes envolvidas - tanto as que desenvolvem os módulos Terraform quanto as que usam esses mesmos módulos.

Portanto, comecei a pesquisar alguma forma de gerenciar essas tags de maneira automatizada, e acabei encontrando uma ferramenta chamada terratag.

O logo da ferramenta terratag

O logo da ferramenta terratag

Terratag é uma aplicação escrita em Go que almeja ser um gerenciador de tags e labels compatível com os três maiores provedores de nuvem do mercado - Azure, AWS, e GCP.

Desenvolvida pelo pessoal da env0, a ferramenta tem um funcionamento bastante simples e direto: todo recurso que suporta tags é alterado de modo a incluir esse argumento, e um mapa com as tags definidas pelo desenvolvedor é inserido através de uma variável local. Se você já possui o argumento declarado, a ferramenta toma o cuidado de alterar a entrada dessas tags via uma função merge, assim você não perde os valores que seriam adicionados através de uma variável de entrada, por exemplo.

Eu particularmente gostei do fato da ferramenta identificar os recursos que suportam tags, mas não gostei da maneira como a mesma declara as variáveis no código. Não creio que ela seja a killer tool que irá nos ajudar a contornar os problemas que descrevi, mas pode ser de alguma ajuda na fase inicial de desenvolvimento de um novo módulo, identificado os recursos que estão omitindo o argumento “tags”, por exemplo.

No repositório que eu criei (em inglês), existem algumas informações adicionais acerca do meu caso de uso e instruções para que você possa avaliar a ferramenta e tirar as suas próprias conclusões.

Essa prova de conceito vai provavelmente se transformar em uma palestrinha a ser ministrada na comunidade interna de DevOps da Zoi; isso desembocará na criação de um slide deck para me auxiliar na apresentação da ferramenta, caso o tema seja aceito em uma das futuras meetups do grupo. Se esse for o caso, o PPT será adicionado ao repositório, de modo a complementar a documentação já existente.


➿ tf-meta-argumentos

Criei esse repositório (em português) como parte dos meus estudos para o exame da certificação Terraform Associate (003).

Há algum tempo, descobri que o método de aprendizado mais efetivo para mim é o método Feynman.

Richard Phillips Feynman, um dos mais renomados físicos da história, acreditava que a verdadeira compreensão só é alcançada quando conseguimos explicar um tópico de maneira simples e clara. Ele usava essa abordagem não apenas em suas aulas, mas também em sua própria vida acadêmica, enfatizando que o ato de ensinar é uma das melhores formas de aprender.

Reportagem da Folha de São Paulo anunciando que Feynman iria lecionar no Brasil

Fonte: Folha de São Paulo

Curiosidade: Feynman lecionou no Brasil, e sua passagem pela CBPF (Centro Brasileiro de Pesquisas Físicas; não confundir com a Confederação Brasileira de Futebol) é documentada no livro “O senhor está brincando, Sr. Feynman!”.

Nota: O livro encontra-se esgotado, mas você pode encontrá-lo na biblioteca mais próxima.

Portanto, toda vez que eu preciso aprender alguma coisa, eu me coloco no papel de um Professor ensinando esse ou aquele conceito para mim mesmo, de modo a estimular a minha compreensão ativa.

Por enquanto, tenho apenas dois meta-argumentos descritos: depends_on e for_each. No caso do primeiro, eu acredito que a explicação e exemplos são suficientes para entendê-lo. Já o segundo requer mais exemplos avançados, que ainda estou desenvolvendo e que adicionarei ao repositório em breve.

De qualquer maneira, vocês todos estão convidados a ampliar, corrigir e melhorar essa empreitada. As instruções sobre como colaborar encontram-se descritas no README do repositório.

Um grande abraço a todos e até a próxima!

Previous
Previous

Nessa semana eu aprendi - Semana 11 de 2025

Next
Next

Minha motivação para escrever um blog