Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 52
    • Issues 52
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CP - Planta
  • WikiWiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update arquitetura com informações de Infra authored Oct 26, 2024 by Alexya Silva Rocha de Oliveira's avatar Alexya Silva Rocha de Oliveira
Show whitespace changes
Inline Side-by-side
arquitetura.md
View page @ 56be0167
...@@ -18,6 +18,7 @@ Nesta seção, detalhamos a arquitetura da aplicação, abordando as tecnologias ...@@ -18,6 +18,7 @@ Nesta seção, detalhamos a arquitetura da aplicação, abordando as tecnologias
- [Metodologias de Desenvolvimento](#metodologias-de-desenvolvimento) - [Metodologias de Desenvolvimento](#metodologias-de-desenvolvimento)
- [Backend - BDD e DDD](#backend---bdd-e-ddd) - [Backend - BDD e DDD](#backend---bdd-e-ddd)
- [Frontend - MVC](#frontend---mvc) - [Frontend - MVC](#frontend---mvc)
- [Arquitetura & Deploy] (#arquitetura-e-deploy)
## Definição das Tecnologias ## Definição das Tecnologias
...@@ -108,6 +109,42 @@ A arquitetura **MVC** separa a aplicação em três partes principais, facilitan ...@@ -108,6 +109,42 @@ A arquitetura **MVC** separa a aplicação em três partes principais, facilitan
Essa abordagem garante uma clara separação de responsabilidades, tornando a aplicação mais modular e fácil de escalar. Essa abordagem garante uma clara separação de responsabilidades, tornando a aplicação mais modular e fácil de escalar.
## Arquitetura & Deploy
**Resumo do Projeto**: A arquitetura de infraestrutura foi projetada para suportar de forma robusta o ciclo de vida de desenvolvimento e deploy contínuo das aplicações. A solução utiliza um conjunto de tecnologias e boas práticas que garantem escalabilidade, segurança e automação a fim de prover escalabilidade para a PoC desenvolvida.
### Componentes Principais da Infraestrutura:
#### Infraestrutura AWS EC2 (Região US East 2 - Ohio):
- Instâncias EC2 (CP-Planta1 e CP-Planta2): São instâncias de classe t2.medium que hospedam o ambiente de produção. Elas fazem parte de um grupo de segurança e de uma sub-rede gerenciada na região de Ohio.
- Grupo de Segurança e Sub-rede: Controlam o tráfego e garantem o isolamento e a segurança da infraestrutura.
#### Orquestração com Docker Swarm:
- Docker Swarm é utilizado para gerenciar e orquestrar os contêineres, oferecendo alta disponibilidade e escalabilidade automática.
- Os serviços principais incluem um backend desenvolvido com Nest.js, um frontend em Next.js, e um banco de dados PostgreSQL.
- Além disso, possuímos um banco de dados configurado com uma instância principal e uma réplica, proporcionando alta disponibilidade e resiliência. A réplica permite que o ambiente continue operando, mesmo em caso de falhas na instância principal, além de melhorar o desempenho distribuindo leituras entre as instâncias.
- O PgBouncer é utilizado como um serviço de pool de conexões, otimizando o uso dos recursos do banco de dados. Ele gerencia as conexões dos aplicativos ao serviço PostgreSQL primário, reduzindo a carga no banco e melhorando a eficiência das operações de leitura e escrita.
#### Automação e Gerenciamento com Ansible:
- Ansible é responsável pela configuração inicial das instâncias e pela orquestração do deploy. Ele automatiza a instalação de dependências, inicialização do cluster Swarm, e o deploy de novos serviços.
#### Pipeline de CI/CD:
O pipeline CI/CD é composto por dois conjuntos trabalhos principais:
- JOB 1: Testa padrões de commit, roda o processo de linting para averiguar formatação, roda os teste que forem definidos, atualiza as imagens Docker com novas alterações de código a partir do GitLab CI e por fim, aciona o trigger para o JOB 2.
- JOB 2: Aciona o deploy das novas imagens nas instâncias EC2 através do Ansible, garantindo que o ambiente esteja sempre atualizado com a última versão validada.
#### Destaques da Arquitetura:
- Automação de Ponta a Ponta: A integração entre Ansible, Docker Swarm e o pipeline de CI/CD elimina a necessidade de intervenções manuais, aumentando a eficiência do processo de deploy.
- Escalabilidade e Resiliência: A utilização de Docker Swarm permite escalonar automaticamente os serviços, enquanto a infraestrutura na AWS garante alta disponibilidade.
- Segurança e Controle de Acesso: A combinação de sub-redes e grupos de segurança assegura que o tráfego seja corretamente roteado e protegido.
--- ---
                                                                                                         [**Topo**](#arquitetura-da-aplicação)                                                                                                          [**Topo**](#arquitetura-da-aplicação)
\ No newline at end of file
Clone repository
  • Infraestrutura
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • analytics
  • arquitetura
  • backend_categories
  • backend_inicio
  • backend_persons
  • backend_production_order
  • backend_products
  • backend_qualidade
  • backend_settings
  • backend_stock
  • backend_stock_locations
View All Pages