Início topics O que é o Terraform? O que é Terraform?
Explore a solução Terraform da IBM Inscreva-se para receber atualizações sobre a nuvem
Ilustração com colagem de pictogramas de monitor de computador, servidor, nuvens, pontos
O que é Terraform?

O Terraform, uma ferramenta de código aberto de "infraestrutura como código" criada pela HashiCorp, permite que os programadores criem, alterem e versionem a infraestrutura com segurança e eficiência.

O Terraform é uma ferramenta de codificação declarativa que permite que os desenvolvedores usem uma linguagem de configuração de alto nível chamada HashiCorp Configuration Language (HCL) para descrever a nuvem de "estado final" desejado ou nenhuma infraestrutura local para executar uma aplicação. Em seguida, gera um plano para alcançar esse estado final e o executa para prover a infraestrutura.

O Terraform utiliza uma sintaxe simples, provisiona infraestrutura em vários serviços em nuvem e data centers locais e reprovisiona a infraestrutura de forma segura e eficiente em resposta a mudanças na configuração. Por isso, atualmente, é uma das ferramentas de automação de infraestrutura mais populares disponíveis. Se a sua organização pretende implementar uma nuvem híbrida ou um ambiente multinuvem, vocês provavelmente vão querer conhecer o Terraform.

Alcance flexibilidade no local de trabalho com DaaS

Saiba como o desktop como serviço (DaaS) permite as empresas atingirem o mesmo nível de performance e segurança ao implementar aplicações no local.

Conteúdo relacionado

Registre-se para receber o guia sobre modernização de aplicativos

Por que usar a infraestrutura como código (IaC)?

Para entender melhor as vantagens do Terraform, é importante entender primeiro os benefícios da infraestrutura como código (IaC). A IaC permite que os desenvolvedores codifiquem a infraestrutura para tornar o provisionamento automatizado, mais rápido e repetível. É um componente essencial das práticas ágeis e DevOps, como controle de versão, integração contínua e implementação contínua.

A infraestrutura como código ajuda a:

  • Aumente a velocidade: a automação é mais rápida do que navegar manualmente em uma interface quando é necessário implementar ou conectar recursos.

  • Melhorar a confiabilidade: se sua infraestrutura for grande, fica mais fácil configurar incorretamente um recurso ou prover serviços na ordem errada. Com a IaC, os recursos são sempre providos e configurados exatamente como declarados.

  • Evite desvios de configuração: o desvio de configuração ocorre quando a configuração que proveu o ambiente não corresponde mais ao ambiente real. (Consulte "infraestrutura imutável")

  • Permita experimentação, testes e otimização: como a infraestrutura como código facilita e agiliza mais a provisão de novas infraestruturas, você pode fazer e testar alterações experimentais sem investir tanto tempo e recursos. Se gostar dos resultados, você pode expandir rapidamente a nova infraestrutura para produção.
Por que usar o Terraform?

Veja alguns dos principais motivos que fazem os desenvolvedores escolherem o Terraform em vez de outras ferramentas de infraestrutura como código:

  • Código aberto: o Terraform conta com a contribuição de grandes comunidades de colaboradores que criam plug-ins para a plataforma. Independentemente do provedor de nuvem utilizado, é fácil encontrar plug-ins, extensões e suporte profissional. Isso também significa que o Terraform evolui rapidamente, com a inclusão sistemática de novos benefícios e melhorias.

  • Independente de plataforma: isso significa que você pode usá-lo com qualquer provedor de serviços de nuvem. A maior parte das outras ferramentas de IaC é projetada para funcionar com um único provedor de nuvem.

  • Infraestrutura imutável: a maioria das ferramentas de infraestrutura como código cria uma infraestrutura mutável, ou seja, a infraestrutura pode mudar para acomodar alterações, como um upgrade de middleware ou um novo servidor de armazenamento. O perigo de uma infraestrutura mutável é o desvio de configuração. Isso significa que, conforme as alterações se acumulam, a provisão real de diferentes servidores ou outros elementos de infraestrutura "se desvia" da configuração original, dificultando a identificação e a correção de bugs ou problemas de desempenho. O Terraform provê uma infraestrutura imutável, o que significa que, com cada alteração no ambiente, a configuração atual é substituída por uma nova que responde pela alteração, e a infraestrutura é reprovisionada. E melhor ainda: se necessário, as configurações anteriores podem ser mantidas como versões para habilitar as reversões.
Módulos do Terraform

