... | ... | @@ -27,4 +27,24 @@ A camada de View será o aplicativo móvel desenvolvido em Flutter, responsável |
|
|
A camada de Controller será responsável por receber as requisições do aplicativo (View), processá-las, interagir com a camada Model para manipular os dados e devolver as respostas necessárias. O Controller será implementado utilizando Spring Boot para criar os endpoints da API REST. Ele funcionará como intermediário entre a interface do usuário (View) e o banco de dados (Model), garantindo que a lógica de negócio seja aplicada corretamente.
|
|
|
|
|
|
## Arquitetura da Infraestrutura - AWS
|
|
|
TBD |
|
|
|
|
|
![ColaboraAiAWS](uploads/a5203110a98daeb9e1ab49c6b9a6b67b/ColaboraAiAWS.JPG)
|
|
|
|
|
|
## Frontend Mobile
|
|
|
O frontend mobile, desenvolvido com Flutter, permite a criação de uma aplicação cross-platform, atendendo tanto iOS quanto Android. Para a hospedagem e entrega dos arquivos estáticos deste aplicativo, utilizamos o serviço Amazon S3 (Simple Storage Service). O S3 provê alta durabilidade e disponibilidade, ideal para armazenar conteúdos acessíveis publicamente ou privadamente, dependendo da configuração de acesso.
|
|
|
|
|
|
## Frontend Web
|
|
|
Para o frontend web, escolhemos React devido à sua eficiência em renderizar componentes dinâmicos que melhoram a experiência do usuário. Assim como o frontend mobile, os arquivos estáticos do frontend web são hospedados no Amazon S3, garantindo rápida distribuição e baixa latência. Para otimizar ainda mais a entrega de conteúdo estático globalmente, pode-se integrar o Amazon CloudFront como CDN, reduzindo a carga sobre o servidor principal e melhorando o tempo de carregamento para usuários ao redor do mundo.
|
|
|
|
|
|
## Backend
|
|
|
O backend é implementado usando Java com o framework Spring Boot, conhecido por sua agilidade e poder em criar aplicações complexas e de alto desempenho. Utilizamos contêineres Docker para encapsular o ambiente do backend, facilitando a escalabilidade e a manutenção. Esses contêineres são gerenciados através do Amazon EC2 (Elastic Compute Cloud), que oferece capacidade computacional redimensionável na nuvem, permitindo ajustar recursos conforme a demanda.
|
|
|
|
|
|
## Integração e Gerenciamento de Imagens Docker
|
|
|
|
|
|
Utilizamos o Amazon ECR (Elastic Container Registry) para armazenar as imagens Docker do backend. O ECR é um repositório de imagens Docker que integra-se facilmente com o EC2, automatizando o deploy e garantindo que sempre a versão mais recente esteja disponível para produção sem interrupções no serviço.
|
|
|
|
|
|
## Arquitetura de Comunicação
|
|
|
|
|
|
- Amazon EC2: Responsável por executar o backend da aplicação, lidando com a lógica de negócios e processamento de dados.
|
|
|
- Amazon S3: Além de hospedar os assets dos frontends, armazena dados gerados pelos usuários, como uploads de arquivos, garantindo segurança e acesso controlado.
|
|
|
- Amazon ECR: Mantém as imagens Docker, simplificando o processo de atualização e manutenção do ambiente de execução do backend. |