Como elaborar um plano de recuperação de desastres

Eventos de interrupção de serviço podem acontecer a qualquer momento. A rede pode sofrer uma interrupção, o push de aplicativo mais recente pode introduzir um bug crítico ou, em casos raros, você pode até ter que lidar com um desastre natural.

Quando as coisas vão mal, é importante ter um plano de recuperação de desastres robusto, segmentado e bem testado. Neste artigo são discutidos princípios gerais para projetar e testar um plano de recuperação de desastres com o Google Cloud Platform.

Princípios básicos do planejamento de recuperação de desastres

Como um subconjunto do planejamento de continuidade dos negócios, o planejamento de recuperação de desastres começa com uma análise de impacto no negócio. A intenção dessa análise é elaborar duas métricas principais:

Reunidas, essas métricas têm um impacto aproximadamente assintótico nos resultados. Normalmente, quanto menores forem os valores de RTO e RPO, maior será o custo para a execução do aplicativo:

Proporção de custo para RTO/RPO
Figura 1: proporção de custo para RTO/RPO

Como os valores menores de RTO e RPO geralmente vêm com um aumento na complexidade, as despesas administrativas gerais associadas seguem uma curva semelhante. Com um aplicativo de alta disponibilidade, você pode gerenciar a distribuição entre dois data centers separados fisicamente, gerenciar a replicação e muito mais.

Por que o Google Cloud Platform?

O Google Cloud Platform pode reduzir muito os custos associados a RTO e RPO. Por exemplo, o planejamento tradicional de recuperação de desastres obriga você a considerar uma série de requisitos, incluindo os seguintes:

  • capacidade: aquisição de recursos suficientes para escalonar conforme necessário
  • segurança: segurança física para proteger os recursos
  • infraestrutura de rede: componentes de software, como firewalls e balanceadores de carga
  • suporte: técnicos especializados para realizar manutenção e resolver problemas
  • largura de banda: largura de banda adequada para carga de pico
  • instalações: infraestrutura física, incluindo equipamentos e energia

Ao fornecer uma solução altamente gerenciada em uma plataforma de produção de classe mundial, o Google Cloud Platform permite que você ignore a maioria ou todos esses fatores complicadores, removendo muitos custos comerciais do processo. Além disso, o foco do Google Cloud Platform em simplicidade administrativa significa que os custos de gerenciamento de um aplicativo complexo também são reduzidos.

O Google Cloud Platform oferece várias vantagens relevantes ao planejamento de recuperação de desastres, como as seguintes:

  • Uma rede global

    O Google tem uma das maiores e mais avançadas redes de computadores. A rede de backbone do Google tem milhares de quilômetros de cabos de fibra óptica, usa rede avançada definida por software e tem serviços de armazenamento em cache de ponta para oferecer desempenho rápido, consistente e escalonável.

  • Redundância

    Vários pontos de presença em todo o mundo significam uma redundância forte. Seus dados são automaticamente espelhados em dispositivos de armazenamento em vários locais.

  • Escalabilidade

    O Cloud Platform foi desenvolvido para ser escalonado como os próprios produtos do Google, mesmo quando há um enorme pico de tráfego. Os serviços gerenciados, como App Engine, autoescalador do Compute Engine e Cloud Datastore, proporcionam escalonamento automático que permite ao aplicativo crescer e encolher conforme necessário.

  • Segurança

    O modelo de segurança do Google é um processo completo, construído ao longo de 15 anos de experiência, sempre focado na segurança dos clientes nos aplicativos do Google, como o Gmail e o G Suite. Além disso, as equipes de engenharia do Google responsáveis pela confiabilidade do site supervisionam as operações dos sistemas da plataforma para garantir alta disponibilidade e evitar abuso de recursos.

  • Conformidade

    O Google passa por auditorias independentes de terceiros que verificam se o Cloud Platform está de acordo com os regulamentos e práticas recomendadas de segurança, privacidade e conformidade. O Cloud Platform está em conformidade com as melhores certificações, como ISO 27001, SOC 2/3 e PCI DSS 3.0.

  • Baixo custo

    O Google Cloud Platform aplica a Lei de Moore aos preços, ou seja, quando o custo do hardware diminui, o custo de vários componentes do Google Cloud Platform reflete fielmente essas diminuições.

Como projetar o plano de recuperação de desastres

Nesta seção são descritas as práticas recomendadas para elaborar um plano de recuperação de desastres para o serviço.

Projetar de acordo com as metas de recuperação

Ao projetar seu plano de recuperação de desastres, escolha estratégias segmentadas que tratam dos casos de uso específicos. Por exemplo, no caso de dados históricos orientados para a conformidade, você provavelmente não precisa de acesso rápido aos dados. No entanto, caso ocorra interrupção no serviço, talvez convenha recuperar os dados e o aplicativo o mais rápido possível.

