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
eGit 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
- Monitoramento: Adicionar ferramentas como Prometheus ou Grafana para monitoramento de performance e logs.
- Segurança: Configurar autenticação e permissões no backend e no banco de dados.
- Backup: Implementar backups automáticos para o banco de dados.
- Balanceamento de Carga: Implementar um balanceador de carga para suportar maior número de requisições.