Skip to content

Visão de Implantação

Static Badge

A Visão de Implantação descreve como o sistema AcadMap é fisicamente distribuído no ambiente de execução, com foco na infraestrutura de contêineres Docker. Essa visão é fundamental para compreender o ambiente operacional do sistema, incluindo a alocação de componentes, fluxos de comunicação, protocolos utilizados e fronteiras de segurança.

O diagrama a seguir apresenta uma visão de alto nível da implantação do sistema em um cenário típico de produção, com os seguintes elementos principais:

  • Usuário final, que acessa o sistema por meio de um navegador web;
  • Fronteira de rede, que separa o ambiente da internet pública da rede interna de containers;
  • Container Apache HTTP Server, responsável por servir os arquivos estáticos do frontend (React + Vite);
  • Container Backend (Spring Boot), que implementa a lógica de negócio e expõe as APIs REST em JSON;
  • Container Banco de Dados (PostgreSQL), que armazena persistentemente os dados da aplicação;
  • Toda a comunicação entre os containers ocorre dentro de uma rede Docker interna (bridge), utilizando protocolos padronizados como HTTPS, HTTP e JDBC.

Esse modelo garante isolamento entre serviços, facilita o escalonamento e simplifica o processo de implantação e manutenção por meio de orquestração baseada em contêineres.

Diagrama de Implantação - DEP-01

graph TD
    user["Usuário (Navegador Web)"]

    %% Rede Docker Interna
    subgraph "acadmap-net (intranet)"

        subgraph "Container do Frontend"
            apache["Apache"]

            frontend["Aplicação React (Vite)"]
        end

        subgraph "Container do Backend"
            backend["Aplicação Spring Boot"]
            api["API REST (Java)"]
        end

        subgraph "Container do Banco de Dados"
            db["PostgreSQL"]
        end

    end

    %% Conexões
    user -->|internet - https| apache
    apache -->|HTTP - porta 8080| backend
    backend --> api
    backend -->|JDBC - porta 5432| db

Clique nos blocos abaixo para visualizar versões em outros formatos:

Versão PlantUML
    @startuml
    title DEP-01 – Diagrama de Implantação do Sistema AcadMap   
    actor user as "Usuário"
    node browser as "Navegador Web"     
    ' Fronteira entre internet pública e rede interna Docker
    boundary "Fronteira de Rede\n(Pública > Interna)" as internet   
    ' Rede interna - Docker
    node "Rede Docker Interna (acadmap-net)" as docker_net {    
    node "Container Apache HTTP Server" as apache {
    port p_https
    artifact "Frontend (JS + React)" as front
    }   
    node "Container Backend Spring Boot" as backend {
    artifact "API REST (Java)" as api
    }   
    node "Container Banco de Dados" as db_container {
    database "PostgreSQL" as db
    }
    }   
    ' Ligações com a fronteira (com indicação clara do ponto de transição)
    user --> browser
    browser --> internet : HTTPS
    internet --> p_https    
    ' Conexões internas da rede Docker
    apache --> backend : HTTP (porta 8080)
    backend --> db : JDBC (porta 5432)
    @enduml
Versão .png

DEP-01

O diagrama IMPL-01 mostra que o usuário interage com o sistema AcadMap por meio de um navegador, acessando o frontend hospedado em um servidor Apache via HTTPS. Esse frontend comunica-se com a API REST do backend via HTTP, que por sua vez realiza operações no banco de dados PostgreSQL utilizando JPA via JDBC.

A separação entre a Internet e a infraestrutura interna do sistema evidencia uma preocupação com segurança e organização da rede. O servidor de aplicação e o banco de dados são acessíveis apenas internamente, enquanto a interface pública é controlada pelo servidor web.