Para orientações sobre como lidar com cenários comuns de recuperação de desastres usando o Google Cloud Platform, confira o Manual para recuperação de desastres, que propõe estratégias segmentadas de recuperação de desastres para vários casos de uso e apresenta implementações de exemplo no Google Cloud Platform para cada caso.

Projetar para recuperação completa

Não basta apenas ter um plano para fazer backup ou arquivamento dos dados. Verifique se o plano de recuperação de desastres aborda todo o processo de recuperação, incluindo backups, restaurações e limpeza.

Tornar específicas as tarefas

Quando chega a hora de executar o plano de recuperação de desastres, você não quer perder tempo adivinhando o que cada passo significa. Cada tarefa do plano de recuperação de desastres deve consistir em um ou mais comandos ou ações concretos e inequívocos. Por exemplo, "Executar o script de restauração" é muito genérico, enquanto que "Abrir Bash e executar /home/foo/restore.sh" é preciso e concreto.

Implementar medidas de controle

Implemente medidas para minimizar a probabilidade de ocorrência de um desastre. Adicione controles para evitar eventos de desastre e detectar problemas antes que eles ocorram. Por exemplo, você pode adicionar um monitor que envie um alerta quando um fluxo de destruição de dados, como um pipeline de exclusão, mostrar picos inesperados ou outras atividades incomuns. Esse monitor também pode eliminar os processos do pipeline se um determinado limite de exclusão for atingido, evitando uma situação catastrófica.

Integrar os mecanismos de segurança padrão

Certifique-se de que os controles de segurança que se aplicam ao ambiente de produção também sejam levados em conta no plano de recuperação.

Manter as licenças de software atualizadas

Para evitar surpresas desagradáveis ao executar uma recuperação, certifique-se de ter a devida licença de qualquer software que será implantando como parte do plano de recuperação de desastres. Consulte o fornecedor do software para orientação.

Configurar as imagens de máquina para refletir o RTO

Ao configurar a imagem da máquina que você usará para implantar novas instâncias, considere o efeito que a configuração terá na velocidade de implantação. Há um dilema entre a quantidade de pré-configuração da imagem, os custos de manutenção da imagem e a velocidade de implantação. Por exemplo, se a imagem da máquina tiver configuração mínima, as instâncias que a usam exigirão mais tempo para rodar porque precisam fazer o download e instalar quaisquer dependências. No entanto, se a imagem da máquina for muito pré-configurada, as instâncias que a usam rodarão mais rapidamente, mas você terá que atualizar a imagem com mais frequência.

Progressão de configurações de imagem
Figura 2: progressão de configurações de imagem

Para a maioria dos clientes, a abordagem certa será um ponto intermediário. Escolha a configuração que faz sentido para você, para o aplicativo e para o RTO necessário. Normalmente, quanto menor for o RTO, mais pré-configurada será a imagem.

Manter mais de um caminho de recuperação de dados

Não se acomode com um único plano de backup e restauração. É importante ter mais de um caminho de recuperação de dados para o caso de falha do caminho principal.

Testar o plano regularmente

Depois de adotar um plano de recuperação de desastres, você deve testá-lo regularmente, observando os problemas que surgirem e ajustando o plano adequadamente. Usando o Google Cloud Platform, é fácil testar cenários de recuperação a um custo mínimo:

  • Automatizar o aprovisionamento da infraestrutura com o Google Cloud Deployment Manager

    Você pode usar o Google Cloud Deployment Manager para automatizar o aprovisionamento de instâncias de máquina virtual e outra infraestrutura do Google Cloud Platform. Se você executa a produção localmente, precisa garantir que é capaz de aproveitar uma solução de monitoramento para disparar as ações de recuperação apropriadas.

  • Monitorar e depurar os testes com o StackDriver Logging e o StackDriver Monitoring

    O Google Cloud Platform tem excelentes ferramentas de geração de registros e monitoramento que você pode acessar por uma chamada de API. Elas permitem automatizar facilmente a implantação de cenários de recuperação reagindo às métricas. Ao projetar testes, assegure-se de ter recursos de monitoramento e alerta adequados, capazes de disparar as devidas ações de recuperação.

Como usar o Google Cloud Platform no plano de recuperação de desastres

O Google Cloud Platform dispõe de muitos produtos e recursos que podem ser usados para projetar e testar um plano de recuperação de desastres. Nesta seção, destacamos uma seleção dos produtos e recursos mais relevantes e mostramos brevemente como eles podem ser integrados a um plano de recuperação de desastres.

Backup e recuperação de dados

