Terraform versus OpenTofu

Terraform versus OpenTofu
Photo by Troy Mortier / Unsplash

Desde o momento em que a Hashicorp anunciou a mudança de licenciamento do Terraform, sua atual solução de infraestrutura como código, uma grande comoção ocorreu na comunidade open-source. Entenda neste artigo quais são as principais diferenças entre OpenTofu e Terraform e os impactos que isso causarão para o seu dia-a-dia.

Introdução

Antes de começarmos a falar sobre as diferenças é importante entender um pouco mais do contexto. Há pouco mais de 3 meses, a Hashicorp tomou uma decisão que, para leigos no assunto pode parecer pouca coisa, mas para quem já tem alguma experiência, conhece bem. O Terraform era licenciado através da licença Mozilla Public License (v2.0), também conhecida como MPL, e nestes últimos 9 anos, o terraform foi responsável por criar uma forte comunidade formada por usuários, empresas, contribuidores, clientes além de um ecossistema gigantesco incluindo módulos, providers, plugins, bibliotecas e extensões.

Quando houve a mudança para Business Source License (v1.1), isso mudou drasticamente, já que este licenciamento não é open-source. Isso ocorreu sem aviso prévio ou qualquer solicitação de opinião da comunidade. O que torna um alvo de discussão é entender: será que estou infringindo alguma regra de competitividade com a hashicorp? Será que devo pagar para manter-me regularizado? Pois bem, este ambiente de incertezas foi o suficiente para que a comunidade começasse a se mover e identificar uma maneira de resolver este problema. E é daí que surge o OpenTofu.

Principais similaridades

Podemos dizer que o OpenTofu é exatamente igual ao terraform nas versões 1.5.x. Com isso podemos ter segurança de que as seguintes características são muito similares entre as plataformas:

  • Linguagem declarativa: Isso significa que ambas ferramentas utilizam uma linguagem que descreve a infraestrutura desejada. Desta forma é possível manter uma sintaxe mais intuitiva.
  • Suporte a Cloud Providers: Por ser uma fork do terraform, o OpenTofu mantém suporte para uma ampla variadade de cloud providers como AWS, Azure, Google Cloud, entre outros, desta forma não há necessidade de refatorar o que já foi construído.
  • Módulos e Reutilização de código: ambas ferramentas incentivam a criação de módulos reutilizáveis, o que facilita muito a organização e compartilhamento de códigos entre projetos
  • Comunidade ativa: Neste momento em que escrevo este post, há mais de 33K commits no OpenTofu, o que demonstra haver uma comunidade tão ativa quanto à do terraform.

Principais diferenças

Por outro lado, devemos nos atentar a algumas diferenças que fogem do escopo técnico, mas que mudarão a forma como vemos ambas ferramentas:

  • Licença: A mudança de licença do Terraform para a Licença de Business Source License – BUSL – causou preocupações na comunidade. O OpenTofu adota uma licença verdadeiramente de código aberto, o que oferece mais segurança e previsibilidade aos usuários.
  • Governança: O OpenTofu está sob a guarda da Linux Foundation, seguindo um modelo de governança comunitária e neutra. Isso garante que o projeto não esteja sujeito às decisões de uma única empresa, tornando-o mais confiável para a comunidade.
  • Potencial de Evolução: Com sua estrutura modular e licença aberta, o OpenTofu tem o potencial de evoluir em uma direção que atenda às necessidades da comunidade de forma mais ampla. Isso inclui a adição de recursos, melhorias na segurança e expansão do ecossistema de plugins e módulos.

Falando em potencial de evolução, é importante ter em conta que o OpenTofu é promissor, principalmente devido à sua base de código aberto e à governança comunitária. Aqui seguir destaco algumas áreas onde particularmente vejo potencial para o OpenTofu se expandir.

Potencial de evolução

Com as evoluções crescentes que temos visto com o OpenTofu, não é de se esperar que algumas destas evoluções passem a ocorrer atuais soluções integradas ao terraform.

  • Expansão de Provedores: O OpenTofu pode continuar a adicionar suporte para uma ampla gama de provedores de nuvem, garantindo que os usuários possam gerenciar recursos em diferentes ambientes.
  • Integrações e Ecossistema: A comunidade do OpenTofu pode desenvolver um ecossistema rico de módulos, plugins e integrações que aprimorem ainda mais a capacidade da ferramenta.
  • Segurança e Confiabilidade: A governança comunitária do OpenTofu pode focar na melhoria da segurança e na garantia da confiabilidade da ferramenta, mantendo-a atualizada com as melhores práticas de segurança.
  • Documentação e Educação: A comunidade pode investir na criação de documentação detalhada e recursos educacionais para tornar o OpenTofu acessível a um público mais amplo.

Conclusão

Enquanto o Terraform enfrentou desafios com a mudança de licença, o OpenTofu surge como uma alternativa promissora, comprometida com a verdadeira filosofia de código aberto e governança comunitária. O futuro do OpenTofu parece brilhante, com espaço para crescimento e evolução contínua para atender às necessidades da comunidade de IaC. Somente o tempo nos dirá as cenas dos próximos capítulos.

Qual a sua opinião sobre este tema? Deixe nos comentários!