Os módulos do Terraform são configurações pequenas e reutilizáveis do Terraform para vários recursos de infraestrutura que são usados em conjunto. Esse módulos são úteis porque permitem que recursos complexos sejam automatizados com estruturas reutilizáveis e configuráveis. A escrita de um arquivo do Terraform, mesmo que seja bem simples, resulta em um módulo. Um módulo pode solicitar outros módulos (chamados de módulos secundários), o que pode tornar a montagem da configuração mais rápida e concisa. Os módulos também podem ser solicitados várias vezes, seja na mesma configuração ou em configurações separadas.

Provedores do Terraform

Os provedores do Terraform são plug-ins que implementam tipos de recursos. Eles contêm todo o código necessário para autenticação e conexão a um serviço, normalmente de um provedor de nuvem pública, em nome do usuário. É possível encontrar provedores para as plataformas de nuvem e serviços que você usa, adicioná-los à sua configuração e depois usar os recursos deles para prover a infraestrutura. Os provedores estão disponíveis para quase todos os principais provedores de nuvem, ofertas de SaaS e mais, desenvolvidos e/ou respaldados pela comunidade do Terraform ou organizações individuais. Consulte a documentação do Terraform (link fora de ibm.com) para ver uma lista detalhada.

Terraform vs. Kubernetes

Às vezes, existe uma confusão sobre Terraform e Kubernetes e o que eles fazem. A verdade é que eles não são concorrentes e funcionam em conjunto de forma eficaz.

O Kubernetes é um sistema de orquestração de contêineres de código aberto. Ele permite aos desenvolvedores agendar implementações em nós em um cluster de computação e gerenciar ativamente cargas de trabalho conteinerizadas, para garantir que seu estado corresponda às intenções dos usuários.

O Terraform é uma ferramenta de infraestrutura como código com um alcance mais amplo, que permite aos desenvolvedores automatizar uma infraestrutura completa que abrange várias nuvens públicas e privadas.

O Terraform pode automatizar e gerenciar os recursos de nível de infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) ou mesmo software como serviço (SaaS) e desenvolver todos esses recursos em todos esses provedores paralelamente. É possível usar o Terraform para automatizar a provisão do Kubernetes (particularmente clusters do Kubernetes gerenciados) em plataformas de nuvem e automatizar a implementação de aplicações em um cluster.

Terraform vs. Ansible

Tanto o Terraform quanto o Ansible são ferramentas de infraestrutura como código, mas há algumas diferenças significativas entre os dois:

  • Enquanto o Terraform é puramente uma ferramenta declarativa (veja acima), o Ansible combina configuração declarativa e processual. Na configuração processual, você especifica as etapas ou a maneira precisa de como deseja provisionar a infraestrutura para o estado desejado. A configuração processual dá mais trabalho, porém proporciona mais controle.

  • O Terraform é de código aberto; já o Ansible é desenvolvido e vendido pela Red Hat.
Soluções relacionadas
IBM Cloud Schematics

O IBM Cloud Schematics fornece automação ao oferecer modelos declarativos do Terraform para uma infraestrutura de nuvem desejada.

Explore o IBM Cloud Schematics
Recursos O que é infraestrutura como código (IaC)?

A infraestrutura como código (IaC) automatiza a provisão da infraestrutura, permitindo que sua organização desenvolva, implemente e expanda aplicações em nuvem com maior velocidade, menos riscos e custos reduzidos.

O que é o Kubernetes?

O Kubernetes é uma plataforma de orquestração de contêineres de código aberto que automatiza a implantação, o gerenciamento e o dimensionamento de aplicações. Saiba como o Kubernetes permite um desenvolvimento econômico nativo da nuvem.

O que é infraestrutura como serviço (IaaS)?

Uma introdução ao IaaS, seus componentes, vantagens, preços e como ele se relaciona a PaaS, SaaS, BMaaS, contêineres e serverless.

Dê o próximo passo

Você está pronto para DevOps? Para entregar software e serviços na velocidade que o mercado exige, as equipes precisam iterar e experimentar rapidamente, implementar novas versões com frequência e ser orientadas por feedback e dados. As equipes de desenvolvimento em nuvem mais bem-sucedidas adotam a cultura e as práticas modernas de DevOps, incorporam arquiteturas nativas da nuvem e montam cadeias de ferramentas com as melhores da categoria para estimular sua produtividade.

Explore as soluções de DevOps Faça um teste gratuito