O Google Cloud Platform inclui recursos para ajudá-lo a fazer backup e restauração dos dados.

Google Cloud Storage

O Google Cloud Storage fornece um ponto de extremidade durável para backup ou arquivamento de dados não estruturados e dados binários. O Google Cloud Storage oferece quatro classes de armazenamento (Multi-Regional Storage, Regional Storage, Nearline Storage e Coldline Storage) com diferentes características de disponibilidade e latência para as necessidades específicas de backup ou arquivamento. Todas as classes de armazenamento oferecem o mesmo alto nível de durabilidade:

  • Multi-Regional Storage é útil para armazenar dados que exigem acesso de baixa latência ou dados acessados frequentemente (objetos "quentes"), como o conteúdo de veiculação do site, cargas de trabalho interativas ou aplicativos de jogos e de dispositivos móveis. Esta classe de armazenamento mantém cópias georredundantes dos dados, isto é, os dados são armazenados em várias áreas geograficamente distintas.
  • Regional Storage também é útil para armazenar dados que exigem acesso de baixa latência ou dados acessados frequentemente. Enquanto esta e todas as classes armazenam cópias redundantes dos dados, apenas a classe Multi-Regional Storage acima é georredundante.
  • Nearline Storage é útil para os dados que costumam ser acessados menos de uma vez por mês, especialmente quando não há necessidades dos níveis mais altos de disponibilidade. Esta classe de armazenamento pode ser útil como parte de uma solução de armazenamento de várias camadas, em que cada camada sucessiva representa uma forma mais fria de armazenamento.
  • Coldline Storage é uma solução de baixo custo e baixa disponibilidade, ideal para arquivar dados que costumam ser acessados menos de uma vez por ano, como dados relacionados a conformidade ou dados armazenados principalmente para análise de histórico futura. Em linhas gerais, Coldline Storage é análoga ao backup em fita e pode ser usada para qualquer caso de uso que costuma usar fita. A principal diferença entre Coldline Storage e o backup em fita é que a Coldline pode ser acessada imediatamente quando necessário e usa as mesmas interfaces que outras classes do Google Cloud Storage.

Cloud SQL

Google Cloud SQL é um banco de dados MySQL distribuído. Ele tem a maioria dos recursos e funcionalidades do MySQL, além dos benefícios padrão do Google Cloud Platform, como replicação de dados incorporada às zonas. O Cloud SQL é particularmente útil como hot standby do banco de dados MySQL. Se você também ativa backups automáticos e geração de registros binários na instância do Cloud SQL, poderá executar restaurações pontuais dos dados do MySQL com facilidade.

BigQuery

BigQuery é um serviço de armazenamento de dados corporativos rápido, econômico e totalmente gerenciado para análise de dados em grande escala. No caso de um desastre, o BigQuery é um excelente lugar para redirecionar alto volume de registros gerados, reduzindo muitas complexidades das estratégias padrão de agregação de registro baseadas em computação. Enviar registros ao BigQuery é fácil:

  • Se todo o aplicativo é executado no Google Cloud Platform, você pode configurar a saída do Stackdriver Logging para fazer streaming para o BigQuery, basta clicar em uma caixa de seleção.
  • Se você usa uma ferramenta como o Fluentd para enviar os registros a uma solução personalizada, local e agregadora de registros, a solução tem a mesma objetividade: basta você definir uma configuração diferente no plano de recuperação de desastres para enviar os registros ao BigQuery. Isso permite manter registros centralizados sem precisar recriar a solução local de geração de registros nas instâncias de máquina virtual.

Por ter sido projetado para analisar grandes conjuntos de dados, o BigQuery é uma solução ideal para a realização de análises de registros, simplificando o processo de diagnóstico de problemas causadores de desastres. Caso você queira exportar dados de registros posteriormente, o BigQuery permite exportar para os formatos CSV, JSON e Avro.

O BigQuery também pode ser usado como solução de arquivamento autônoma.

Backup e recuperação de aplicativos

O Google Cloud Platform inclui recursos que o ajudam a fazer backup e restauração do seu aplicativo.

Balanceamento de carga HTTP

O Google Compute Engine fornece um serviço de balanceamento de carga HTTP que pode ser usado para failover automático caso uma instância de máquina virtual fique inativa. O balanceador de carga HTTP recebe o tráfego por meio de um único endereço IP externo e global, e o distribui de acordo com as regras de encaminhamento definidas por você. Em um contexto de recuperação de desastres, esse serviço pode substituir a infraestrutura local de balanceamento de carga e roteamento baseada em hardware, roteando o tráfego para as instâncias em espera do Google Compute Engine.

Instantâneos de instância

