Dockerizando os serviços e sites
Opened this issue · 8 comments
Como forma de tornar a infraestrutura mais resiliente, estamos em processo de utilizar a tecnologia docker para o que já temos no ar.
O primeiro site passando por este processo é o o site do partido (http://partidopirata.org), cujo processo está sendo documentado na #14.
A ideia é que tanto os arquivos Dockerfile
quanto docker-compose.yml
sejam mantidos em repositórios no github (e nos outros espelhos), assim como as imagens utilizadas mantidas na organização do partido no docker hub.
Bancos de dados e demais dados sigiliosos devem ser mantidos de forma segura e não pública, mas isto é outro assunto.
Os outros sites/serviços e suas especificações seriam os seguintes (caso algo esteja incorreto, favor corrigir):
- Sites estáticos
- Wordpress
- Site principal
- Endereço: http://partidopirata.org
- Código
- Containers
- MariaDB
- Wordpress
- Volumes
- Banco de dados
- Uploads
- Tema
- Plugins
- Tarefas
- Ver #14
- ANAPIRATA
- Endereço: http://anapirata.partidopirata.org
- Código
- Containers
- MariaDB
- Wordpress
- Volumes
- Banco de dados
- Uploads
- Tema
- Plugins
- Tarefas
- Configurar envio de e-mail a partir do wordpress
- Site principal
- Biblioteca Pirata
- Endereço: https://biblioteca.partidopirata.org
- Código
- Software: Mediagoblin
- Containers
- Postgres
- Mediagoblin
- Nginx
- Volumes
- A biblioteca aceita arquivos de imagem e qualquer documento que possa ser convertido pra PDF no LibreOffice. Isto ocupa espaço de armazenamento.
- Tema
- Hotsite de coleta de assinaturas
- Endereço: https://apoio.partidopirata.org
- Código
- Software: Django
- Containers
- Django
- Nginx
- Volumes
- Se o FAQ voltar, é necessário no mínimo um banco SQLite, ou então alguém aponte outra alternativa.
- GNU Social
- Endereço: https://social.pirata.xyz
- Código
- Software: GNU Social
- Containers
- MariaDB
- GNU Social
- Nginx
- Volumes
- Banco de dados
- Tema
- Moodle
- Endereço: https://moodle.escolapirata.org
- Código
- Software: Moodle
- Containers
- MariaDB
- Moodle
- Nginx
- Volumes
- Banco de dados
- Uploads
- Naofo.de
- Wikis
- Endereços
- Código
- Software: Ikiwiki
- Containers
- Ikiwiki
- Nginx
- Volumes
- Nenhum, o banco de dados é um repositório GIT e se atualiza sozinho aqui no github, em outros sites, e no computador de quem quiser clonar a wiki inteira.
- Servidor web
- Software: Nginx
- Containers
- Nginx
- Volumes
- Arquivos de configuração de sites (diretório /etc/nginx/sites-available)
- Arquivos de SSL do let's encrypt - decidir se isto fica no docker ou no hypervisor
- Tarefas
- Criar Dockerfile com Nginx e definindo volumes
- Manter repositório no github e no dockerhub
- Acrescentar arquivos de configuração atualmente em uso como volume
- Acrescentar arquivos do let's encrypt (não publicamente) no diretório do container docker
- Garantir que o servidor web nginx dentro do container vai conseguir se comunicar normalmente com todos backends como está fazendo agora no hypervisor
- Mapear as portas 80 e 443 do container nas portas 80 e 443 do servidor enwtickler
- Site do GTC
- Endereço: http://gtc.partidopirata.org
- Código
- Issue
- Containers
- MariaDB
- Wordpress
- Volumes
- Banco de dados
- Uploads
- Tema
- Plugins
- Tarefas
- Criar instalação nova e limpa do wordpress
- Importar arquivo XML do site antigo para o novo
- Ver mais tarefas em #40
- Plataforma de crowdfunding
Para o servidor web, encontrei estes projetos no docker hub que podem auxiliar e/ou inspirar:
Veja se ajuda desci:
Um motivo pra insistir nesta empreitada: https://www.debian.org/security/2016/dsa-3701
Alias, é sabido há anos que existem infinitas técnicas de escalar pra root. Virtualização é a solução óbvia. O ideal seria usar Xen, mas Docker é o que vai ser por enquanto, já é um avanço.
Mais um ambiente como exemplo (wordpress+phpmyadmin):
http://araujo.cc/blog/ambiente-wordpress-phpmyadmin-com-docker.html
Outro fato de mundo real para insistir nisto é que com a queda do servidor principal ontem, e com o não uso de servidores alternativos e de backup, é dificultada a possibilidade de subir os serviços em outro servidor em tempo hábil, e portanto, reduzir o tempo de queda para 30 minutos, que é o TTL mínimo do servidor de DNS do domínio.
Eu poderia ter botado os sites no ar nos servidores da igreja insurgente ontem ainda, com o último backup do banco de dados, mas o ideal mesmo é que os serviços já estivessem rodando em vários servidores, com docker swarm e/ou outras ferramentas.
Alias, cabe lembrar que o plano original do novo GTI era manter os servidores da suecia como principais e utilizando estritamente para proxy reverso e balanceador de carga. Apesar de isto ter sido documentado, não foi elaborado o planejamento estratégico do GTI.
Em 2014 cheguamos a mobilizar gente pra botar servidores na roda e fazer parte desse esforço, mas só vale a pena ir atrás das pessoas de novo se já tiver o sistema pronto e for só "dar o deploy" que nem os jovens dizem.
Já conseguiram dockerizar o negócio? Em que pé ta isso aq?