Skip to content

GitLab

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

Infraestrutura · Changes

Page history
Update Infraestrutura authored Nov 18, 2024 by Dylan Souza Silveira's avatar Dylan Souza Silveira
Show whitespace changes
Inline Side-by-side
Infraestrutura.md
View page @ a115f2a7
| [Home](home) | [Escopo](escopo) | [Gerência](gerência) | [Processo](processo) | [Mockups](mockups) | [Configuração](configuração) | [Arquitetura](arquitetura) | [DataBase](database) |[Infraestrutura](infraestrutura) |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
\ No newline at end of file
<table>
<tr>
<th>
[Home](home)
</th>
<th>
[Escopo](escopo)
</th>
<th>
[Gerência](ger%C3%AAncia)
</th>
<th>
[Processo](processo)
</th>
<th>
[Mockups](mockups)
</th>
<th>
[Configuração](configura%C3%A7%C3%A3o)
</th>
<th>
[Arquitetura](arquitetura)
</th>
<th>
[DataBase](database)
</th>
<th>
[Infraestrutura](infraestrutura)
</th>
</tr>
</table>
# Documentação da Infraestrutura
## Visão Geral
A infraestrutura apresentada é uma solução que utiliza um servidor virtual privado (VPS) fornecido pela Contabo para hospedar um ambiente integrado que suporta aplicações frontend, backend e banco de dados. A integração é gerenciada através do GitLab CI/CD, utilizando o GitLab Runner para automatizar os processos de build, teste e deploy.
---
## Componentes Principais
### 1. **Serviço de Versionamento de Código**
- **Tecnologia:** GitLab Repository
- **Função:**
- Repositório central para armazenar o código do frontend e backend.
- Sincronização de código entre desenvolvedores através de `Git Push` e `Git Pull`.
- **Interação:**
- Os desenvolvedores interagem diretamente com o repositório para versionar alterações de código.
### 2. **Serviço de Integração e Entrega Contínua (CI/CD)**
- **Tecnologia:** GitLab Runner
- **Função:**
- Automatizar a construção, testes e deploy do código.
- Monitorar alterações no repositório GitLab e executar pipelines definidos.
- **Localização:** Instalado no VPS.
- **Interação:**
- Conecta-se ao repositório GitLab para obter o código e aciona os processos para frontend, backend e banco de dados.
### 3. **Tecnologias de Frontend**
- **Tecnologia:** Next.js
- **Função:**
- Framework utilizado para desenvolver a aplicação frontend.
- Consome APIs do backend para exibir os dados necessários.
- **Interação:**
- Os artefatos gerados (build do Next.js) são implantados no ambiente do VPS, prontos para serem acessados pelos usuários.
### 4. **Tecnologias de Backend**
- **Tecnologias:** Spring Boot com Java
- **Função:**
- Servir como backend para a aplicação, processando as regras de negócio e fornecendo APIs REST.
- **Interação:**
- Comunicação direta com o banco de dados para manipulação de dados.
- Fornece endpoints consumidos pela aplicação frontend.
### 5. **Tecnologias de Banco de Dados**
- **Tecnologias:** MySQL e Docker
- **Função:**
- Banco de dados relacional para armazenar dados da aplicação.
- Docker utilizado para containerizar o banco de dados, facilitando o gerenciamento e escalabilidade.
- **Interação:**
- Comunica-se com o backend para armazenar e recuperar dados.
### 6. **Servidor Virtual Privado (VPS)**
- **Provedor:** Contabo
- **Função:**
- Hospedar o GitLab Runner, o backend, o frontend e o banco de dados.
- **Interação:**
- Centraliza todos os componentes e os torna acessíveis através de rede.
---
## Fluxo de Trabalho
### 1. **Desenvolvedores**
- Fazem alterações no código e enviam (`Git Push`) para o repositório GitLab.
### 2. **GitLab Repository**
- Armazena o código atualizado e dispara pipelines configurados no GitLab CI/CD.
### 3. **GitLab Runner**
- Executa os pipelines para:
- Construir a aplicação frontend (Next.js).
- Compilar e configurar o backend (Spring Boot).
- Configurar o banco de dados (MySQL via Docker).
- Implanta os artefatos gerados no ambiente do VPS.
### 4. **Aplicações**
- **Frontend:** Servido pelo ambiente configurado no VPS.
- **Backend:** Disponível para atender às requisições da aplicação frontend.
- **Banco de Dados:** Gerencia dados persistentes para a aplicação backend.
---
## Benefícios da Arquitetura
- **Automação:** Integração e deploy contínuos garantem ciclos de entrega mais rápidos e menos propensos a erros manuais.
- **Modularidade:** Separação clara entre frontend, backend e banco de dados.
- **Escalabilidade:** Uso de Docker facilita a replicação e escalabilidade de serviços como o banco de dados.
- **Centralização:** Utilização de um VPS reduz custos e simplifica a manutenção.
---
## Melhorias Futuras
1. **Monitoramento:** Adicionar ferramentas como Prometheus ou Grafana para monitoramento de performance e logs.
2. **Segurança:** Configurar autenticação e permissões no backend e no banco de dados.
3. **Backup:** Implementar backups automáticos para o banco de dados.
4. **Balanceamento de Carga:** Implementar um balanceador de carga para suportar maior número de requisições.
\ No newline at end of file
Clone repository
  • Arquitetura
  • Configuração
  • Database
  • Escopo
  • Gerência
  • Infraestrutura
  • Mockups
  • Processo
  • Testes
  • Home