\section{Architecture} %TODO: Kanashiro 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: \begin{itemize} \item Reverseproxy: Proxy reverso \item Integration: Segundo proxy reverso, Repositórios Git, Listas de email e Backend final de email \item Email: Relay de email \item Social: Servidor de rede social Noosfero \item Database: Servidor de banco de dados PostgreSQL \item Mezuro: Servidor de análise de código Mezuro \item Monitor: Monitoramento de informações dos outros serviços \end{itemize} 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. 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.