✅ O que é Terraform ?
Terraform é uma ferramenta para construir, alterar e criar versões de infraestrutura com segurança e eficiência através de código.
✅ Princiapais Características ?
-
Infraestutura como código ( IaC );
- Open source e declarativo
- Permite versionamento ( evolução da infraestrutura e automação )
- Idempotente
- Sintaxe high-level e reusável
- Paridade de ambiente
-
Plano de execução;
- Segurança e previsibilidade
- Separação de planejamento e aplicação
-
Híbrido;
- Agnóstico
- Permite deployar para múltiplos provedores simultaneamente
✅ Casos de uso;
- Crair ou provisionar uma nova infraestrutura;
- Gerencia a infraestrutura existente;
- Replicar a infraestrutura.
✅ Como o Terraform funciona ?
-
Core do Terraform usa duas fontes de entrada;
- Seus arquivos de configuração (seu estado desejado);
- O estado atual, que é gerenciado pelo Terraform.
-
Providers: Os provedores expõem recursos, o que possibilita a criação de infraestrutura em todas essas plataformas;
- IaaS: AWS, GCP, OCI, VMWARE, Azure
- PaaS: Kubernetes, Heroku, Digital Ocean
- SaaS: New Relic, Datadog
✅ Terraform Vs. Outros Softwares
Terraform é uma ferramenta de alto nível de orquestração de infraestrutura.
-
Ansible, Puppet, Chef e outro ferramentas de gerenciamento de configuração;
- Não é a intenção gerenciar configuração;
- Provedores podem usar essas ferramentas.
-
CloudFormation e outras ferramentas IaC;
- Dá suporte para apenas apenas um vendor específico.
✅ Computação em Nuvem
-
SAAS
- Aplicação
-
FAAS
- Função
-
PAAS
- Executáveis e Containers
-
CAAS
- Ferramentas de Gestão
-
IAAS
- Servidores, Storage, Rede
✅ Tradicional
- Co-Location
- DataCenter
Gerenciamento do ciclo de vida dos recursos da AWS, incluindo EC2, Lambda, EKS, ECS, VPC, S3, RDS, DynamoDB e muito mais. Esse provedor é mantido internamente pela equipe do HashiCorp AWS Provider.
Gerenciamento do ciclo de vida dos recursos do GCP, incluindo Compute Engine, Cloud Storage, Cloud SDK, Cloud SQL, GKE, BigQuery, Cloud Functions e muito mais. Este provedor é mantido de forma colaborativa pela equipe do Google Terraform no Google e pela equipe do Terraform na HashiCorp.
Gerenciamento do ciclo de vida do Microsoft Azure usando as APIs do Azure Resource Manager. mantido pela equipe do Azure na Microsoft e pela equipe do Terraform na HashiCorp.
Gerenciamento de todos os recursos do Kubernetes, incluindo implantações, serviços, recursos personalizados (CRs e CRDs), políticas, cotas e muito mais.
Interaja com os diversos recursos suportados pelo Oracle Cloud Infrastructure por meio das APIs do provedor OCI.
➡️ Links: