Essa é uma revisão anterior do documento!
Visão geral da arquitetura
Nessa arquitetura utilizaremos 3 máquinas em um cluster swarm. A pgPool que irá fazer o balanceamento de carga e monitoramento constante do status das máquinas, bem como o switchover para uma nova máquina master caso a master original venha a cair. Teremos a máquina pgMaster que terá o papel de master e a pgSlave que terá o papel de standby ou slave. A máquina Master ficará em modo Escrita/Leitura e a Slave ficará em modo apenas Leitura. Quando uma consulta de leitura, ex: Select * From users;, poderá ser direcionada pelo pgPool para qualquer uma das duas máquinas, porém, uma consulta de escrita, ex: Insert Into…, só poderá ser direcionada para a máquina Master. Abaixo temos um desenho da infraestrutura de modo geral:
Configurando máquinas
* Configurando o DNS no resolv.conf
$ sudo vim /etc/init.d/resolv.conf
* adicione as linhas:
nameserver 8.8.8.8 nameserver 8.8.4.4
* Configurando o DNS no resolv.conf
$ sudo vim /etc/network/interfaces
* adicione as linhas, logo acima da linha dns-nameservers já existente:
dns-nameservers 8.8.8.8 dns-nameservers 8.8.4.4
Instalando e configurando o Docker
* Adicione a chave do repositório Docker
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
* Adicione o repositório
$ sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
* Adicione o repositório
$ sudo apt-get update
* Instale o pacote do docker
$ sudo apt-get install -y docker-engine
* Adicionando o usuário atual do sistema ao grupo que pode usar o docker sem sudo
sudo usermod -aG docker $(whoami)