Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carolinasfreitas/projeto-final-pb
Repositório para o Projeto Final do Programa de Bolsas da Compass UOL | AWS e DevSecOps
https://github.com/carolinasfreitas/projeto-final-pb
aws cloud-computing devops
Last synced: about 15 hours ago
JSON representation
Repositório para o Projeto Final do Programa de Bolsas da Compass UOL | AWS e DevSecOps
- Host: GitHub
- URL: https://github.com/carolinasfreitas/projeto-final-pb
- Owner: CarolinaSFreitas
- Created: 2023-07-31T23:23:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-09T23:03:32.000Z (over 1 year ago)
- Last Synced: 2024-01-26T10:05:26.119Z (10 months ago)
- Topics: aws, cloud-computing, devops
- Homepage:
- Size: 659 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ☁️ Projeto Final do Programa de Bolsas da Compass UOL | AWS e DevSecOps
### 👥 Integrantes do Grupo:
- Carolina Freitas
- Gabriel Torino
- Kéren Olmedo## 🔎 CASE:
"Nós somos da empresa "Fast Engineering S/A" e gostaríamos de uma solução dos senhores(as), que fazem parte da empresa terceira "TI SOLUÇÕES INCRÍVEIS". Nosso eCommerce está crescendo e a solução atual não está atendendo mais a alta demanda de acessos e compras que estamos tendo. Desde o início do ano os acessos e compras estão crescendo 20% a cada mês.
Atualmente usamos:
* 01 servidor para Banco de Dados Mysql;
* 01 servidor para a aplicação utilizando REACT;
* 01 servidor de web Server e que armazena estáticos como fotos e links.Nosso pedido é um ORÇAMENTO com:
- ESCOPO;
- ARQUITETURA DA NOVA SOLUÇÃO;
- VALORES;
- PRAZO DE ENTREGA;
- CRONOGRAMA MACRO DE ENTREGAS.Sobre a construção da arquitetura para o futuro website da nossa empresa, precisamos seguir as melhores práticas DevOps."
O que é requerido na atividade:
+ Ambiente Kubernetes;
+ Banco de dados PaaS;
+ MultiAZ;
+ Segurança de backup de dados;
+ Persistência dos dados;
+ Balanceamento de carga com healthcheck;
+ Segurança (liberar somente o necessário/mínimo acesso possível)._Objetivo: Monte a proposta e a arquitetura do que o grupo propõe entregar._
##
A arquitetura atual da Fast Engineering não está acompanhando o aumento de acessos e compras no eCommerce devido a um crescimento mensal de 20%.
Arquitetura atual da Fast Engineering
A arquitetura da nova solução busca resolver os desafios atuais da Fast Engineering, oferecendo alta disponibilidade e escalabilidade através de serviços AWS.
Essa solução garantirá o acompanhamento de crescimento contínuo do eCommerce, seguindo as melhores práticas DevOps.
Arquitetura nova
A nova solução de arquitetura também possui alinhamento com os pilares da AWS Well-Architected Framework:
+ Excelência Operacional
+ Segurança
+ Confiabilidade
+ Eficiência de Performance
+ Otimização de Custos
+ Sustentabilidade
Pilares da AWS Well-Architected Framework
# 🧰 Serviços e Recursos Usados na Arquitetura
* **Amazon CloudFront**:
É um serviço de entrega de conteúdo usado para distribuir conteúdo estático, como imagens e arquivos, de forma eficiente e rápida.
*Desafio*: Alto crescimento de acessos e compras.
*Solução*: Distribuição global, eficiente e veloz de conteúdo estático* **AWS WAF**:
O AWS Web Application Firewall é um serviço de firewall que ajuda a proteger aplicações web contra ataques comuns.
*Desafio*: Proteger o eCommerce.
*Solução*: Proteção avançada contra ameaças, garantindo a segurança da aplicação web.* **Amazon Route 53**:
Serviço DNS para registro e gerenciamento de domínios, com roteamento de tráfego para recursos AWS (ELB, CloudFront).
*Desafio*: Disponibilidade e resiliência insuficientes.
*Solução*: Roteamento de tráfego eficiente e alta disponibilidade, direcionando acessos para instâncias e serviços AWS.* **Amazon S3**:
Uso de Buckets do S3 para armazenar e distribuir conteúdo estático, como imagens, vídeos e arquivos. Integrado ao CloudFront faz uma entrega muito eficiente de conteúdo.
*Desafio*: Armazenamento escalável para conteúdo estático.
*Solução*: Armazenamento seguro e escalável de imagens, vídeos e arquivos.* **AWS IAM**:
O AWS Identity and Access Management é fundamental para garantir a segurança e o controle de acesso aos recursos da AWS.
*Desafio*: Controle de acesso a recursos da AWS.
*Solução*: Gerenciamento granular de permissões, garantindo apenas acesso autorizado a recursos críticos.* **Amazon EKS**:
O Elastic Kubernetes Service será a base da arquitetura, fornecendo a orquestração de contêineres usando Kubernetes.
*Desafio*: Infraestrutura limitada para suportar crescimento.
*Solução*: Orquestração de contêineres escalável, permitindo expansão dinâmica e alta disponibilidade da aplicação.* **VPC**:
A Virtual Private Cloud isolará a infraestrutura na nuvem e fornecerá controle granular sobre a rede, com a criação de uma rede privada virtual, melhorará a segurança e o isolamento.
*Desafio*: Isolamento e segurança de rede.
*Solução*: Criação de uma rede VPC, trazendo controle de tráfego e segurança aprimorados.* **NACL**:
A Network Access Control List é uma lista com camadas adicionais de segurança que controlam o tráfego de entrada e saída de sub-redes em sua VPC.
*Desafio*: Isolamento e segurança de rede.
*Solução*: Uso das NACLs para definir regras de tráfego, reforçando a segurança e o controle da comunicação entre componentes da aplicação.* **Amazon RDS**:
O Relational Database Service será usado para hospedar o banco de dados MySQL, garantindo alta disponibilidade, escalabilidade e backup automático dos dados.
*Desafio*: Desempenho e escalabilidade insuficientes do banco de dados.
*Solução*: BD gerenciado com alta disponibilidade, escalabilidade e backup automático.* **Elastic Load Balancing**:
O ELB distribui o tráfego entre instâncias do EKS, garantindo um balanceamento de carga eficiente e uma alta disponibilidade da aplicação.
*Desafio*: Distribuição desigual de tráfego e baixa disponibilidade.
*Solução*: Balanceamento de carga entre instâncias, melhorando a disponibilidade e eficiência do eCommerce.* **Amazon CloudWatch**:
O CloudWatch traz monitoramento e observabilidade para recursos da aplicação. Usa métricas e alarmes para monitorar o desempenho dos componentes.
*Desafio*: Falta de visibilidade e monitoramento dos componentes.
*Solução*: Monitoramento detalhado e alertas em tempo real para identificar e resolver problemas rapidamente.* **AWS DMS**:
O AWS Database Migration Service será usado para migrar dados do banco de dados MySQL existente para o RDS.
*Desafio*: Necessidade de migrar dados do banco de dados existente.
*Solução*: Migração suave e consistente dos dados para o RDS, minimizando o tempo de inatividade.* **AWS CloudFormation**:
O Amazon CloudFormation permite criar e gerenciar sua infraestrutura como código. Use-o para definir e provisionar recursos de maneira automatizada e rastreável.
*Desafio*: Gerenciamento manual e complexo da infraestrutura.
*Solução*: Automação e rastreabilidade na criação e atualização de recursos de infraestrutura.
Arquitetura nova
# 🔧 Implementação
#### Integração Contínua e Implantação Contínua (CI/CD)Na fase de implementação da arquitetura na AWS, utilizaremos uma abordagem de Integração Contínua e Implantação Contínua (CI/CD) para otimizar o desenvolvimento e a entrega.
Isso é essencial para a adoção das práticas DevOps, que visam a colaboração e a automação entre equipes de desenvolvimento e operações.
Nessa abordagem, integramos os seguintes serviços da AWS, que desempenham papéis fundamentais em automatizar o ciclo de vida de desenvolvimento, construção e implantação de aplicações:
+ AWS CodeCommit
+ AWS CodeBuild
+ AWS CodeDeploy
+ AWS CodePipeline**AWS CodeCommit**: É um serviço de hospedagem de repositórios de controle de versão privados. Ele fornece um ambiente seguro e escalável para armazenar e gerenciar código-fonte. Com recursos de controle de acesso baseados em IAM, permite colaborações de maneira eficiente, controle de versões e rastreio de alterações ao longo do tempo.
**AWS CodeBuild**: É um serviço de compilação gerenciada que automatiza a construção, teste e geração de artefatos de código-fonte. Ele oferece ambientes de compilação sob demanda e escaláveis, permitindo criação e testes do código em paralelo. Tem suporte a vários ambientes de execução, podendo criar e empacotar aplicações para várias plataformas e arquiteturas.
**AWS CodeDeploy**: Serviço que automatiza a implantação de aplicativos em ambientes de teste e produção de forma consistente e controlada. Ele suporta implantações em instâncias EC2, serviços ECS e até mesmo ambientes on-premises. Com a automação de implantação, permite reduzir erros manuais e garante uma implantação uniforme em ambientes diferentes.
**AWS CodePipeline**: É um serviço de automação de CI/CD que cria fluxos automatizados para desenvolver, testar, implantar e entregar aplicações. Ele reage automaticamente a mudanças de código no repositório CodeCommit, permitindo entregas frequentes e confiáveis. Isso otimiza o processo de desenvolvimento e implantação.
#### Migração do Banco de Dados
Para fazer uma boa migração do banco de dados MySQL para o AWS RDS, usaremos o AWS Database Migration Service (DMS) para garantir uma transição suave e eficiente.
O DMS nos permite replicar os dados para a AWS de maneira contínua, garantindo a integridade e a consistência dos dados.
Com essa abordagem, podemos realizar a migração com o mínimo de impacto para as operações e, ao mesmo tempo, colher os benefícios da escalabilidade, confiabilidade e segurança que a nuvem AWS oferece.
Processo do AWS DMS
# 💰 Valores
## Estimativa de custo da nova arquitetura
**Link da Calculadora AWS: https://calculator.aws/#/estimate?id=e0dfe38d345269ef43277b221e7e8a3da861f288**
* Custo mensal:
**1.854,84 USD*** Custo total de 12 meses:
**22.258,08 USD**
Estimativa de custo da nova arquitetura
# 📬 Entregas
### Prazo de Entrega
+ Implementação da arquitetura: **20 dias úteis**.
• Equipe de 3 pessoas:
- Trabalhando 8 horas por dia
- Ao longo de 20 dias úteis
- Total de 480 horas para a entrega### Cronograma Macro de Entregas
Cronograma Macro de Entregas
## 🔗 Links úteis:
- Cronograma macro de entregas: https://abre.ai/cronograma-macro
- Diagrama da nova Arquitetura: https://abre.ai/nova-arquitetura## 📑 Referências:
- https://aws.amazon.com/pt/dms/
- https://aws.amazon.com/pt/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc&wa-guidance-whitepapers.sort-by=item.additionalFields.sortDate&wa-guidance-whitepapers.sort-order=desc
- https://docs.aws.amazon.com/pt_br/s3/index.html?nc2=h_ql_doc_s3
- https://docs.aws.amazon.com/pt_br/waf/index.html
- https://aws.amazon.com/pt/eks/
##