Todos os servidores SaaS executam diariamente uma rotina de backup automática (/etc/cron.daily/acceleroJobs) de todos os deploys daquele servidor.
A rotina é simples e se divide em três partes:
- backup do banco de dados;
- backup de fotos;
- backup geral do servidor.
Tipos de backup
Banco de dados
Todos os dias é feito um backup completo de todos os bancos de dados daquele servidor.
Fotos
No primeiro dia do mês é feito um backup completo de todas as fotos de todos os deploys.
Nos outros dias, é feito um backup diferencial. Nesse backup estão presentes apenas as fotos que foram criadas/alteradas durante o dia, e um arquivo com a relação completa de todas as fotos que existiam no momento do backup (pra que seja possível "pegar" quais fotos foram excluídas).
Servidor - geral
Às quintas feiras é feito um backup da infra-estrutura do servidor (sem os dados dos deploys, por exemplo). Esse backup deve ser suficiente pra "reconstruir a infra-estrutura do servidor" em caso de emergência.
Upload para servidor externo
Todos os backups são automaticamente enviados para um servidor externo (Spaces da DigitalOcean, equivalente de um AWS S3) no momento da sua criação. Esses backups podem ser acessados logando na DigitalOcean ou por linha de comando (s3cmd).
Retenção de dados
Todos os backup são guardados no servidor externo por 60 dias.
Diariamente, o servidor diacetyl checa quais backups têm idade maior que 60 dias, e faz a exclusão automaticamente ( /etc/cron.daily/iongrade_delete_old_backups).
Recuperação de dados
Se for necessário recuperar um backup, basta fazer o download e "aplicar" aonde for necessário (os backups são simples .tar.gz).
No caso de banco de dados, o backup é um dump gerado pelo mysqldump.
O nome dos arquivos tem o padrão yyyymmdd_accelero_host.com.br_database.tar.gz.
No caso de fotos, o backup são as próprias fotos.
O nome dos arquivos tem o padrão yyyymmdd_accelero_host.com.br_files.tar.gz.
No caso do servidor, o backup são os arquivos da infra-estrutura. Se for necessário usar esse arquivo, provavelmente é porque o servidor inteiro se perdeu, e será necessário recuperar não apenas a infra-estrutura, mas os outros backups também. Esse aqui simplesmente é o "bootstrap de recuperação", porque vai permitir colocar as coisas no ar para, aí sim, proceder à recuperação de dados de clientes.
O nome dos arquivos tem o padrão yyyymmdd_iongrade_bakcup_server_nomedoserver.ar.gz