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

Last edited by Dylan Souza Silveira Nov 24, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Infraestrutura

Home

Escopo

Gerência

Processo

Mockups

Configuração

Arquitetura

DataBase

Infraestrutura

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.
Clone repository
  • Arquitetura
  • Configuração
  • Database
  • Escopo
  • Gerência
  • Infraestrutura
  • Mockups
  • Processo
  • Testes
  • Home