|
|
| [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 |