Arquitetura

A arquitetura do SPB consiste em 7 servidores como representado na figura a seguir.

_images/arquitetura.png

Servidores e Serviços

Um proxy reverso trata requisições HTTP e as direciona para uma segunda máquina, onde são distribuidas para os serviços solicitados. Todos os bancos de dados relevantes estão concentrados em uma única máquina e todos os emails disparados pelo sistema partem de um mesmo relay.

O ambiente é composto por 7 máquinas com funções distintas:

  • Reverseproxy
    • Proxy reverso
  • Integration
    • Segundo proxy reverso;
    • Repositórios Git;
    • Listas de email;
    • Backend final de email;
  • Email
    • Relay de email;
  • Social
    • Servidor de rede social Noosfero;
  • Database
    • Servidor de banco de dados PostgreSQL;
  • Mezuro
    • Servidor de análise de código Mezuro;
  • Monitor
    • Monitoramento de informações dos outros serviços;

As máquinas Reverseproxy, Email e Monitor possuem IP’s externos. Reverseproxy recebe requisições HTTP/HTTPS (portas 80 e 443) e possibilita que usuários utilizem os repositórios git (porta 22). Email recebe emails (porta 25) e enviar emails para fora da plataforma. Monitor recebe requisições HTTP/HTTPS (portas 80 e 443). Os IP’s variam de acordo com o ambiente.

Conexões na porta 22 da máquina reverseproxy são redirecionadas para integration. Todas as máquinas aceitam conexões ssh originadas apenas da máquina integration, ou seja, não é possível realizar conexões ssh nas demais máquinas se a conexão não for originada da integration. As máquinas email, social, database e mezuro aceitam conexão ssh vindas da integration na porta 22 e a reverseproxy em uma porta alternativa, especificada no arquivo de configuração do ambiente, config/$SPB_ENV/config.yaml pelo valor alt_ssh_port.

_images/ssh.png

Note que, como será demonstrado neste manual, existem atalhos definidos no repositório de gestão de configuração para simplificar o acesso por ssh às máquinas. Internamente, as máquinas integration e social também rodam web servers para servirem suas aplicações. Por fim, as máquinas integration e social conectam-se em database usando a porta 5432 para acesso aos bancos de dados.

Gestão de configuração

O repositório de gestão de configuração se encontra em git@portal.softwarepublico.gov.br:softwarepublico/softwarepublico.git e pode ser obtido a partir do comando:

$ git clone git@portal.softwarepublico.gov.br:softwarepublico/softwarepublico.git

Note que para tal, é necessário possuir uma conta no Portal do SPB com chaves SSH configuradas. Para mais informações sobre essas configurações, veja a Documentação de Apoio.

Este repositório contém scripts que realizam todos os passos necessários para a instalação, configuração e manutenção do ambiente. Isto é feito através de scripts em linguagem Ruby que utilizam o Chef para a automatização de configurações e deploy de ambientes.

Os scripts mencionados são gerenciados por uma segunda ferramenta, Chake, que elimina a necessidade de um servidor Chef dedicado para gerenciar as máquinas do ambiente. O Chake conecta-se em cada uma das máquinas descritas via ssh, copiando scripts e outros arquivos, contendo as diretrizes necessárias para instalar e configurar todo o ambiente.

Tabela de Conteúdo

Tópico anterior

Introdução

Próximo tópico

Implantação

Esta Página