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
- Tecnologias
- Modelo Arquitetural
- 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.