Esse projeto esta dividido em duas partes Local e Nuvem e tem como objetivo, criar gatilhos automatizados para instalar uma aplicação simples tanto local em um ambiente de desenvolvimento como na nuvem AWS da maneira mais automatizada possível.
Se não quiser instalar nada sua máquina pode apenas apertar o botão e começar a usar.
- para este teste você precisa apenas de uma conta no dockerhub - https://hub.docker.com
- Para destruir basta apenas fechar a sessão do PWD.
- agent git - https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- Docker - https://docs.docker.com/engine/install/ubuntu/
- Docker-compose - https://docs.docker.com/compose/install/
- Obs: esse projeto foi escrito no SO Linux, mas isso não quer dizer que não possa usar no Microsoft Windows, mas essa parte deixo com vc!
- Baixar os códigos:
$ git clone https://github.com/diogoab/musiclibraypagarme.git
- acesse o diretório onde está a aplicação e os arquivos do docker:
$ cd musiclibrarypagarme/app
- Construir a imagem local:
$ docker build -t jokerdab/musiclibrarypagarme-local -f Dockerfile-Local .
- Instalar as aplicações:
$ docker-compose up -d
- Agora acesse a aplicação através do localhost:5000 e pode começar a testar, uma tela parecida com essa deve aparecer no navegador:
- Para desinstalar basta apenas executar:
$ docker-compose down
Para parte de nuvem pensei em algo bem prático para mostrar alguns recursos do Terraform, Docker e AWS, no entanto precisa de um "preset" para chegar no momento de instalação.
- Terraform - https://www.terraform.io
- AWS cli - https://docs.aws.amazon.com/pt_br/cli/latest/userguide/install-cliv2-linux.html
- Uma Conta na AWS ativa - https://aws.amazon.com
Aqui esta um desenho para ilustrar essa instalação em Nuvem
-
crie um repositório no github para hospedar os códigos do teste.
-
Para este teste e necessario definir os valores de secrets no github para podermos executar actions: https://docs.github.com/pt/actions/security-guides/encrypted-secrets
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION
REPO_NAME
- Configurar acessos programaticos de ACCESS_KEY e SECRET_KEY execute e informe as informações:
$ aws configure
- Obs: a região que usei foi "us-west-2"
- Baixar os códigos:
$ git clone https://github.com/diogoab/musiclibraypagarme.git
- acesse o diretório onde está a aplicação e os arquivos do terraform para o preset do state:
$ cd musiclibrarypagarme/terraform/state
- Inicie o terraform no diretório do state
$ terraform init
- Planeje para verificar o que vai ser criado na AWS com:
$ terraform plan
- Instale o terraform preset:
$ terraform apply
- Agora vamos navegar até a pasta do actions, retorne para a pasta com:
$ cd ../.github/workflows
-
Para criar a infraestrutura na AWS e instalar a aplicação precisamos editar o arquivo build-docker-deploy.yml e remover os comentários com "#" da linhas 83 a 87 e comentar as linhas 89 a 93 com "#" em cada linha.
-
Agora faça o commit do código e push para o repositorio do github para ver a infraestrutura ser criada.
-
Para destruir a infraestrutura na AWS e remover tudo precisamos editar o arquivo build-docker-deploy.yml e remover os comentários com "#" da linhas 83 a 87 e comentar as linhas 89 a 93 com "#" em cada linha.
-
Agora faça o commit do código e push para o repositorio do github para ver a destruição da infraestrutura na AWS.
- Obs: Se por acaso entende que precisa alterar algo na infraestrutura pode alterar no arquivos de variaveis do terraform.
Bom esse este modelo atende para ter minimamente uma automação para implantação na AWS apenas com push no github, recomendo para algo que vá para produção que seja os eventos de Merge entre as branchs com politicas de aceite e code review.

