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

Last edited by Joao Pedro Hallberg R. Martins Jul 05, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização

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

  • Tecnologias
    • .Net C#
    • ReactJs
    • GitLab
    • Docker
    • Nginx
    • Comunicação entre as tecnologias utilizadas
  • Modelo Arquitetural
    • Definições do modelo
    • Fluxograma
  • Estrutura de Arquivos do Backend
  • Estrutura de Arquivos do Frontend
  • Diagrama comunicação entre pacotes
  • Hospedagem Eficiente
  • Diagrama de deploy

Tecnologias

.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

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

Definições de Tecnologias

TBD

Módulos do Sistema

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

arq-deploy

Clone repository
  • Mockups
  • Repositórios
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • Home
  • processo
  • qualidade
  • utilizacao