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

Infraestrutura

Home Escopo Gerência Processo Mockups Configuração Arquitetura DataBase Infraestrutura Testes

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