Pular para o conteúdo principal
BlogFerramentas para desenvolvedoresQuando considerar Terraform

Quando considerar Terraform

Quando considerar Terraform

Como gerente de engenharia trabalhando com nosso provedorTerraform , tenho muitas perguntas sobre como os desenvolvedores (incluindo nossos próprios clientes) usam Terraform para gerenciar a infraestrutura da nuvem. 

Terraform é a solução ideal para algumas cargas de trabalho, mas para outras, re-desenhar seus fluxos de trabalho para incorporar Terraform pode ser um pouco como tentar reinventar a roda. Como com todas as ferramentas, mesmo que você não precise tomar a decisão agora, você deve conhecer o básico e ficar de olho no desenvolvimento para ver se o Terraform será eventualmente um bom ajuste.

Terraform é uma solução IaC que segue um modelo declarativo; o arquivo de configuração define como você quer que a configuração final seja, em vez de definir os passos necessários para chegar a essa configuração. Veja em nosso blog as diferenças entre as soluções declarativas e imperativas para mais detalhes. Como outras ferramentas declarativas, é melhor usar Terraform quando os sistemas têm alguma uniformidade, embora forneça alguma capacidade para divergir do modelo padrão. 

Animais de estimação vs Gado bovino

Terraform não é ideal para um ambiente onde os servidores são especiais, ou radicalmente diferentes entre si, ou onde os sistemas individuais estão sujeitos a reconfiguração freqüente. Não tem problema com a configuração freqüente, desde que seja a coisa que esteja fazendo a reconfiguração. Um fluxo de trabalho Terraform quer tratar os servidores como gado (não animais de estimação, ou seja, não especiais).

Soluções declarativas também são idempotentes, significando que você obtém o mesmo resultado não importa quantas vezes você entre em um comando. Suponha que uma redistribuição falhe em algum ponto intermediário da configuração. Nesse caso, você pode inserir o mesmo comando novamente em vez de ter que adaptar o comando ou navegar manualmente nos passos finais da configuração. Soluções idempotentes tendem a reduzir a complexidade do processo de solução de problemas e, portanto, permitem que membros menos experientes da equipe operem com mais independência.

Além dos benefícios básicos da abordagem declarativa Terraform tem várias outras vantagens. A linguagem de configuração HashiCorp (HCL) usada com Terraform é mais simples e fácil de aprender do que as línguas usadas com muitas outras ferramentas IaC. Você precisará apenas de alguns comandos para executar um grande número de tarefas administrativas básicas. Terraform é uma ferramenta de código aberto suportada por muitos dos principais provedores de nuvens, portanto, o uso do Terraform ajuda a evitar o travamento do fornecedor. A crescente adoção do Terraform também significa que está se tornando muito mais fácil contratar desenvolvedores com a experiência do Terraform .

Terraform é agnóstica em relação à plataforma e possui uma coleção diversificada de plugins que facilitam o gerenciamento de ambientes multi-nuvem. O registro do módulo Terraform oferece componentes reutilizáveis que podem economizar seu tempo quando você constrói suas próprias configurações.

Linode e Terraform

Investimos muito em Terraform, e as ferramentas personalizadas incorporadas no ambiente Linode simplificam ainda mais a tarefa de implementar Terraform como sua solução IaC. Por exemplo, o provedor Linode Terraform interage diretamente com o Linode API, proporcionando assim uma integração perfeita com outros produtos Linode.

Este rápido resumo dos benefícios leva a algumas idéias práticas sobre quando Terraform pode ser a melhor opção para seu ambiente. Considere Terraform se você tiver as seguintes necessidades:

  • Infra-estrutura reprodutível: A automação opera melhor em um ambiente onde há alguma uniformidade e reprodutibilidade. Se sua rede suporta múltiplos sistemas que são similares na configuração, Terraform é uma excelente escolha. Por outro lado, se seus sistemas forem diferentes, exigirem muita personalização ou precisarem de mudanças frequentes na configuração, provavelmente você não se beneficiará do Terraform.
  • Serviços externos: Se você tem um ambiente que requer integração com ferramentas e serviços externos, Terraform é uma boa escolha por causa de sua extensa coleção de plugins.
  • Multicloud: Se sua organização se espalhar por vários provedores de nuvens, a aceitação universal do Terraform simplificará a integração.
  • Flexibilidade de pessoal de TI: Terraform'a facilidade de uso significa que você não precisa ser um especialista para operar e manter seu ambiente IaC. Considere Terraform se sua organização se beneficiaria de uma equipe de TI que seja flexível e fácil de treinar com o mínimo de intervenção de especialistas de nível avançado.

Também é importante ter em mente que as decisões de hoje construirão a rede na qual você trabalhará amanhã, então pense adiante quando estiver planejando seu ambiente IaC e considerando Terraform. Por exemplo, mesmo que você não esteja operando em um ambiente multicluídohoje, você pode querer preservar a opção futura para economizar dinheiro e maximizar a flexibilidade à medida que sua organização evolui.

Se você ainda não teve a oportunidade de trabalhar com Terraform para seus próprios projetos, vale a pena investir o tempo necessário para se familiarizar com a ferramenta para que você possa dar a si mesmo (e suas cargas de trabalho) uma vantagem competitiva extra. Escolher uma plataforma como Terraform que muitos provedores de nuvens diferentes apóiam maximiza seu poder de adaptação e de futuro de sua infraestrutura de nuvens.


Comentários

Deixe uma resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *