03-architecture.tex
2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
\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.