DEV Community

Cover image for Terraform - Uma robusta opção para Infraestrutura como Código
Lidia Goncalves
Lidia Goncalves

Posted on

Terraform - Uma robusta opção para Infraestrutura como Código

O que é o Terraform Cloud?
O Terraform Cloud, criado pela empresa norte-americana de software HashiCorp, é uma alternativa open source (ou seja, sua implementação pode ser vista e adaptada por qualquer pessoa) para que profissionais possam criar sua infraestrutura em nuvem com código, ao invés de usar a interface de sites ou ferramentas.

Ele pode ser utilizado tanto em nuvens públicas, como Azure, GCP e AWS, ou localmente, em nuvens privadas, como, por exemplo, o Cloudstack ou OpenStack. O Terraform pode ser considerado IaC (infrastructure as code), ou “infraestrutura como código” no português, facilitando assim as configurações, documentações e também versionamentos de desenvolvimentos no ambiente que está sendo criado por meio dele.

Além de ser uma possibilidade muito vantajosa para empresas que visam automatizar o processo de criação de ambientes em nuvem, o Terraform Cloud é uma ótima opção para empreendedorismos considerados multi-cloud (que atuam com duas ou mais clouds simultaneamente), pois com a mesma ferramenta seria possível manter e automatizar o gerenciamento de diferentes ambientes, sendo eles de grande ou pequeno porte. Trazendo ainda mais flexibilidade para esse cenário, esse IaC é compatível com vários sistemas operacionais, incluindo Linux, MacOS e Windows, três das opções mais escolhidas pelo público geral.

Uma de suas principais características é a idempotência, termo muito utilizado na matemática ou em ciência da computação para indicar a propriedade que algumas operações têm de poderem ser aplicadas várias vezes sem que o valor do resultado se altere após a aplicação inicial. Ou seja, uma vez aplicado o seu código terraform, você poderá aplicá-lo quantas vezes desejar e nenhuma alteração será feita em sua infraestrutura, a menos que você tenha de fato alterado algo em seu código.

O Terraform utiliza uma linguagem de alto nível e fácil de se reutilizar, uma vez que podemos criar módulos e utilizar estes módulos em diversos projetos distintos, mesmo que tenhamos módulos em repositórios também distintos.

A ideia de possuir um “plano” de execução nos ajuda a identificar falhas em nosso código mais rapidamente, bem como prevenir problemas em nossa infraestrutura, visto que podemos ter uma visão geral de tudo o que será aplicado em nossa infra antes mesmo da execução real de nosso código, nos permitindo ter a certeza de que todas as alterações serão de fato intencionais.

Top comments (0)