Os instantâneos de instância do Google Compute Engine permitem criar backups baseados em diferença dos discos permanentes conectados à instância, incluindo volumes de inicialização. Você pode criar novos discos permanentes a partir de instantâneos, o que é útil para fazer backup de dados, recriar um disco permanente que tenha sido perdido ou copiar um disco permanente. É possível adotar instantâneos para todos os tipos de disco permanente. Os instantâneos estão disponíveis globalmente, para que você possa restaurar em qualquer zona de qualquer região.

Cloud DNS

O Google Cloud DNS fornece veiculação DNS de alto volume e alto desempenho, permitindo que você forneça acesso confiável e de baixa latência ao seu serviço de qualquer lugar do mundo por meio da rede de servidores de nomes anycast do Google. Se o caso de uso não permitir o aproveitamento do serviço de balanceamento de carga HTTP do Compute Engine, você ainda poderá usar o Cloud DNS para gerenciar o failover do aplicativo manualmente, com a ferramenta gcloud, ou de modo programático, usando a API Cloud DNS.

Teste e implantação do plano de recuperação

O Google Cloud Platform fornece várias ferramentas úteis para testar, depurar e implantar o plano de recuperação de desastres.

Stackdriver Logging

O Stackdriver Logging coleta e armazena registros de aplicativos e serviços em execução no Google Cloud Platform. É possível ver os registros no Console do Google Cloud Platform ou fazer streaming deles para o Google Cloud Storage, o Google BigQuery ou o Google Cloud Pub/Sub.

Stackdriver Monitoring

O Stackdriver Monitoring fornece painéis e alertas para os aplicativos. O Stackdriver Monitoring permite analisar as métricas de desempenho de vários serviços do Google Cloud Platform e, por meio do agente de monitoramento, fornece ganchos de monitoramento específicos ao serviço para muitos serviços conhecidos de código aberto. Você também pode usar a Stackdriver Monitoring API para acessar dados de monitoramento e criar métricas personalizadas.

Cloud Deployment Manager

Google Cloud Deployment Manager é um serviço de gerenciamento de infraestrutura que simplifica a automatização da criação e da implantação de recursos do Google Cloud Platform. Basta criar um modelo estático ou dinâmico que descreva a configuração do ambiente do Google Cloud Platform e usar o Deployment Manager para criar esses recursos como uma única implantação.

Conectividade remota

Você também pode usar o Google Cloud Platform como uma solução de recuperação remota para o ambiente de produção local ou a partir de outro serviço de nuvem. O Google Cloud Platform fornece vários serviços que podem ajudar a garantir uma conexão perfeita entre o ambiente de produção e a nuvem do Google.

Cloud Interconnect

O Google Cloud Interconnect permite conectar a infraestrutura ao Google usando conexões de nível empresarial à borda da rede do Google. As conexões são oferecidas pelos provedores de serviço do Cloud Interconnect. A conexão com o Cloud Interconnect permitirá que a sua infraestrutura se conecte ao Google Cloud Platform com alta disponibilidade e baixa latência.

Peering direto

Cumprindo os requisitos técnicos de peering do Google, você pode estabelecer uma conexão direta de peering entre a rede da sua empresa e a do Google. Com essa conexão, é possível estabelecer tráfego de Internet entre sua rede e a do Google em um dos locais da nossa rede de borda de amplo alcance.

Compute Engine VPN

O Google Compute Engine VPN permite conectar a rede existente à rede do Compute Engine usando uma conexão IPsec. Alternativamente, você pode usar o Compute Engine VPN para conectar dois gateways VPN do Compute Engine diferentes.

Conclusão

Com a adoção de um plano de recuperação de desastres bem projetado e bem testado, você pode garantir que o impacto sobre os resultados do negócio seja mínimo em caso de uma catástrofe. Seja qual for a necessidade de recuperação de desastres, o Google Cloud Platform tem uma seleção robusta, flexível e econômica de produtos e recursos que você pode usar para criar ou aumentar a solução ideal para seu caso.

Próximas etapas

Conferir o manual para recuperação de desastres
O Manual para recuperação de desastres examina alguns cenários comuns de recuperação de desastres e fornece aconselhamento segmentado para a implementação de soluções robustas usando o Google Cloud Platform.
Criar um app escalonável e resiliente no Google Cloud Platform
O artigo Criar aplicativos da Web escalonáveis e resilientes orienta você em uma implementação de aplicativo de amostra e dá instruções de como tornar o aplicativo escalonável, durável e econômico.
Fazer uma experiência com algumas implementações de exemplo
Os artigos Como realizar backup dinâmico do MySQL com o Percona XtraBackup e o Cloud Storage e Como usar o Google Cloud Storage para recuperação de desastres do Cassandra apresentam estratégias de recuperação completas para MySQL e Cassandra, respectivamente.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…