Terraform um futuro moribundo? Vida longa ao OpenTofu!
Vocês devem estar se perguntando? O que vai acontecer com o Terraform? A Hashicorp deu um tiro no pé? O que é OpenTofu? Calma meus amigos eu irei explicar o que está acontecendo.
O Terraform sempre foi uma solução de código aberto e com muito apoio de uma comunidade gigantesca, hoje em dia é difícil dizer que não existe uma corporação que não utiliza IaC sem usar o Terraform como sua ferramenta de provisionamento.
Porque Terraform é tão fomoso? A solucão Terraform da Hashicorp não é focada apenas em um único provedor, pelo contrário, existem mais de 3000 serviços terceiros, módulos e ferramentas adjacentes que constrói com louvor toda essa fama e tornam o o que ele é.
Mas algo muito triste aconteceu exatamente no dia 10 de agosto de 2023, foi como receber uma facada nas costas, com pouco ou nenhum aviso prévio a Hashicorp mudou o licenciamento da ferramenta sem que a comunidade pudesse opinar de MPL para Business Source License (v1.1), o famoso BUSL.
Qual o impacto dessa mudança? Primeiro irei explicar os tipos de licenciamento:
Licença Pública Mozilla (MPL) 2.0
A MPL 2.0 é considerada uma licença de código aberto robusta que permite a distribuição gratuita e aberta do software. Ela é compatível com outras licenças importantes de código aberto, como a Licença Pública Geral GNU (GPL) e a Licença Apache.
Permite o uso, modificação e redistribuição irrestritos do software, contanto que quaisquer modificações feitas no código licenciado pela MPL também sejam disponibilizadas sob a MPL. Também permite a integração com software proprietário.
A MPL 2.0 é uma licença de código aberto reconhecida aprovada pela Iniciativa de Código Aberto (OSI). Ela é projetada para garantir que o código aberto permaneça aberto e disponível para a comunidade.
A MPL 2.0 não impõe limitações baseadas em tempo. Permanece código aberto indefinidamente.
Permite tanto o uso não comercial quanto o comercial do software sem restrições.
A MPL 2.0 promove uma comunidade mais aberta e colaborativa em torno do software, pois permite uma ampla variedade de usos e contribuições.
Business Source License
A Licença Business Source não é uma licença de código aberto no sentido tradicional. Às vezes é chamada de “licença de código-fonte disponível”, pois permite o compartilhamento do código-fonte, mas inclui restrições que podem torná-la menos permissiva do que as licenças de código aberto tradicionais.
A BSL não é considerada de código aberto por muitos na comunidade de código aberto devido às suas restrições, especialmente em relação ao uso e redistribuição.
Normalmente impõe restrições ao uso e redistribuição. Muitas vezes inclui uma limitação baseada em tempo, como exigir que o código-fonte esteja disponível gratuitamente após um certo período ou quando condições específicas são atendidas.
Geralmente inclui uma cláusula que especifica quando o software pode transicionar para uma licença mais permissiva, muitas vezes após um período definido ou quando determinados limites de receita ou usuários são alcançados.
A BSL pode impor restrições ao uso comercial até que certas condições sejam atendidas ou um período especificado tenha passado.
Pode limitar o envolvimento da comunidade devido às suas restrições de uso, potencialmente desencorajando contribuições e colaboração.
Podemos dizer que milhares de empresas da noite para o dia podem ter problemas jurídicos em suas infraestruturas, pois tudo ficou muito vago sobre o licenciamento BUSL. Cada empresa e cada desenvolvedor que utiliza o Terraform não tem certeza o que pode acontecer ao utilizar o Terraform, imagina se a HashiCorp muda de novo o licenciamento da noite para o dia e você ganha um processo por utilizar o Terraform.
Com o novo licenciamento cheio de restrição o ecossistema desenvolvido em torno do Terraform como código aberto vai desaparecer, desenvolvedores experientes que ajudavam na evolução da ferramenta não contribuirão mais:
“As bases de código Terraform existentes se transformarão em passivos desatualizados, as ferramentas independentes praticamente desaparecerão e a comunidade se fragmentará e desaparecerá”
Manifesto OpenTofu
Várias tentativas de contato com a HashCorp solicitando o retorno do Terraform para o licenciamento de código aberto foram feitas, todavia sem nenhuma resposta, por isso, no dia 25 de agosto de 2023 foi criado um fork publico com o código livre do Terraform sob os cuidados da Linux Foundation com o nome OpenTofu.
O OpenTofu veio para devolver para o Terraform o seu status de ferramenta de código aberto e retormar uma das comunidades mais participativa para poder produzir e crescer sem restrições.
Como instalar o OpenTofu?
Infelizmente o código é para Linux e MAC, mas irei demonstrar logo abaixo como solucionar isso:
1 — Iremos instalar o WSL:
2 — Execute os seguintes comandos:
2.1
wsl --install
2.2
wsl -l -o
2.3
wsl --install -d Ubuntu-22.04
3 — Após instalar o WSL execute os comandos:
3.2
bash
sudo su
4- Precisamos agora instalar o AZ CLI para logar no Azure:
4.1
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
4.2
sudo apt-get update
sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg
4.3
sudo mkdir -p /etc/apt/keyrings
curl -sLS https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor |
sudo tee /etc/apt/keyrings/microsoft.gpg > /dev/null
sudo chmod go+r /etc/apt/keyrings/microsoft.gpg
4.4
AZ_DIST=$(lsb_release -cs)
echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $AZ_DIST main" |
sudo tee /etc/apt/sources.list.d/azure-cli.list
4.5
sudo apt-get update
sudo apt-get install azure-cli
5 — Agora iremos instalar o OpenTofu:
snap install opentofu
6 -Execute o OpenTofu:
tofu init
tofu validate
tofu workspace select -or-create production
tofu plan --var-file=variables.tfvars
tofu apply --varofile=variables.tfvars
Bibliografia:
https://medium.com/@zoiwrites/terraform-is-dead-long-live-opentofu-bf4c73364050
https://medium.com/@bisinet/from-terraform-to-opentofu-ebb23863b6a7
https://opentofu.org/
#mvp #mvpbr #mvpbuzz