Dashboard as Code (EaC?)

Bruno Santos
3 min readSep 13, 2021

--

Uma abordagem de <everything as code> (EaC) trata as operações, infraestrutura, segurança, gerenciamento de configuração e conformidade como código de aplicativo, para que tudo siga as mesmas práticas de desenvolvimento de software

Já é popular a sigla IaC (infraestrutura como código) nos bate papos entre profissionais de tecnologia da informação, que resumidamente, é a “arte” de provisionar e manter infraestrutura usando códigos. Uma das ferramentas mais populares para esse objetivo sem sombra de dúvida é o Terraform da Hashicorp, porém, a sua popularidade é quase que na sua totalidade direcionada a provisionamento de infraestrutura nos principais provedores de computação em nuvem, mais especificamente AWS, Azure e GCP.

Para provisionar infraestrutura (ou recursos) o Terraform faz uso dos providers, que são uma abstração lógica de uma API, eles são responsáveis por entender as interações da API e expor seus recursos.

Observando o site da Hashicorp, encontramos uma grande biblioteca de providers, vemos que existem centenas deles, e não apenas para os principais provedores de computação, alguns são: {Oficiais: Kubernetes, Active Directory, Consul…} | {Homologados: DataDog, Elastic, NewRelic…} | {Comunidade: SonaQube, MySQL…}. Isso significa que podemos usar o Terraform para codificar o provisionamento de muitos outros recursos, e nesse post quero rapidamente mostrar como é simples criar um dashboard no Datadog usando um dos providers.

Pré-Requisitos

Acesso ao Datadog

API Key e App Key (procure o administrador do seu ambiente Datadog)

Conhecimento básico de Terraform

Terraform 0.13+

Código Terraform

O código que vamos usar para provisionar o dashboard é super simples, o primeiro bloco (linhas 1 — 7)indica qual o provider que será utilizado, ou seja, indicamos o provider que sabe se comunicar com a API do Datadog para criação de recursos.

No bloco seguinte (linhas 10 — 13)configuramos o provider, que exige 2 parâmetros para que a comunicação seja autorizada, API Key e App Key.

E no último bloco (linhas 15 — 17) estamos indicando qual recurso vamos provisionar, no caso, um dashboard.

Veja no menu do DOC oficial quais recursos podemos provisionar

Passos

1.Crie um diretório para manter os arquivos dessa PoC.

2.Crie o dashboard que precisamos manter por código.

3.Entre no dashboard e na engrenagem que está no canto superior direito clique sobre <Export dashboard JSON> para baixar o arquivo JSON do dash. Copie o arquivo para o diretório criado e troque seu nome para DashboardasCode.json.

4.Delete o dashboard criado, isso para que possamos assegurar que o dashboard foi efetivamente criado pelo Terraform.

5.Crie no diretório um arquivo main.tf com o conteúdo do código Terraform que vimos acima, trocando os asteriscos pelas chaves das API.

6.Agora inicialize o Terraform:

Output:

7.Para concluir e criar o dashboard, execute o comando abaixo:

Output:

Pronto, volte ao Datadog e veja que o dashboard foi criado.

Conclusão

O post foi bem breve e simples, a ideia era apenas mostrar que infraestrutura como código não se resume a apenas provisionar recursos nos principais provedores de computação em nuvem, mas provisionar tantos outros, basta usar um dos provedores disponibilizados na biblioteca da Hashicorp ou criar o seu próprio.

--

--

Bruno Santos
Bruno Santos

Written by Bruno Santos

Pai, marido, filho, irmão, tio, cristão, profissional de TI, corintiano, chef e fã de comida japonesa

No responses yet