Minha estratégia de recuperação de desastres de código aberto para home office
Na era do trabalho remoto, é mais importante do que nunca ter um plano de recuperação de desastres para a infraestrutura doméstica.
Trabalhei em casa durante anos e, com a crise da COVID-19, milhões de pessoas juntaram-se a mim. Professores, contadores, bibliotecários, corretores da bolsa... você escolhe, esses trabalhadores agora trabalham em tempo integral ou parcial em suas casas. Mesmo depois de a crise do coronavírus terminar, muitos continuarão a trabalhar em casa, pelo menos a tempo parcial. Mas o que acontece quando o computador do trabalhador doméstico falha? Quer o dispositivo seja um smartphone, tablet, laptop ou desktop – e quer o problema seja hardware ou software – o resultado pode ser dias de trabalho perdidos e muita frustração.
Este artigo explora como garantir a computação doméstica de alta disponibilidade. O software de código aberto é fundamental. Ele oferece independência de dispositivos para que os funcionários domésticos possam alternar facilmente entre dispositivos primários e de backup. Mais importante ainda, dá aos utilizadores o controlo do seu ambiente, que é o caminho mais seguro para a alta disponibilidade. Essa estratégia simples de alta disponibilidade, baseada em código aberto, é fácil de modificar de acordo com suas necessidades.
Estratégias diferentes para situações diferentes
Preciso enfatizar um ponto desde o início: diferentes funções exigem soluções diferentes. Alguns trabalhadores em casa podem usar smartphones ou tablets, enquanto outros dependem de laptops e outros ainda exigem estações de trabalho desktop de alta potência. Alguns podem tolerar uma interrupção de horas ou até dias, enquanto outros devem estar disponíveis sem interrupção. Alguns usam dispositivos fornecidos pela empresa e outros devem fornecer os seus próprios. Por último, alguns trabalhadores domésticos armazenam os seus dados na nuvem da sua empresa, enquanto outros gerem os seus dados por conta própria.
Obviamente, nenhuma estratégia única de alta disponibilidade serve para todos. Minha estratégia provavelmente não é “a resposta” para você, mas espero que ela o leve a pensar sobre os desafios envolvidos (se ainda não o fez) e apresente algumas idéias para ajudá-lo a se preparar antes que ocorra um desastre.
Definindo alta disponibilidade
Qualquer que seja o dispositivo de computação que um trabalhador doméstico utilize, a alta disponibilidade (HA) envolve cinco componentes interoperáveis:
- Hardware do dispositivo
- Software de sistema
- Capacidade de comunicação
- Formulários
- Dados
O plano de HA deve abranger todos os cinco componentes para ter sucesso. A falta de qualquer componente causa falha de HA.
Por exemplo, ontem à noite trabalhei em uma planilha baseada em nuvem. Se meu link de comunicação falhasse e eu não conseguisse acessar meus dados na nuvem, isso interromperia meu trabalho no projeto... mesmo que eu tivesse todos os outros componentes de alta disponibilidade disponíveis em um computador de backup.
Claro, existem exceções. Digamos que a planilha da noite passada foi armazenada no meu computador local. Se esse dispositivo falhasse, eu poderia continuar trabalhando enquanto tivesse um computador de backup com meus dados, mesmo que não tivesse acesso à Internet.
Para ter sucesso como trabalhador doméstico de alta disponibilidade, você deve primeiro identificar os componentes necessários para o seu trabalho. Depois de fazer isso, desenvolva um plano para continuar trabalhando mesmo se um ou mais componentes falharem.
Substituição duplicada
Uma abordagem é criar um substituto duplicado. Ter exatamente o mesmo hardware, software, comunicações, aplicativos e dados disponíveis em um dispositivo de backup garante que você poderá trabalhar se o primário falhar. Essa abordagem é simples, embora possa custar mais manter um backup completo disponível.
Para economizar, você pode compartilhar computadores com sua família ou colegas de apartamento. Um backup compartilhado é sempre mais econômico do que um backup dedicado, desde que você tenha prioridade máxima no computador compartilhado quando precisar dele.
Substituição funcional
A alternativa à substituição duplicada é uma substituição funcional. Você substitui um equivalente funcional para o componente com falha. Digamos que estou trabalhando no meu laptop doméstico e me conectando por meio do WiFi doméstico. Minha conexão com a internet falha. Talvez eu possa conectar meu computador ao telefone e usar a rede celular. Consigo HA substituindo uma tecnologia por uma equivalente.
Conheça seus requisitos
Além dos cinco componentes de HA, certifique-se de identificar quaisquer requisitos especiais que você tenha. Por exemplo, se a mobilidade for importante, talvez seja necessário substituir um laptop quebrado por outro laptop, não por um desktop.
HA significa identificar todas as funções que você precisa e garantir que seu plano de HA cubra todas elas.
Tempo, planejamento e testes
Você também deve definir o prazo para recuperação. Você deve ser capaz de continuar seu trabalho imediatamente após uma falha? Ou você tem o luxo de ter algum tempo de inatividade durante o qual pode reagir?
Quanto maior o tempo de inatividade permitido, mais opções você terá. Por exemplo, se você pudesse faltar ao trabalho por vários dias, você poderia simplesmente levar um dispositivo quebrado até uma oficina. Não há necessidade de backup.
Neste artigo, por "alta disponibilidade", quero dizer voltar ao trabalho muito rapidamente após uma falha, talvez menos de uma hora. Isso normalmente requer que você tenha acesso a um dispositivo de backup que esteja imediatamente disponível e pronto para uso. Embora possa haver ocasiões em que você possa recuperar seu dispositivo principal em questão de minutos (por exemplo, contornando uma falha ou substituindo rapidamente uma peça de hardware ou software com defeito), um computador de backup normalmente faz parte do plano de alta disponibilidade.
HA requer planejamento e preparação. “Improvisar” não é suficiente; certifique-se de que seu plano de backup funcione testando-o com antecedência.
Por exemplo, digamos que seus dados residem na nuvem. Esses dados podem ser acessados de qualquer lugar, de qualquer dispositivo. Isso parece ideal. Mas e se você esquecer que há alguns dados pequenos, mas vitais, armazenados localmente no seu computador com defeito? Se você não conseguir acessar esses dados essenciais, seu plano de HA falhará. Um ensaio revela problemas como este.
Smartphones como backup
A maioria de nós, profissionais de engenharia e suporte de software, usamos laptops e desktops em casa. Smartphones e tablets são complementos úteis, mas não estão no centro do que fazemos.
Os principais motivos são o tamanho da tela e o teclado. Para o trabalho de software, você não pode atingir o mesmo nível de produtividade com uma tela pequena e um teclado touchscreen que conseguiria com um monitor grande e um teclado físico.
Se você normalmente usa um laptop ou desktop e opta por um smartphone ou tablet como backup, teste-o com antecedência para ter certeza de que é suficiente. Aqui está um exemplo do tipo de sutileza que, de outra forma, poderia enganá-lo. A maioria das plataformas de videoconferência são executadas em smartphones e laptops ou desktops, mas seus aplicativos móveis podem diferir em aspectos pequenos, mas importantes. E mesmo quando a plataforma oferece uma experiência equivalente (como o Jitsi oferece, por exemplo), pode ser estranho compartilhar gráficos, apresentações de slides e documentos, usar um recurso de bate-papo e assim por diante, apenas devido à diferença de fatores de forma móvel em comparação com uma grande tela de computador e uma variedade de opções de entrada.
Os smartphones são dispositivos de backup convenientes porque quase todo mundo tem um. Mas se você designar o seu como substituto funcional, tente usá-lo um dia para trabalhar para verificar se ele atende às suas necessidades.
Acessibilidade de dados
O acesso aos dados é vital quando o seu dispositivo principal falha. Mesmo se você fizer backup de seus dados de trabalho, se um dispositivo falhar, você também poderá precisar de credenciais para acesso VPN ou SSH, software especializado ou formas de dados que podem não ser armazenadas junto com seus documentos e diretórios diários. Ao criar um esquema de backup, você precisa incluir todos os dados importantes e armazenar chaves de criptografia e outras informações de acesso com segurança.
A melhor maneira de manter seus dados de trabalho seguros é usar seu próprio serviço. Executar o Nextcloud ou o Sparkleshare é fácil e a hospedagem é barata. Ambos são automatizados: os arquivos que você coloca em um diretório especialmente designado são sincronizados com o seu servidor. Não se trata exatamente de construir sua própria nuvem, mas é uma ótima maneira de aproveitar a nuvem para seus próprios serviços. Você pode simplificar o processo de backup com ferramentas como Syncthing, Bacula ou rdiff-backup.
O armazenamento em nuvem permite que você acesse dados de qualquer dispositivo e em qualquer local, mas o armazenamento em nuvem só funcionará se você tiver um caminho de comunicação em tempo real após um evento de falha. E nem todo armazenamento em nuvem atende às especificações de privacidade e segurança de todos os projetos. Se o seu local de trabalho tiver uma solução de backup em nuvem, passe algum tempo aprendendo sobre os serviços do fornecedor de nuvem e descubra qual nível de disponibilidade ele promete. Verifique seu histórico em alcançá-lo. E certifique-se de criar uma maneira alternativa de acessar sua nuvem caso seu link de comunicação primário falhe.
Backups locais
Se você armazenar seus dados em um dispositivo local, será responsável por fazer backup e recuperá-los. Nesse caso, faça backup dos seus dados em um dispositivo alternativo e verifique se você pode restaurá-los dentro do prazo aceitável. Este é o seu tempo de recuperação.
Você também precisará proteger esses dados e atender a quaisquer requisitos de privacidade especificados por seu empregador.
Perda aceitável
Considere quantos dados você pode perder em caso de interrupção. Por exemplo, se você fizer backup de seus dados todas as noites, poderá perder no máximo um dia de trabalho (todo o trabalho concluído durante o dia anterior ao backup noturno). Esta é a oportunidade dos seus dados de backup.
O código aberto oferece muitos aplicativos gratuitos para backup e recuperação de dados locais. Geralmente, os mesmos aplicativos usados para backups remotos também podem ser aplicados a planos de backup locais, então dê uma olhada nos artigos do tutorial Advanced Rsync ou Syncthing aqui em Opensource.com.
Muitos preferem uma estratégia de dados que combine armazenamento local e em nuvem. Armazene seus dados localmente e use a nuvem como backup (em vez de trabalhar na nuvem). Ou faça o contrário (embora automatizar a nuvem para enviar backups para você seja mais difícil do que automatizar sua máquina local para enviar backups para a nuvem). Armazenar seus dados em dois locais separados fornece redundância geográfica aos dados, o que é útil caso um dos sites fique indisponível.
Com um pouco de reflexão, você pode elaborar um plano simples para acessar seus dados independentemente de qualquer interrupção.
Minha estratégia de alta disponibilidade
Como exemplo prático, descreverei minha própria abordagem de HA. Minhas metas são um tempo de recuperação de uma hora ou menos e a pontualidade dos dados de backup em um dia.
(Howard Fosdick, CC BY-SA 4.0)
Hardware
Eu uso um smartphone Android para chamadas telefônicas e audioconferências. Posso acessar um telefone alternativo de outro membro da família se meu principal falhar.
Infelizmente, o tamanho pequeno e o teclado sensível ao toque do meu telefone significam que não posso usá-lo como computador de backup. Em vez disso, confio em alguns computadores desktop genéricos que possuem peças padrão e intercambiáveis. Você pode manter esse hardware facilmente com este guia prático simples e gratuito. Você não precisa de nenhuma experiência em hardware.
O software de código aberto torna minha estratégia multibox acessível. Ele funciona com tanta eficiência que até mesmo computadores com 10 anos de idade funcionam bem como backups para trabalhos típicos de escritório. Os meus são desktops dual-core com 4 GB de RAM e qualquer disco que seja verificado de forma limpa. Eles são tão baratos que muitas vezes você pode obtê-los gratuitamente em centros de reciclagem. (Em meu trabalho de caridade, descobri que muitas pessoas os consideram inadequados para executar software proprietário atual, mas na verdade eles estão em perfeitas condições de funcionamento devido a um sistema operacional flexível como o Linux.)
Outra forma de economizar é designar o computador de outro membro da família para seus backups compartilhados.
Softwares e aplicativos de sistemas
Executar software de código aberto sobre esse hardware genérico me permite obter vários benefícios. Primeiro, a flexibilidade do software de código aberto permite-me resolver qualquer possível falha de software. Por exemplo, com comandos simples do sistema operacional, posso copiar, mover, fazer backup e recuperar o sistema operacional, os aplicativos e os dados em partições, discos ou computadores. Não preciso me preocupar com restrições de software, dependência de fornecedor, formatos de arquivo de backup proprietários, restrições de licenciamento ou ativação ou taxas extras.
Outro benefício do código aberto é que você controla seu sistema operacional. Se você não tiver controle sobre seu próprio sistema, poderá estar sujeito a reinicializações forçadas, atualizações inesperadas e indesejadas e atualizações forçadas. Meu parente já enfrentou esses problemas mais de uma vez. Sem seu conhecimento ou consentimento, seu computador lançou repentinamente uma atualização forçada do Windows 7 para o Windows 10, o que lhe custou três dias de perda de renda (e de uma frustração indescritível). A lição: a agenda do seu fornecedor pode não coincidir com a sua.
Todos os sistemas operacionais possuem bugs. A diferença é que o software de código aberto não obriga você a comê-los.
Classificação de dados
Eu uso técnicas muito simples para tornar meus dados altamente disponíveis.
Não posso usar serviços em nuvem para meus dados devido a requisitos de privacidade. Em vez disso, minha "cópia mestre" de dados reside em um disco conectado por USB. Eu o conecto em qualquer um dos vários computadores. Após cada sessão, faço backup de todos os dados alterados no computador que usei.
Claro, esta abordagem só é viável se os seus backups forem executados rapidamente. Para a maioria dos trabalhadores domésticos, isso é fácil. Tudo o que você precisa fazer é separar seus dados por tamanho e com que frequência você os atualiza.
Isole arquivos grandes como fotos, áudio e vídeo em pastas ou partições separadas. Certifique-se de fazer backup apenas dos arquivos novos ou modificados, e não dos itens mais antigos dos quais já foi feito backup.
Grande parte do meu trabalho envolve suítes de escritório. Eles geram arquivos pequenos, então isolo cada projeto em sua própria pasta. Por exemplo, armazenei as duas dúzias de arquivos que usei para escrever este artigo em um único subdiretório. Fazer backup é tão simples quanto copiar essa pasta.
Pensar um pouco na segregação de dados e fazer backup apenas dos arquivos modificados garante backups rápidos e fáceis para a maioria dos trabalhadores domésticos. Minha abordagem é simples; funciona melhor se você trabalhar apenas em alguns projetos em uma sessão. E posso tolerar perder até um dia de trabalho. Você pode automatizar facilmente um esquema de backup mais refinado para você mesmo.
Para desenvolvimento de software, adoto uma abordagem totalmente diferente. Eu uso o controle de versão de software, que lida de forma transparente com todos os problemas de backup de software para mim e coordena com outros desenvolvedores. Meu planejamento de HA nesta área concentra-se apenas em garantir que posso acessar a ferramenta online.
Comunicações
Como muitos usuários domésticos, me comunico por meio de uma rede de celular e da Internet. Se minha internet cair, posso usar a rede celular conectando meu laptop ao meu smartphone Android.
Aprendendo com o fracasso
Usando minha estratégia há 15 anos, como me saí? Que falhas experimentei e como elas aconteceram?
- Queima da placa-mãe: Um dia, meu computador não ligou. Simplesmente movi meu disco externo de "dados mestres" USB para outro computador e usei-o. Não perdi nenhum dado. Depois de alguma investigação, determinei que era uma falha na placa-mãe, então descartei o computador e usei-o como peças.
- Falha na unidade: um disco interno falhou enquanto eu estava trabalhando. Acabei de mover meu disco mestre USB para um computador de backup. Perdi 10 minutos de atualizações de dados. Depois do trabalho, criei um novo disco de inicialização copiando um de outro computador – flexibilidade que só software de código aberto oferece. Usei o computador afetado no dia seguinte.
- Atualização fatal de software: uma atualização causou uma falha em um importante serviço de login. Mudei para um computador de backup onde ainda não havia aplicado a atualização fatal. Não perdi dados. Depois do trabalho, procurei ajuda para esse problema e resolvi em uma hora.
- Monitor esgotado: meu monitor falhou. Acabei de trocar uma tela de backup e continuei trabalhando. Isso levou 10 minutos. Depois do trabalho, determinei que o problema era um capacitor queimado, então reciclei o monitor.
- Queda de energia: Agora, aqui está uma situação que eu não planejei! Um tornado cortou a energia elétrica de toda a nossa cidade por dois dias. Aprendi que se deve pensar em todas contingências possíveis — incluindo locais de trabalho alternativos.
Faça seu plano
Se você trabalha em casa, precisa considerar o que acontecerá quando seu computador doméstico falhar. Caso contrário, você poderá passar por dias de trabalho frustrantes enquanto se esforça para resolver o problema.
O software de código aberto é a chave. Ele funciona com tanta eficiência em computadores mais antigos e mais baratos que eles se tornam máquinas de backup acessíveis. Ele oferece independência de dispositivos e garante que você possa projetar soluções que funcionem melhor para você.
Para a maioria das pessoas, garantir alta disponibilidade é muito simples. O truque é pensar nisso com antecedência. Crie um plano e teste-o.