Repositório base: GitHub Cubos DevOps - Desafio Tecnico
Crie um ambiente seguro utilizando infraestrutura como código onde existam redes internas apenas acessíveis por certas aplicações e redes externas para contato com o usuário. Esse ambiente deve ser replicável e subir corretamente através de comandos de inicialização expostos no README criado por você, todas as dependências para sua execução também devem ser explicitadas, os usuários terão acesso a uma página HTML que se conectará a um backend, este que por sua vez deverá ter acesso a um banco de dados.
Windows e Linux
Caso não esteja instado, confira os links extras.
- Clone o projeto do GitHub ou baixe o repositório;
- Navegue até o diretório raiz do projeto;
- Execute os comandos para inicializar o ambiente com o Terraform:
terraform init
terraform plan # opcional, porém recomendado para verificar o plano antes de aplicar
terraform apply # digite 'yes' se estiver tudo corretoObs.: O terraform init só é necessário na primeira vez.
- (Opcional) Verifique se os containers foram iniciados corretamente:
docker ps - Acesse a página do frontend: http://localhost:8080/
Antes de executar o terraform apply, você pode customizar as configurações do seu ambiente. Para isso, edite o arquivo terraform.tfvars na raiz do projeto:
db_user = "seu_usuario"
db_password = "sua_senha"
db_name = "seu_banco"
backend_port = 3000- Prometheus: http://localhost:9090
- Grafana: http://localhost:3001
- Login:
admin - Senha:
admin - O dashboard deve ser criado manualmente (links na seção de referências).
- Login:
Caso deseje interromper a aplicação por completo, utilize: terraform destroy
- Enter a value:
yes
- Erro ao aplicar o Terraform: Verifique se você tem as permissões corretas para acessar o Docker e criar recursos.
- Containers não iniciam: Verifique os logs dos containers com o comando
docker logs <nome_do_container>para identificar erros. - Aplicação não acessível: Verifique se os containers estão rodando na rede correta e se as portas estão expostas corretamente.
Windows
Para o Windows, pode ser que haja algum erro. Algumas dicas para solucionar problemas:
- Verificar a instalação do Docker e Terraform;
- Verificar as variáveis de ambiente;
- Verificar se o Docker Desktop está rodando.
.
├── backend
│ ├── Dockerfile
│ ├── index.js
│ └── package.json
├── frontend
│ ├── Dockerfile
│ ├── default.conf
│ └── index.html
├── prometheus
│ └── prometheus.yml
├── sql
│ └── script.sql
├── main.tf
├── terraform.tfvars
├── variables.tf
├── docker-compose.yml # modelo não usado diretamente
└── README.mdObs.: O docker-compose.yml não foi utilizado diretamente para subir a aplicação, mas serviu de modelo e pode ser usado como alternativa, alterando os parâmetros configurados.
- Pipeline de CI/CD para deploy automatizado
- Dashboards prontos no Grafana para monitoramento
- Uso de .env no lugar de terraform.tfvars para variáveis sensíveis
- Terraform Registry - Docker Provider
- PostgreSQL no DockerHub
- Dockerfile
- Prometheus
- Grafana
- Dashboards Grafana
- NGNIX Prometheus Exporter
Links Extras