Bacapes e disaster recovery
Bacapes e Recovery Disaster
1) Definições e metas
Backap é uma cópia coerente de dados/configurações para recuperação posterior (de remoções aleatórias, bags, criptolocadores, desastres).
DR. (Disaster Recovery) - Processo de recuperação da infraestrutura/serviços para os trabalhadores SLO após um grande acidente (incêndio, perda de região, comprometimento em massa).
RPO (Recovery Point Objectiva) - perda máxima de dados de tempo (por exemplo, 15 minutos).
RTO (Recovery Time Objectiva) - O tempo de restabelecimento do serviço (por exemplo, 30 minutos).
O princípio chave é replicar ≠ bacap. A replicação rapidamente mapeia os erros e a criptografia em todas as cópias. Bacap é uma cópia isolada, testada, potencialmente imutável.
2) Classificação de dados e níveis de criticidade
Divida os ativos em classes:- Tier-0 (essenciais): banco de dados de transação, pagamentos, contabilidade de balanços, segredos/PKI.
- Tier-1 (crítico): configs serviços, filas, artefatos CI/CD, registros de contêineres.
- Tier-2 (importantes): analista, relatórios, índices secundários, arquivos logísticos.
- Tier-3 (auxiliares): cachês, dados temporários (é possível restaurar a reconstrução).
Para cada classe, defina RPO/RTO, prazo de armazenamento, requisitos de imutabilidade e localização.
3) Estratégias de armazenamento: regra 3-2-1-1-0
3 cópias de dados (prod + 2 de reserva).
2 tipos diferentes de mídia/armazenamento.
1 cópia offsite (outra região/nuvem).
1 immutable/air-gap (WORM/Object Lock/Tape).
0 erros de recuperação (testes regulares).
4) Tipos de bacapes
Full é uma cópia completa. Devagar/caro, mas base para todas as estratégias.
Incremental é a diferença com o último backap. Ideal em volume.
Individual - diferença com o último full. Mais rápido, mais espaço.
Snapshot é o molde instantâneo do volume/disco (EBS/ZFF/LVM). É preciso um app-consent de fita (quiesce).
O PITR (Point-in-Time Recovery) é um backap + revistas básico (WAL/Binlog) para a hora exata/LSN.
Objeto/arquivo/imagem - sob tipos específicos de dados (imagens VM, S3, dampos BD).
5) Coerência dos bacapes
Crash-consistent: como depois de desligado repentinamente - adequado para FS estateless/revistas.
App-consulent: o aplicativo «congela» transações (fsfreeze/pré-post script) → integridade garantida.
Compatibilidade BD: ferramenta de bacap API (pgBackRest, XtraBackup), modos de hot-backup, congelamento de pontos de controle.
6) Criptografia, chaves e acesso
Criptografia at-rest e in-transit para todas as cópias.
Chaves em KMS/HSM, rotação de política (90/180 dias), chaves separadas em ambientes.
Divisão de responsabilidades: quem cria/remove bacapes ≠ quem pode decifrá-los/lê-los.
Não mantenha as chaves de decodificação no mesmo domínio de confiança das cópias de destino.
7) Cópias imutáveis e proteção contra ransomware
Object Lock/WORM (Compliance/Governance) com retino e Legal Hold.
Air-gap: armazenamento isolado/offline (fita, nuvem offline/conta).
Políticas de remoção «com ativação adiada», MFA-Delete, conta de backup separada, proibição de acesso público.
Verificação para malware/indicadores de comprometimento antes da montagem.
8) Frequência, horário e retenção
GFF (Grandfather-Father-Son): implementos diurnos, full/diff semanal, full mensal de armazenamento prolongado.
A RPO impõe frequência de incorporais e arquivos WAL/binlog (por exemplo, a cada 5 a 15 minutos).
Armazenamento: crítico - 35 a 90 dias + mensalidade de 12 a 36 meses (requisitos legais).
Os picos sazonais são pontos de referência individuais (antes das promoções/lançamentos).
9) Modelos DR. e cenários
Ativo-ativo: Ambas as regiões servem o tráfego. RTO mínimo, contrair dados requer uma política de conflito rigorosa.
Ative-Passive (quente/quente): quente - implantado e sincronizado (RTO minutos), quente - parcialmente pronto (RTO relógio).
Cold: armazenando cópias e Terraform/Anxibe/imagens, levantando sob demanda (RTO 24 dias +).
DRaaS: Orquestra provedora VM/redes/endereços em outra área.
10) Orquestração do feelover e prioridades de recuperação
Prioridade de lançamento: rede/VPN/DNS segredos/KMS base/cluster filas/aplicativos perímetro/CDN analista.
Automação: acrobacias/ações Runbook, Terraform/Ansible/Helm/ArgoCD perfis para o ambiente DR..
Dados: DB PITR → reindex/replica → dinheiro warm → iniciar serviços com bandeiras de compatibilidade de circuitos.
DNS/GSLB: rebaixamento do TTL com antecedência, cenários de mudança com validação.
11) Testes de recuperação (backup verificações)
Testes de restore programados: amostra de N% de bacapes, implantação na caixa de areia, verificações automáticas de circuitos/invariantes.
DR.-drill completo (game-day): desativar a região/AZ, verificar RTO/RPO em tráfego vivo (ou tráfego-sombra).
Testes de integridade: diretórios de hash, somas de controle, tentativas de leitura de todas as camadas (full + chain).
Relatório, tempo, passos, anomalias, tamanho da separação dos alvos, correção.
12) Práticas para tecnologias básicas
Bancos de dados
PostgreSQL: base backup + arquivo WAL (PITR), ferramentas de pgBackRest/Barman; slots de replicação, controle 'lsn'.
MySQL/MariaDB: Percona XtraBackup/Enterprise Backup, arquivamento binlog.
MongoDB: 'mongodump' para cópia lógica + snapshot para grandes conjuntos; Oplog para PITR.
Redis: RDB/AOF para críticos (se o Redis não é apenas kesh), mas mais frequentemente é uma reconstrução lógica a partir de origem + snapshot para acidentes.
Kafka/Pulsar: Bacap de metadados (ZK/Kraft/BookKeeper), disquetes de disco, espelhamento de topics/logs.
Kubernetes
etcd snapshot + Velero para recursos/volumes (CSI snapshots).
Backap de segredos/PKI separadamente (Vault snapshot).
Registro de imagem individual: polisis de armazenamento de artefatos (imutable tags).
BM e sistemas de arquivos
ZFF: 'zff snapshot' + 'zfs send | zstd | send-recv' incorporados, verificação 'scroub'.
LVM/EBS snapshots com script pré/post (app-consulent).
Armazenamento de objetos: versão + Object Lock.
13) Catalogar e controlar versões de bacapes
Catálogo (catalogação de metadados): o que, quando, o que foi feito, hash, chave KMS, proprietário, prazo de armazenamento.
Метки/теги: `env=prod|stage`, `system=db|k8s|vm`, `tier=0|1|2`, `retention=35d|1y`.
Pontos de controle «dourados» (Gold): antes das migrações/DDL/lançamentos em larga escala.
14) Observabilidade e métricas
Sucesso das tarefas:% de sucesso/falho, razões.
Tempo de bacape/recuperação, largura da janela.
RPO real: arquivos de arquivos (WAL/binlog) p95.
Integridade: proporção de cadeias testadas, erros de verificação.
Custo: quantidade de armazenamento por classe, taxa de dedução/compressão.
Preparação de DR.: frequência e resultado do exercício (pass/fail).
15) Políticas de acesso e complacência
Contas separadas/projetos de backap armazenamento; Acesso por NaC (não permitimos a remoção/criptografia do relatório prod).
Logs de acesso/alterações (auditoria trail), alertas para remoções em massa/alterações de retino.
Conformidade com GDPR (direito de remoção de arquivos vs), PCI DSS (criptografia, chaves, segmentação), reguladores locais.
16) Anti-pattern
«Não é preciso uma réplica».
Sem imutable/air-gap: um erro/malformação apaga tudo.
Os Bacaps estão na mesma conta/região que a prosa.
Nunca verificar a recuperação (o bacap «morto antes da verificação»).
Não há catalogação ou controle de versões → caos no acidente.
Chave de criptografia compartilhada para todos os ambientes.
Snapshots sem modo app-consistent para BD.
A janela do bacap se cruza com picos (afeta p99 e SLO).
17) Folha de cheque de implementação (0-60 dias)
0-10 dias
Inventário de sistemas/dados, classes de criticidade.
Expor alvos RPO/RTO por classe.
Ativar full + incremental para Tier-0/1, arquivo WAL/binlog.
Destravar bacapes: uma região/conta + ativar a criptografia do KMS.
11 a 30 dias
Configurar imutável para cópias críticas.
Digitar catalogação, marcas de formatação, relatórios; Alertas para falhas e revistas.
Primeiro DR.-drill: Restabelecer um serviço separado de bacape em ambiente isolado.
31 a 60 dias
Automatizar runbook: Terraform/Ansable/Helm perfis DR..
Testes de restore regulares (semana/mês) + cenário de full DR trimestral.
Otimizar custos: dedução/compressão/ciclos de vida de armazenamento.
18) Métricas de maturidade
Testes Restore: ≥ 1/ned para Tier-0 (seletivo), ≥ 1/m - cenário completo.
Immutable coverage для Tier-0/1 = 100%.
O p95 real RPO ≤ alvo (por exemplo, ≤ 15 min).
RTO real no exercício DR. ≤ alvo (por exemplo, ≤ 30 min).
Diretório de complicidade = 100% (cada bacap foi descrito e verificado).
Invident-to-restore: tempo desde a detecção até o início da recuperação.
19) Exemplos (snippets)
PostgreSQL - Política PITR (ideia):bash base backup once a day pgbackrest --stanza = prod --type = full backup archive WAL every 5 minutes pgbackrest --stanza = prod archive-push restore to time pgbackrest --stanza = prod restore --type = time --target =" 2025-11-03 14:00:00 + 02"
MySQL - Ciclo escalonado:
bash xtrabackup --backup --target-dir=/backup/full-2025-11-01 xtrabackup --backup --incremental-basedir=/backup/full-2025-11-01 --target-dir=/backup/inc-2025-11-02 xtrabackup --prepare --apply-log-only --target-dir=/backup/full-2025-11-01 xtrabackup --prepare --target-dir=/backup/full-2025-11-01 --incremental-dir=/backup/inc-2025-11-02
Kubernetes - Velero (ideias de manifestos):
yaml apiVersion: velero. io/v1 kind: Backup metadata: { name: prod-daily }
spec:
includedNamespaces: ["prod-"]
ttl: 720h storageLocation: s3-immutable
S3 Object Lock (por exemplo, políticas de ciclo de vida):
json
{
"Rules": [{
"ID": "prod-immutable",
"Status": "Enabled",
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}]
}
20) Comunicações e papéis operacionais
Incident Commander, Comms Lead, Ops Lead, DB Lead, Security.
Modelos de mensagens para steakhalders/reguladores/usuários.
Post-mortem com ações: onde perdeu minutos, onde melhorar a automação.
21) Conclusão
Um circuito confiável de bacapes e DR. não é «fazer uma cópia», mas sim um ciclo: classificação do objetivo RPO/RTO cópias multi e imutável runbook automatizado 'e restaurações e exercícios regulares. Mantenham o 3-2-1-1-0, separem a replicação dos bacapes, criptografem e isolem as chaves, documentem e verifiquem. Até o cisne negro se transformará num processo controlado, com tempo previsível de inatividade e perda mínima de dados.