Terraform + Kops + K8s
Amazon Web Services
Infraestrutura como Código (IaC)
● É o processo de gerenciamento e provisionamento de Data Centers utilizando
programação.
● Isso inclui equipamentos físicos, como servidores bare-metal, além de
máquinas virtuais e recursos de configuração associados.
● Software mais utilizados: terraform , cloudformation(aws), ansible, chef.
● Aws, Azure, DigitalOcean, Openstask, GoogleCloud tem suporte ao IaC.
Stateful x Stateless
● Aplicações Stateless são mais simples de gerenciar.
● Container nasceu para morrer, se precisar de persistência o cenário é mais
complexo (Stateful).
● Tipos de persistência em docker:
○ Persistent state
○ Configuration state
○ Session state
○ Connection state
○ Cluster state
https://robinsystems.com/blog/stateless-vs-stateful-containers-1/
Stateful x Stateless
Stateful x Stateless
Pets x Cattle
https://www.slideshare.net/gmccance/cern-data-centre-evolution
Terraform
https://www.terraform.io/
Terraform
● Software escrito em Go.
● Projeto iniciou em Julho/2014.
● O HashiCorp Terraform permite criar, alterar e melhorar a infraestrutura de
forma segura e previsível.
● É uma ferramenta de código aberto que codifica APIs em arquivos de
configuração declarativos que podem ser compartilhados entre membros da
equipe, tratados como código, editados, revisados e versionados.
Terraform - Pré requisitos
● Realizar o download do binário GO no site
● Acesso a aws com permissões de administração (~/.aws/credentials)
● Bucket S3 na aws para salvar os estados de execução (*.tfstate)
Terraform - Execução
Terraform - Providers
https://www.terraform.io/docs/providers/
Kops - Kubernetes Operations
https://github.com/kubernetes/kops
Kops - Kubernetes Operations
● Software escrito em Go.
● Projeto Open Source com contribuições de +ou- 400 desenvolvedores.
● A maneira mais fácil de instalar e executar um cluster Kubernetes em
produção.
● O kops ajuda você a criar, destruir, atualizar e manter clusters Kubernetes de
alta qualidade em produção a partir da linha de comando.
Kops - Pré requisitos
● Realizar o download do binário GO no site
● Acesso a aws com permissões de administração (~/.aws/credentials)
● Possuir um domínio registrado e configurado no Route53 aws
Kops - Resources Aws
● Vpc (Virtual Private Cloud / Subnets / Routes)
● NAT (NAT Gateway)
● Sg (Security Groups)
● Asg (Auto Scaling Group / Launch Configuration)
● Elb (Elastic Load Balancer)
● Route53 (Domain Name)
● S3 (Cloud Storage)
Kubernetes - K8s
https://kubernetes.io/
Kubernetes - K8s
● O Kubernetes é um sistema de código aberto que automatiza a implantação,
o dimensionamento e o gerenciamento de containers.
● Ele agrupa containers que compõem um aplicativo em unidades lógicas para
fácil gerenciamento e descoberta.
● O Kubernetes tem 15 anos de experiência na execução de containers em
produção no Google, combinado com as melhores ideias e práticas da
comunidade.
● Forte adoção pela comunidade para a orquestração de containers em
produção.
Kubernetes - Arquitetura
Kubernetes - Arquitetura
Kubernetes - Objetos
Kubernetes - Namespaces
Custo k8s Aws
Lab Aws
Demo !!!!
https://github.com/lcarneirofreitas/terraform-kops-k8s-aws
Obrigado ….
Github: https://github.com/lcarneirofreitas
Linkedin: https://www.linkedin.com/in/leandro-freitas-034b3a22
Email: lcarneirofreitas@gmail.com
Leandro Freitas
Sysadmin Linux / Devops

Terraform + Kops + Kubernetes na AWS