Executando verificação de segurança...
5

PITCH: Layerform — Ambientes de desenvolvimento open-source usando Terraform

Oi TabNews!

Somos Lucas e Lucas (sim Lucas²), os autores do Layerform e viemos explicar como funciona o projeto e pedir pra você deixar sua ⭐ lá no GitHub :)

O Layerform é uma ferramenta de código aberto para configurar ambientes de desenvolvimento usando arquivos Terraform. Permitimos que cada engenheiro crie seu próprio ambiente de "staging" e reutilize partes da infraestrutura.

Sempre que o dev executa o comando "layerform spawn", usamos arquivos Terraform para criar seu próprio ambiente de "staging", que se parece exatamente com produção.

Muitas equipes possuem apenas um (ou muito poucos) ambientes de "staging", nos quais os desenvolvedores têm que esperar na fila para usar. Isso é especialmente problemático quando um sistema é grande, pois os engenheiros não podem executá-lo em suas máquinas e não conseguem testar facilmente suas alterações em um ambiente semelhante à produção.

Muitas vezes, eles acabam com um canal confuso no Slack no qual os engenheiros esperam sua vez de usar o ambiente de "staging". Às vezes, nem mesmo possuem esse canal desajeitado e acabam mesclando código com defeito ou enviando bugs para a produção. Lucas e eu decidimos resolver isso porque já sofremos com ambientes de "staging" compartilhados.

O Layerform oferece a cada desenvolvedor seu próprio ambiente semelhante à produção. Isso elimina o gargalo, aumentando o seu número de deployments. Além disso, reduz a quantidade de bugs e retrabalho, porque os desenvolvedores têm um ambiente semelhante à produção para desenvolver e testar. Eles só precisam executar layerform spawn pra criar seu próprio ambiente de "staging".

Nós wrappamos o Terraform licenciado sob a MPL e permitimos que os engenheiros encapsulem cada parte de sua infraestrutura em camadas. Eles podem então criar várias instâncias de uma camada específica para criar um ambiente de desenvolvimento.

A vantagem de usar camadas em vez de módulos brutos do Terraform é que elas são muito mais fáceis de escrever e reutilizar, o que significa que vários ambientes de desenvolvimento podem ser executados na mesma infraestrutura, tornando mais barato que cada dev tenha seu próprio staging.

Os ambientes do Layerform são rápidos e econômicos de serem iniciados, porque compartilham partes principais da infraestrutura. Além disso, o Layerform pode taggear automaticamente os componentes em cada camada, facilitando para as equipes de FinOps gerenciar custos e realizar cobranças.

Por exemplo: com o Layerform, múltiplos deves podem ter ambientes de staging em cima de um mesmo cluster Kubernetes compartilhado e uma instância Kafka. Dessa forma, os ambientes de desenvolvimento são mais rápidos de serem iniciados e mais baratos de serem mantidos. Cada camada rodando também recebe uma tag, o que significa que as equipes de FinOps sabem quanto custam os ambientes de cada equipe.

Pra ser transparente: a maneira como pretendemos ganhar dinheiro é fornecendo um serviço gerenciado com recursos de governança, gerenciamento e controle de custos, incluindo o desligamento automático de ambientes em caso de inatividade ou após o horário comercial. O próprio CLI do Layerform permanecerá gratuito e aberto (GPL).

Você pode baixar o CLI do Layerform agora mesmo e usá-lo gratuitamente. Atualmente, todos os estados, permissões e definições de camadas permanecem em sua nuvem, sob seu controle.

Após toda a questão da mudança de licença do Terraform, acho que também vale a pena mencionar que estaremos construindo em cima do fork da comunidade e consideraremos adicionar suporte ao Pulumi também.

Adoraríamos receber seu feedback sobre nossa solução para eliminar o "gargalo de staging". O que você acha?

PS: Não esquece de deixar sua ⭐ no Layerform!

Carregando publicação patrocinada...
1

Muito bacana! Dei Star lá no GitHub! A proposta do projeto é bem interessante, apesar de eu não ter muita noção sobre. Tbm vi que vcs usam golang, estou querendo muito aprender essa linguagem e criar alguns projetos com ela.

1

Valeu Nathan! Logo menos vamos adicionar algumas issues no projeto com Good First Issue, que vão ser relativamente fáceis de contribuir.

Fica de olho lá que talvez você ache algo interessante pra contribuir e aprender!

Abraço e obrigado pelo comentário :)

1
1

já tinha deixado ⭐️ no ergomake e agorei lancei nesse, brabo demais!
se puderem trazer mais posts sobre a receita gerada, problemas enfrentados e outros assuntos mais "backstage" seria muito massa