Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • 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
    • 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
  • InclusiApp
  • Wiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update Wiki - arquitetura (tecnologias) authored Jun 21, 2024 by Delmar Lucas Dorneles Quaresma's avatar Delmar Lucas Dorneles Quaresma
Hide whitespace changes
Inline Side-by-side
arquitetura.md
View page @ 90911234
Segue abaixo a arquitetura de deploy da aplicação:
| [**Home**](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [BD](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) |
| :--------------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: |
# Arquitetura da Aplicação
## Descrição
Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, além dos dados relativos ao deploy.
# Sumário
[Descrição](#descrição)
- [Tecnologias](#Tecnologias)
- [.Net C#](#.Net C#)
- [ReactJs](#React.js-frontend)
- [GitLab](#gitlab-integração-contínua)
- [Docker](#docker-conteinerização)
- [Nginx](#nginx)
- [Comunicação entre as tecnologias utilizadas](#comunicação-entre-as-tecnologias-utilizadas)
- [Modelo Arquitetural](#modelo-arquitetural-rest)
- [Definições do modelo](#definições-do-modelo-arquitetural-rest)
- [Fluxograma](#em-alto-nível-de-chamadas-de-uma-api-rest)
- [Estrutura de Arquivos do Backend](#estrutura-de-arquivos-do-backend)
- [Estrutura de Arquivos do Frontend](#estrutura-de-arquivos-do-frontend)
- [Diagrama comunicação entre pacotes](#diagrama-comunicação-pacotes)
- [Hospedagem Eficiente](#Hospedagem-Eficiente)
- [Diagrama de deploy](#diagrama-de-deploy)
# Tecnologias
<div align="center">
<img src="uploads/72018f3669a53a91c5401ea50787ddad/Icones_tecnologias.png" width="1500">
</div>
### .Net C#
O .NET C# é uma plataforma de desenvolvimento de código aberto mantida pela Microsoft. Ele oferece aos desenvolvedores uma estrutura poderosa para criar aplicações de nível de produção de maneira eficiente e configurável. Com o .NET C#, os desenvolvedores podem iniciar rapidamente seus projetos sem perder tempo com a configuração e preparação inicial. No contexto do nosso projeto, foi escolhido como a tecnologia para o desenvolvimento do backend.
### React.js (Frontend)
O React (também denominado React.js ou ReactJS) é uma biblioteca front-end JavaScript de código aberto com foco em criar interfaces de usuário em páginas web. Em nosso projeto, essa foi a tecnologia escolhida a ser utilizada para o desenvolvimento do frontend.
### PostgreSQL (Banco de Dados)
O PostgreSQL é um sistema de banco de dados relacional orientado a objetos, poderoso e de código aberto, com mais de 30 anos de desenvolvimento ativo. Ele se destaca por sua alta confiabilidade, robustez de recursos e excelente desempenho. Em nosso projeto, o PostgreSQL foi selecionado como a tecnologia para o banco de dados da aplicação.
### Docker (Conteinerização)
O Docker é um conjunto de produtos de plataforma como serviço (PaaS) que utiliza virtualização em nível de sistema operacional para fornecer software em pacotes chamados contêineres. No contexto do nosso projeto, o Docker foi escolhido como a ferramenta de conteinerização para os artefatos que serão executados em máquinas EC2 na AWS.
### GitLab
O GitLab é um gerenciador de repositório de software baseado em Git que oferece suporte a Wiki, gerenciamento de tarefas e CI/CD. Similar ao GitHub, o GitLab permite que os desenvolvedores armazenem seu código em servidores próprios, em vez de depender de servidores de terceiros.
### Ngnix
O NGINX é um software de servidor altamente flexível e de alto desempenho, amplamente popular na gestão de tráfego web. Abaixo, destacamos algumas de suas principais capacidades:
O NGINX funciona como um proxy reverso, direcionando solicitações dos clientes para servidores backend. Esse recurso é particularmente valioso para otimizar o desempenho e a segurança de um servidor web. Além disso, permite a distribuição equilibrada da carga entre os servidores, assegurando uma gestão eficaz do tráfego.
## Comunicação entre as tecnologias utilizadas
<div align="center">
<img src="" width="1500">
</div>
# Modelo Arquitetural REST
TBD
## Definições do Modelo Arquitetural REST
TBD
# Estrutura de Arquivos do Backend
TBD
### Explicativo dos diretórios do backend
TBD
## Frontend
<h3 id="front-end-def-tec">Definições de Tecnologias</h3>
TBD
<h3 id="front-end-mods-sis">Módulos do Sistema</h3>
TBD
### Diagramas de Componentes
TBD
### Diagrama do Sistema
TBD
# Hospedagem: Amazon AWS EC2 e S3
Para oferecer uma solução de hospedagem altamente escalável e eficiente para nossos aplicativos web, adotamos uma abordagem estratégica. Nossa arquitetura de hospedagem aproveita dois serviços robustos da Amazon Web Services (AWS): Elastic Compute Cloud (EC2) e Amazon Simple Storage Service (S3).
# Backend na Instância do EC2:
Nossa lógica de servidor, também conhecida como backend, será executada em uma instância do EC2. O EC2 é uma máquina virtual escalável e flexível, permitindo-nos configurar e gerenciar servidores conforme nossas necessidades. Essa abordagem nos proporciona controle total sobre o ambiente do servidor, possibilitando a personalização de recursos como poder de processamento, memória e sistema operacional. Além disso, o EC2 é altamente seguro e pode ser configurado para atender aos requisitos específicos de segurança da nossa aplicação.
Hospedando nosso backend no EC2, garantimos a capacidade de gerenciar a lógica de negócios e o processamento de dados de maneira eficaz e escalável.
# Frontend no Amazon S3 Bucket:
Nossa interface do usuário, ou frontend, será armazenada em um bucket do Amazon S3. O Amazon S3 é um serviço de armazenamento de objetos altamente durável e escalável, ideal para armazenar arquivos estáticos como HTML, CSS, JavaScript e imagens. Utilizando um bucket do S3 para hospedar o frontend, asseguramos alta disponibilidade, distribuição global e baixos custos de armazenamento.
Essa abordagem nos permite separar claramente o conteúdo estático do dinâmico. Além disso, ao utilizar a rede de entrega de conteúdo (CDN) integrada do S3, garantimos que nosso frontend seja entregue de maneira rápida e eficiente aos usuários finais em todo o mundo.
A combinação do EC2 e do Amazon S3 cria uma infraestrutura sólida e escalável para nossos aplicativos web. O backend no EC2 fornece a funcionalidade e a lógica de negócios, enquanto o frontend no S3 oferece uma experiência de usuário otimizada e rápida. Essa arquitetura nos permite crescer de maneira eficaz e oferecer aos nossos usuários uma experiência de alta qualidade em nossos aplicativos web.
# Diagrama de Deploy
<div align="center">
<img src="uploads/ee0860ba1b20f86f47dd4573f12300c9/arq-deploy.png" width="1500">
</div>
![arq-deploy](uploads/ee0860ba1b20f86f47dd4573f12300c9/arq-deploy.png)
\ No newline at end of file
Clone repository
  • Mockups
  • Repositórios
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • Home
  • processo
  • qualidade
  • utilizacao