Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C Cosmos
  • 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
  • Cosmos
  • Cosmos
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Sep 19, 2024 by Gabriel Grellert Spiandorello's avatar Gabriel Grellert Spiandorello
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 34099c9e
...@@ -19,7 +19,18 @@ ...@@ -19,7 +19,18 @@
# Arquitetura do Sistema # Arquitetura do Sistema
- Explicação da Arquitetura e porque da escolha. Na nossa arquitetura da nuvem usaremos principalmente o serviço [ECS(Elastic Container Service) da AWS](https://aws.amazon.com/ecs/). Este é um serviço de orquestração de contêineres totalmente gerenciado que facilita a implantação, o gerenciamento e a escala de aplicações em contêineres. Este seviço vai servir para garantir à nossa aplicação uma camada extra de segurança e escalabilidade.
No ECS usaremos uma instância do [AWS Fargate](https://aws.amazon.com/pt/fargate/) que é um mecanismo de computação sem servidor e com pagamento conforme o uso que permite a você se concentrar em construir aplicações sem gerenciar servidores.
Para realizarmos nosso deploy no ECS usaremos o [ECR(Elastic Container Registry)](https://aws.amazon.com/pt/ecr/) que é um registro de contêiner totalmente gerenciado que oferece hospedagem de alta performance para que você possa implantar imagens e artefatos de aplicações de forma confiável em qualquer lugar.
O fluxo da nosso deploy será enviar uma imagem conteinerizada da nossa aplicação, no total 3 imagens (frontend, backend e banco de dados), para o ECR. Com a imagem no ECR iremos para a configuração do ECS, onde criaremos uma task(um serviço) usando uma instancia do AWS Fargate.
Esse é um padrão de deploy oferecido pela propria AWS.
![Explicacao_Arquitetura](uploads/b2e8250292b5efef33b5632b9ee22ef8/Explicacao_Arquitetura.png)
Para mais informações do ECS e seu fluxo de deploy, a AWS oferece um [workshop](https://ecsworkshop.com/introduction/) sobre os serviços.
# Deploy # Deploy
...@@ -33,21 +44,20 @@ ...@@ -33,21 +44,20 @@
## Diagrama de Componentes ## Diagrama de Componentes
- Para criar um diagrama de componentes eficiente para a aplicação "Cosmos", que ilustre claramente, podemos seguir a descrição a seguir, organizando os elementos conforme suas funções específicas: Um diagrama de componentes eficiente para a aplicação "Cosmos" pode ser organizado conforme as funções específicas de cada parte do sistema:
- **Componentes de Infraestrutura** ### Componentes de Infraestrutura
- **Docker Containers** 1. **Amazon Elastic Container Service (ECS)**: Responsável pela orquestração dos containers que rodam tanto o backend quanto o banco de dados.
- **Função**: Isolamento e gerenciamento de dependências. 2. **Amazon Elastic Container Registry (ECR)**: Repositório onde as imagens Docker são armazenadas.
- **Responsabilidades**: Cada componente do servidor (FastAPI, Gitlab Runner, Postgres) é implantado em um contêiner separado. 3. **AWS Fargate**: Provedor de serviço serverless que gerencia a execução dos containers, dispensando o uso de servidores.
- **Gitlab Runner**
- **Função**: Automação de CI/CD. ### Componentes de Backend
- **Responsabilidades**: Automatizar atualizações e testes do código. 1. **NestJS**: Framework utilizado para o desenvolvimento do backend, que está dentro de um container Docker.
- **AWS EC2** 2. **PostgreSQL**: Banco de dados relacional que também é gerenciado via containers.
- **Função**: Hospedagem dos contêineres Docker.
- **Responsabilidades**: Fornecer recursos computacionais. ### Componentes de Frontend
- **AWS S3** 1. **React**: Biblioteca JavaScript utilizada para o desenvolvimento do frontend, hospedada no **AWS Amplify**.
- **Função**: Armazenamento para dados estáticos ou backups. 2. **AWS Amplify**: Plataforma para hospedagem e deploy de aplicações frontend, com integração direta ao repositório GitLab.
- **Responsabilidades**: Integrar-se com a aplicação para armazenamento de dados não-relacionais.
# Definições de Tecnologias # Definições de Tecnologias
......
Clone repository
  • Arquitetura
  • Banco de Dados
  • Configuracao
  • Design_mockups
  • Escopo
  • Gerencia
  • Git Workflow
  • Qualidade
  • Home