Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adenilson365/projeto-final-compassuol
Repositório do projeto final do programa de bolsas da CompassUOL
https://github.com/adenilson365/projeto-final-compassuol
Last synced: about 1 month ago
JSON representation
Repositório do projeto final do programa de bolsas da CompassUOL
- Host: GitHub
- URL: https://github.com/adenilson365/projeto-final-compassuol
- Owner: Adenilson365
- Created: 2024-06-16T20:04:59.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-16T20:06:46.000Z (7 months ago)
- Last Synced: 2024-06-16T21:23:58.981Z (7 months ago)
- Size: 329 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Projeto Final Programa de Estágios DevSecOps - CompassUOL
Equipe:
[![Adenilson konzelmann](https://img.shields.io/badge/Adenilson%20Konzelmann-gray?style=flat-square&logo=github&logoColor=white&logoWidth=20&link=https://github.com/Adenilson365)](https://github.com/Adenilson365)
[![Gustavo Pedoni](https://img.shields.io/badge/Gustavo%20Pedoni-gray?style=flat-square&logo=github&logoColor=white&logoWidth=20&link=https://github.com/Gustavopedoni1)](https://github.com/Gustavopedoni1)### Objetivos
- Desenvolver a arquitetura para um eCommerce usando as melhores práticas de Devops
- Ambiente Kubernetes
- Banco de dados PaaS MySQL
- Balanceamento de carga
- Segurança### Diagrama técnico - Infraestrutura AWS
![Diagrama Tecnico Ambiente AWS](./assets/diagrama_arquitetura.png)
### Diagrama da Migração do Banco de Dados On-Premisse para AWS RDS
![Diagrama da Migração do Banco de Dados](./assets/migracao_bd.png)## Recursos usados no projeto:
### Pipeline CI/CD
-
AWS CodePipeline
Para gerenciar a pipeline de deploy
-AWS CodeCommit
Como repositório e versionamento de código, nessa arquitetura é onde recebemos o entregável da equipe dev
-AWS CodeBuild
Para Converter o código em imagem docker, e depois realizar o deploy no cluster EKS via kubectl
-AWS ECR
Como registry privado para as imagens Docker.### Migração do Banco de Dados On-Premisse para AWS RDS
-
VPN Connection
Prover segurança na conexão MySQL local para o AWS DMS
-DMS
Serviço de migração de banco de dados da AWS, para replicar em tempo real o MySQL On-Premisse para RDS MySQL na nuvem AWS, objetivando menor janela de manutenção.
-AWS RDS MySQL
Serviço de banco de dados SQL na nuvem AWS, usamos como multi-az para failover (Quando um banco cai outro assume em segundos).
- Após migração completa a applicação para a responder na nuvem AWS### Arquitetura da Aplicação
> Optamos por um cluster de EKS em multi-az, com subnets totalmente privadas, dessa forma provendo alta disponíbilidade e segurança a aplicação. A aplicação recebe tráfego a partir de um load balancer de camada 7 aberto para internet, os servidores são gerenciados usando kubernetes, acessam internet via NAT gateway.
-
Route 53
Hospeda nossas zonas de DNS
-Cloudfront
Fornece CDN ( Cache de borda para acelerar a entrega de conteúdo ao usuário da aplicação)
-AWS S3
Para armazenar os estáticos da aplicação
-Load Balancer de aplicação
Para fazer o balanceamento de carga e verificar a integridade dos servidores
-WAF - Web Application Firewall
Firewall de aplicação para proteger o Load Balancer de ataques, como SQL injection, DDoS entre outros...
-ACM
Para fornecer certificado SSL, provendo conexão segura do usuário para a aplicação.
- NAT Gateway Para permitir que os servidores saiam para a internet mas não sejam accessíveis da internet
-EC2
Servidores Linux
-Auto Scaling
Para fornecer elasticidade a infraestrutura, permitindo que ela se adapte rápidamente a demanda da aplicação, adicionando ou removendo servidores conforme demanda, Escalabilidade Horizontal.
-EKS
Serviço de Kubernetes gerenciado da AWS, fornecendo node Master totalmente gerenciado.
-EFS
Sistema de NFS para fornecer persistência de volume para nossos pods de kubernetes.### Serviços de Segurança e gestão
-
IAM
Configurar e gerenciar regras de acesso para o Ambiente AWS, tanto de Usuários quanto de um recurso para o outro.
-CloudWatch
Fornecer observabilidade do cluster, e também do ambiente AWS e seus recursos, coletando logs, métricas e gerando alertas em cima dessas métricas.
-SNS
Serviço de notificação, a partir dos alertas do cloudwatch envia notificação para o responsável. Pode trabalhar junto com o cloudwatch e com cost Explorer
-AWS Config
Permite acompanhar as alterações realizadas nos recursos aws, permitindo controles de conformidade e rastreabilidade
-Secrets Manager
Responsável por gerenciar as credenciais do RDS, permitindo rotacionar essas credencias conforme configuração, e não sendo necessário codificar na aplicação.
-Cost Explorer
Usado para acompanhar o financeiro da infra AWS, permitindo acompanhar e otimizar a arquitetura sob a ótica de custos.> Além disso foi proposto um plano de suporte visando acompanhar a aplicação e ajustar seus recursos de acordo com o crescimento de demanda da aplicação e análise do seu comportamento, visando propor estratégias de otimização de custos e infra, seguindo o well-architected framework