Skip to content
This repository was archived by the owner on Dec 22, 2025. It is now read-only.

mateus-gsilva/Projeto_Devops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto Pipeline CI/CD

Este projeto foi desenvolvido como parte de um desafio em um processo seletivo e consiste na construção de uma pipeline do zero.

Começando

Certifique-se de ter as seguintes ferramentas configuradas em seu ambiente:

  • AWS CLI.
  • Terraform.
  • Docker (para validação inicial).
  • Projeto configurado no CircleCI associado ao repositório do GitHub.

Variáveis de Ambiente - CircleCI

Configure as seguintes variáveis de ambiente no CircleCI:

  1. AWS_ACCOUNT_ID = ID da conta.
  2. AWS_ECR_REGISTRY_ID = ID do registro ECR.
  3. AWS_REGION = Região padrão (use as mesmas definidas em terraform/variables.tf).
  4. AWS_ACCESS_KEY_ID = Chave de acesso para a AWS.
  5. AWS_SECRET_ACCESS_KEY = Chave secreta para a AWS.
  6. MY_APP_PREFIX = Prefixo a ser utilizado em seu projeto.

Tecnologias Utilizadas

  • Terraform para Infraestrutura como Código.
  • CircleCI para Pipeline CI/CD.
  • ECS/Fargate como gerenciador de containers.
  • ECR como repositório de código.
  • Cloudwatch para monitoramento (em andamento).
  • AWS como provedor de nuvem.
  • GitHub como repositório.

Deploy

  1. Configure as variáveis de ambiente no CircleCI conforme mencionado anteriormente.
  2. Execute a estrutura em Terraform.
  3. O CircleCI automaticamente efetuará o deploy do código em ECS.
  4. Acesse a aplicação pelo DNS do LoadBalancer.

Toda alteração na aplicação será automaticamente refletida na estrutura AWS.

Estrutura Terraform/AWS

VPC, Subnets e Security Groups

A estrutura Terraform consiste em uma VPC com 3 subnets em 3 AZs diferentes e Security Groups para o ALB (que esta em frente de toda a estrutura) e para o cluster ECS.

ECS Cluster

O ECS Cluster possui um serviço que efetua o deploy de 3 tasks, com rollout em caso de atualização. Uma task definition será utilizada para gerenciar o container e aplicara as revisões.

CloudWatch

Utilizamos as métricas do cluster ECS para monitoramento.

CircleCI

Toda alteração do código da aplicação é identificada automaticamente e buildada, testada e feito o deploy pelo CircleCI.

Job 1 - Test

Job Test

É feito o checkout e executado o npm test.

Job 2 - Build and Push Image

Job Build and Push Image

A imagem é buildada e feito o deploy para o repositório no ECR.

Job 3 - Update Service Update

Job Update Service Update

É atualizado o serviço e cadastrada uma nova task definition.

Job 4 - Update ECR URI

Job Update ECR URI

A imagem é atualizada com a nova URI e associada ao container da task definition.

Monitoramento

O dashboard irá monitorar o cluster ECS e seus componentes.

Cloudwatch Dashboard

Como Acessar

Utilize o DNS do load balancer, disponível no output do Terraform ou no console.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors