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
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Pagges
  • WikiWiki
  • Wiki
  • Arquitetura

Last edited by Guilherme de Moraes Machado Pereira Silva Apr 12, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura

Home Escopo Processo Design/Mockups Configuração Arquitetura Gerência Código BD Qualidade Frontend Backend Analytics

Descrição

Esta seção da documentação visa apresentar os padrões arquiteturais gerais do projeto, bem como a infraestrutura adotada.

Sumário

  • Arquitetura E2E
  • Arquitetura de Infraestrutura

Arquitetura E2E

Esta subseção visa apresentar o padrão arquitetural front-back adotado.

Diagrama em alto nível da arquitetura:

Arquitetura-MVC

A arquitetura utilizada no projeto é a Model-View-Controller, que permite a separação entre as responsabilidades de uma aplicação em três camadas principais que serão responsáveis por organizar o código entre modelos, lógica de negócios e interfaces de forma separada.

Models

As Models representam a camada de dados da aplicação, representando a lógica de negócios, acesso aos dados além de sua validação e manipulação. Uma de suas responsabilidades é gerenciar o comportamento dos dados e atualizar o banco de dados com as informações mais recentes ou alteradas.

Views

A camada de Views é responsável por exibir os dados ao usuário final. Ela representa a interfaces do projeto, recebendo as interações do usuário e retornando respostas de acordo com o planejamento das interações.

Controller

A camada de Controllers age como um intermediário entre as camadas de Models e Views, recebendo as interações do usuário e enviando para a fonte de dados ou solicitando dados ao modelo para que eles possam ser exibidos em tela.

No projeto Globo Aplausos, o usuário acessa o Frontend via plataforma web (Views) que contém componentes reutilizáveis e que se comunicam com as Controllers do Backend para buscar ou atualizar os dados presentes nos modelos (Models) inseridos no banco de dados.

Arquitetura de Infraestrutura

Esta subseção visa apresentar o padrão arquitetural de infraestrutura adotado.

Diagrama em alto nível da arquitetura:

Arquitetura_de_deploy

Instâncias utilizadas:

  • AWS EC2. É um serviço de computação em nuvem escalável sob demanda. Esta instância será utilizada para hospedar os containers Docker do Backend, Banco de dados, Cypress e demais Runners do GitLab (CI/CD).

  • AWS ECR. É um serviço de registro de contêineres que oferece hospedagem para implantar imagens e artefatos de aplicações. Esta instância será utilizada para armazenar as imagens Docker do projeto.

  • AWS S3. É um serviço de armazenamento de objetos. No projeto Globo Aplausos, a S3 será utilizada para armazenar as imagens de usuários e produtos que podem ser cadastrados pelo administrador.

Vercel

Vercel é uma plataforma de hospedagem e automação para o desenvolvimento de plataformas web, com foco na entrega contínua de projetos realizados em estruturas de Next.js. No caso do Globo Aplausos, o Vercel é utilizado como ambiente de produção do Frontend, que é atualizado a cada sprint com as alterações enviadas à branch principal do projeto.

Fluxo de Deploy

Nesta seção será apresentado o fluxo de deploy da aplicação do projeto Globo Aplausos. Diagrama_sem_nome.drawio

Observando a imagem acima, quando uma mudança nova é realizada e adicionada à branch main do Frontend ou Backend o pipeline realiza os jobs específicos para realização do deploy da aplicação. No Frontend, o pipeline realiza o deploy para o Vercel, a partir da conexão realizada entre o repositório e a cloud, utilizando as configurações estabelecidas no ambiente e no arquivo .vercel. Para o Backend, o processo de deploy segue o mesmo padrão inicial, porém, em vez de mandar as mudanças para o Vercel, o runner do GitLab constrói uma imagem do Backend utilizando a CLI da ECR, envia a imagem para AWS que então é utilizada para gerar um novo container do Backend da aplicação.

Clone repository
  • Arquitetura Pagges
  • Arquitetura
  • Banco de Dados
  • design
    • mockups
  • escopo e cronograma
  • Home