Home | Escopo | Processo | Design/Mockups | Configuração | Arquitetura | Gerência | Código | BD | Qualidade | Frontend | Backend |
---|
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
Esta subseção visa apresentar o padrão arquitetural front-back adotado.
Diagrama em alto nível da arquitetura:
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:
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 Frontend, Banco de dados e demais Runners do GitLab (CI/CD e Terraform)
-
AWS Lambda. É um serviço de computação, sem servidor, orientado a eventos que permite executar serviços de Backend sem provisionar ou gerenciar servidores. Esta instância será utilizada para executar cada trecho de código do Backend da aplicação invocado por cada requisição HTTP feita.
-
AWS ECR. É um serviço de registro de contêiners que oferece hospedagem para implantar imagens e artefatos de aplicações. Esta instância será utilizada para armazenar as imagens Docker do projeto, bem como os arquivos de estado do Terraform.
-
AWS API Gateway. É um serviço que permite a criação, publicação, monitoramento e proteção de APIs em qualquer escala. Esta instância servirá como um intermédio de comunicação entre o frontend e o backend.