Migrar para o Google Cloud: transferir grandes conjuntos de dados

Last reviewed 2023-11-13 UTC

Para muitos clientes, a primeira etapa na adoção de um produto do Google Cloud é colocar os dados nessa plataforma. Neste documento, há uma explicação sobre esse processo, desde o planejamento de uma transferência de dados até o uso de práticas recomendadas na implementação de um plano.

A transferência de grandes conjuntos de dados envolve a criação da equipe certa, o planejamento antecipado e o teste do plano de transferência antes de implementá-lo em um ambiente de produção. Ainda que essas etapas possam levar tanto tempo quanto a transferência em si, essas preparações podem minimizar a interrupção das operações comerciais durante a transferência.

Este documento faz parte da seguinte série de várias partes sobre a migração para o Google Cloud:

O que é transferência de dados?

Para os fins deste documento, a transferência de dados é o processo de mover dados sem transformá-los. Por exemplo, mover arquivos (no estado em que estão) em objetos.

A transferência de dados não é tão simples quanto parece

É tentador pensar na transferência de dados como uma sessão de FTP gigante, em que você coloca seus arquivos em um lado e espera que eles saiam do outro. No entanto, na maioria dos ambientes corporativos, o processo de transferência envolve muitos fatores, como os seguintes:

  • Elaborar um plano de transferência que considere o tempo administrativo, incluindo tempo para decidir sobre uma opção de transferência, receber aprovações e lidar com problemas imprevistos.
  • Coordenar as pessoas na sua organização, como a equipe que executa a transferência, o time que aprova as ferramentas e a arquitetura e as partes interessadas nos negócios que estão preocupadas com o valor e as interrupções que a transferência de dados pode trazer.
  • Escolher a ferramenta de transferência certa com base nos seus recursos, custo, tempo e outras considerações sobre o projeto.
  • Superar desafios de transferência de dados, incluindo problemas de "velocidade da luz" (largura de banda insuficiente), mover conjuntos de dados em uso ativo, proteger e monitorar os dados durante a movimentação deles e garantir que sejam transferidos.

O objetivo deste documento é ajudar você a dar os primeiros passos em uma iniciativa de transferência bem-sucedida.

A lista a seguir inclui recursos para outros tipos de projetos de transferência de dados não abordados neste documento:

Etapa 1: como montar sua equipe

O planejamento de uma transferência normalmente requer pessoal com os seguintes papéis e responsabilidades:

  • Ativação dos recursos necessários para uma transferência: administradores de armazenamento, TI e rede, um patrocinador executivo e outros consultores (por exemplo, uma equipe de Conta do Google ou parceiros de integração)
  • Aprovação da decisão de transferência: proprietários ou administradores de dados (para políticas internas sobre quem pode transferir quais dados), consultores jurídicos (para regulamentos relacionados a dados) e um administrador de segurança (para políticas internas sobre como o acesso a dados está protegido)
  • Execução da transferência: um líder de equipe, um gerente de projeto (para executar e rastrear o projeto), uma equipe de engenharia e recebimento e envio no local (para receber o hardware dos aparelhos)

É fundamental identificar quem é o proprietário das responsabilidades anteriores do projeto de transferência e incluí-lo nas reuniões de planejamento e decisão, quando for adequado. O planejamento organizacional insatisfatório geralmente é a causa de falhas nas iniciativas de transferência.

Coletar os requisitos do projeto e a opinião dessas partes interessadas pode ser um desafio, mas criar um plano e estabelecer papéis e responsabilidades claros compensa. Não é esperado que você saiba todos os detalhes dos seus dados. A montagem de uma equipe oferece mais informações sobre as necessidades da empresa. É uma prática recomendada identificar possíveis problemas antes de investir tempo, dinheiro e recursos para concluir as transferências.

Etapa 2: como coletar requisitos e recursos disponíveis

Ao criar um plano de transferência, recomendamos que você primeiro colete requisitos para sua transferência de dados e, em seguida, defina uma opção de transferência. Para coletar requisitos, use o seguinte processo:

  1. Identifique quais conjuntos de dados você precisa mover.
    • Selecione ferramentas como o Data Catalog para organizar seus dados em agrupamentos lógicos que são movidos e usados juntos.
    • Trabalhe com equipes da sua organização para validar ou atualizar esses agrupamentos.
  2. Identifique quais conjuntos de dados é possível mover.
    • Considere se alguns fatores regulatórios, de segurança ou outros proíbem a transferência de alguns conjuntos de dados.
    • Se você precisar transformar alguns dos seus dados antes de movê-los (por exemplo, para remover dados confidenciais ou reorganizá-los), considere usar um produto de integração de dados como Dataflow ou Cloud Data Fusion, ou um produto de orquestração de fluxo de trabalho, como Cloud Composer.
  3. Para conjuntos de dados móveis, determine para onde transferir cada conjunto de dados.
    • Registre a opção de armazenamento selecionada para armazenar seus dados. Normalmente, o sistema de armazenamento de destino no Google Cloud é o Cloud Storage. Mesmo que você precise de soluções mais complexas depois que seus aplicativos estiverem funcionando, o Cloud Storage é uma opção de armazenamento escalonável e durável.
    • Entenda quais políticas de acesso a dados precisam ser mantidas após a migração.
    • Determine se você precisa armazenar esses dados em regiões específicas.
    • Planeje como estruturar esses dados no destino. Por exemplo, eles serão iguais ou diferentes da origem?
    • Determine se você precisa transferir dados regularmente.
  4. Para conjuntos de dados móveis, determine quais recursos estão disponíveis para movê-los.
    • Tempo: quando a transferência precisa ser concluída?
    • Custo: qual é o orçamento disponível para a equipe e os custos de transferência?
    • Pessoal: quem está disponível para executar a transferência?
    • Largura de banda (para transferências on-line): quanto da largura de banda disponível para o Google Cloud pode ser alocada para uma transferência e por qual período?

Antes de avaliar e selecionar opções de transferência na próxima fase do planejamento, recomendamos que você avalie se alguma parte do seu modelo de TI pode ser melhorada, como governança de dados, organização e segurança.

Seu modelo de segurança

Muitos membros da equipe de transferência podem receber novos papéis na sua organização do Google Cloud como parte do projeto de transferência de dados. O planejamento de transferência de dados é um ótimo momento para analisar as permissões de gerenciamento de identidade e acesso (IAM) e as práticas recomendadas para usar o IAM com segurança. Esses problemas podem afetar a forma como você concede acesso ao seu armazenamento. Por exemplo, é possível colocar limites rígidos no acesso de gravação a dados que foram arquivados por motivos regulatórios, mas permitir que muitos usuários e aplicativos gravem dados no ambiente de teste.

Sua organização do Google Cloud

A maneira como você estrutura seus dados no Google Cloud depende de como você planeja usar a plataforma. Armazenar os dados no mesmo projeto do Google Cloud em que você executa o aplicativo pode funcionar, mas talvez não seja o ideal do ponto de vista do gerenciamento. Alguns desenvolvedores podem não ter o privilégio de visualizar os dados de produção. Nesse caso, um desenvolvedor pode criar código em dados de amostra, enquanto uma conta de serviço com privilégios pode acessar dados de produção. Portanto, convém manter todo o conjunto de dados de produção em um projeto separado do Google Cloud e usar uma conta de serviço para permitir o acesso aos dados de cada projeto de aplicativo.

O Google Cloud é organizado com base em projetos. Esses projetos podem ser agrupados em pastas, e as pastas podem ser agrupadas na sua organização. Os papéis são estabelecidos no nível do projeto, e as permissões de acesso são adicionadas a esses papéis nos níveis do bucket do Cloud Storage. Essa estrutura está alinhada à estrutura de permissões de outros provedores de armazenamento de objetos.

Veja as práticas recomendadas para estruturar uma organização do Google Cloud em Decidir uma hierarquia de recursos para sua zona de destino do Google Cloud.

Etapa 3: como avaliar suas opções de transferência

Para avaliar suas opções de transferência de dados, a equipe de responsável precisa considerar vários fatores, incluindo os seguintes:

  • Custo
  • Tempo de transferência
  • Opções de transferência on-line e off-line
  • Ferramentas e tecnologias de transferência
  • Segurança

Custo

Esta é a maior parte dos custos associados à transferência de dados:

  • Custos de rede
    • A entrada para o Cloud Storage é gratuita. No entanto, se você estiver hospedando seus dados em um provedor de nuvem pública, poderá pagar uma taxa de saída e possíveis custos de armazenamento (por exemplo, operações de leitura) para transferir seus dados. Essa cobrança se aplica a dados vindos do Google ou de outro provedor de nuvem.
    • Caso seus dados estejam hospedados em um data center particular operado por você, também poderá haver custos extras para configurar mais largura de banda no Google Cloud.
  • Custos de armazenamento e operação do Cloud Storage durante e após a transferência de dados.
  • Custos do produto (por exemplo, um Transfer Appliance).
  • Custos com pessoal para montar sua equipe e adquirir suporte logístico.

Tempo de transferência

A transferência de grandes quantidades de dados é um dos fatores na computação que mais evidenciam as limitações de hardware das redes. Normalmente, é possível transferir 1 GB em oito segundos em uma rede de 1 Gbps. Se você escalonar para um grande conjunto de dados (por exemplo, 100 TB), o tempo de transferência será de 12 dias. A transferência de grandes conjuntos de dados pode testar os limites da infraestrutura e causar problemas para sua empresa.

É possível usar a seguinte calculadora para entender quanto tempo uma transferência pode levar, considerando o tamanho do conjunto de dados que você está movendo e a largura de banda disponível para a transferência. Uma determinada porcentagem do tempo de gerenciamento é considerada nos cálculos. Além disso, inclui uma eficiência de largura de banda efetiva, de modo que os números resultantes são mais realistas.

Talvez você não queira transferir grandes conjuntos de dados para fora da rede da empresa durante o horário de pico. Se a transferência sobrecarregar a rede, ninguém mais será capaz de concluir tarefas necessárias ou essenciais. Por esse motivo, a equipe de transferência precisa considerar o tempo.

Depois que os dados são transferidos para o Cloud Storage, é possível usar várias tecnologias para processar os novos arquivos à medida que eles chegam, como o Dataflow.

Como aumentar a largura de banda da rede

A forma como você aumenta a largura de banda da rede depende de como se conecta ao Google Cloud.

Em uma transferência de nuvem para nuvem entre o Google Cloud e outros provedores de nuvem, o Google provisiona a conexão entre os data centers de fornecedores de nuvem, sem necessidade de configuração.

Se você estiver transferindo dados entre seu data center particular e o Google Cloud, há várias abordagens, como:

  • Uma conexão de Internet pública usando uma API pública
  • Peering direto usando uma API pública
  • Cloud Interconnect usando uma API particular

Ao avaliar essas abordagens, considere suas necessidades de conectividade de longo prazo. Pode ser que você ache inviável adquirir largura de banda apenas para fins de transferência, mas, ao considerar o uso a longo prazo do Google Cloud e as necessidades de rede em toda a organização, o investimento pode valer a pena. Para mais informações sobre como conectar suas redes ao Google Cloud, consulte Escolher um produto de conectividade de rede.

Se você optar por uma abordagem que envolva a transferência de dados pela Internet pública, recomendamos verificar com o administrador de segurança se a política da sua empresa proíbe essas transferências. Verifique também se a conexão de Internet pública é usada para o tráfego de produção. Por fim, considere que as transferências de dados em grande escala podem afetar negativamente o desempenho da rede de produção.

Transferência on-line e off-line

Uma decisão importante é usar um processo off-line ou on-line para a transferência de dados. Ou seja, você precisa escolher entre transferir por uma rede, seja um Cloud Interconnect ou a Internet pública, ou usando um hardware de armazenamento.

Para ajudar nessa decisão, fornecemos uma calculadora de transferência para estimar as diferenças de tempo e custo entre essas duas opções. O gráfico a seguir também mostra algumas velocidades de transferência para vários tamanhos e larguras de banda do conjunto de dados. Uma determinada quantidade de sobrecarga de gerenciamento é integrada a esses cálculos.

Gráfico que mostra a relação entre tamanhos e velocidades de transferência.

Como observado anteriormente, talvez seja necessário considerar se o custo para alcançar latências mais baixas para a transferência de dados (como a aquisição de largura de banda da rede) é compensado pelo valor desse investimento para sua organização.

Opções disponíveis no Google

O Google oferece várias ferramentas e tecnologias para ajudar você a realizar uma transferência de dados.

Como decidir entre as opções de transferência do Google

A escolha de uma opção de transferência depende do seu caso de uso, conforme mostrado na tabela a seguir.

De onde você está movendo dados Cenário Produtos sugeridos
Outro provedor de nuvem (por exemplo, Amazon Web Services ou Microsoft Azure) para o Google Cloud Serviço de transferência do Cloud Storage
Cloud Storage para Cloud Storage (dois buckets diferentes) Serviço de transferência do Cloud Storage
Seu data center para o Google Cloud Largura de banda suficiente para cumprir o prazo do projeto comando gcloud storage
Seu data center para o Google Cloud Largura de banda suficiente para cumprir o prazo do projeto Serviço de transferência do Cloud Storage para dados locais
Seu data center para o Google Cloud Largura de banda insuficiente para cumprir o prazo do projeto Transfer Appliance

Comando gcloud storage para transferências menores de dados locais

O comando gcloud storage é a ferramenta padrão para transferências de pequeno a médio porte em uma rede de escala empresarial típica, de um data center particular ou de outro provedor de nuvem para o Google Cloud. Embora gcloud storage seja compatível com o upload de objetos até o tamanho máximo do objeto do Cloud Storage, as transferências de objetos grandes têm mais chances de apresentar falhas do que as transferências de curta duração. Para mais informações sobre como transferir objetos grandes para o Cloud Storage, consulte Serviço de transferência do Cloud Storage para grandes transferências de dados no local.

O comando gcloud storage é especialmente útil nos seguintes cenários:

  • Suas transferências precisam ser executadas conforme necessário ou durante as sessões de linha de comando dos usuários.
  • Você está transferindo apenas alguns arquivos, arquivos muito grandes ou ambos.
  • Você está consumindo a saída de um programa (saída de streaming para o Cloud Storage).
  • Você precisa observar um diretório com um número moderado de arquivos e sincronizar todas as atualizações com latências muito baixas.

Serviço de transferência do Cloud Storage para grandes transferências de dados locais

Como o comando gcloud storage, o Serviço de transferência de dados locais do Storage permite transferências do armazenamento do sistema de arquivos de rede (NFS, na sigla em inglês) para o Cloud Storage. O Serviço de transferência de dados locais do Cloud Storage foi projetado para transferências em grande escala (até petabytes de dados, bilhões de arquivos). Ele é compatível com cópias completas ou cópias incrementais e funciona em todas as opções de transferência listadas anteriormente em Como escolher entre as opções de transferência do Google. Ele também tem uma interface gráfica do usuário gerenciada. Mesmo usuários não técnicos (após a configuração) podem usá-lo para mover dados.

O Serviço de transferência de dados locais do Cloud Storage é especialmente útil nos seguintes cenários:

  • Caso tenha largura de banda suficiente para mover os volumes de dados. Consulte a Calculadora do Google Cloud Data Transfer.
  • Caso tenha uma grande base de usuários internos que podem achar uma ferramenta de linha de comando difícil de usar.
  • Caso precise de um relatório de erros robusto e um registro de todos os arquivos e objetos que são movidos.
  • Caso precise limitar o impacto das transferências em outras cargas de trabalho no seu data center. Esse produto pode permanecer abaixo de um limite de largura de banda especificado pelos usuários.
  • Caso queira executar transferências recorrentes em uma programação.

Configure o Serviço de transferência de dados locais do Cloud Storage instalando um software local (conhecido como agentes) em computadores no seu data center.

Depois de configurar o Serviço de transferência do Cloud Storage, é possível iniciar transferências no Console do Google Cloud fornecendo um diretório de origem, um bucket de destino e um horário ou programação. O Serviço de transferência do Cloud Storage rastreia recursivamente subdiretórios e arquivos no diretório de origem e cria objetos com um nome correspondente no Cloud Storage. O objeto /dir/foo/file.txt se torna um objeto no bucket de destino chamado /dir/foo/file.txt. O Serviço de transferência do Cloud Storage tenta automaticamente uma transferência quando encontra erros temporários. Enquanto as transferências estão em execução, é possível monitorar quantos arquivos são movidos e a velocidade geral da transferência, além de ver amostras de erros.

Quando o Serviço de transferência do Cloud Storage conclui uma transferência, ele gera um arquivo delimitado por tabulação (TSV, na sigla em inglês) com um registro completo de todos os arquivos afetados e todas as mensagens de erro recebidas. Os agentes são tolerantes a falhas. Portanto, se um agente ficar inativo, a transferência continuará com os agentes restantes. Os agentes também se atualizam e se recuperam. Assim, você não precisa se preocupar em corrigir as versões mais recentes ou reiniciar o processo caso ocorra devido a um problema inesperado.

Pontos a serem considerados ao usar o Serviço de transferência do Cloud Storage:

  • Use uma configuração de agente idêntica em todas as máquinas. Todos os agentes precisam ver os mesmos valores do sistema de arquivos de rede (NFS, na sigla em inglês) da mesma maneira (mesmos caminhos relativos). Essa configuração é um requisito para o produto funcionar.
  • Mais agentes resultam em mais velocidade. Como as transferências são paralelas automaticamente em todos os agentes, recomendamos que você implante muitos agentes para usar a largura de banda disponível.
  • Limites de largura de banda podem proteger suas cargas de trabalho. Suas outras cargas de trabalho podem usar a largura de banda do seu data center. Portanto, defina um limite de largura de banda para evitar que as transferências afetem seus SLAs.
  • Planeje o tempo para analisar os erros. Muitas vezes, transferências grandes podem resultar em erros que exigem análise. O Serviço de transferência do Cloud Storage permite que você veja uma amostra dos erros encontrados diretamente no console do Google Cloud. Se necessário, carregue o registro completo de todos os erros de transferência para o BigQuery para verificar arquivos ou avaliar erros que permaneceram mesmo após novas tentativas. Esses erros podem ser causados pela execução de apps que estavam gravando na fonte enquanto a transferência ocorreu ou os erros podem revelar um problema que requer solução de problemas (por exemplo, erro de permissões).
  • Configure o Cloud Monitoring para transferências de longa duração. O Serviço de transferência do Cloud Storage permite que o Monitoring fiscalize a integridade e a capacidade do agente. Assim, é possível definir alertas que notifiquem quando os agentes estiverem inativos ou precisarem de atenção. Agir em falhas de agente é importante para transferências que levam vários dias ou semanas. Assim, você evita lentidões ou interrupções significativas que podem atrasar o cronograma do projeto.

Transfer Appliance para transferências maiores

Para transferências em grande escala (especialmente transferências com largura de banda de rede limitada), o Transfer Appliance é uma excelente opção, especialmente quando uma conexão de rede rápida não está disponível e é muito cara para adquirir mais largura de banda.

O Transfer Appliance é especialmente útil nos seguintes cenários:

  • O data center está em um local remoto com acesso limitado ou sem acesso à largura de banda.
  • A largura de banda está disponível, mas não pode ser adquirida a tempo para cumprir seu prazo.
  • Caso tenha acesso a recursos logísticos para receber e conectar dispositivos à sua rede.

Com essa opção, considere o seguinte:

  • O Transfer Appliance exige que você possa receber e devolver o hardware de propriedade do Google.
  • Dependendo da sua conexão com a Internet, a latência para transferir dados para o Google Cloud normalmente é maior com o Transfer Appliance do que on-line.
  • O Transfer Appliance está disponível apenas em alguns países.

Os dois critérios principais a serem considerados com o Transfer Appliance são custo e velocidade. Com conectividade de rede razoável (por exemplo, 1 Gbps), a transferência de 100 TB de dados on-line leva mais de 10 dias para ser concluída. Se essa taxa for aceitável, uma transferência on-line provavelmente será uma boa solução para suas necessidades. Se você tiver apenas uma conexão de 100 Mbps (ou pior, de um local remoto), a mesma transferência levará mais de 100 dias. Nesse momento, vale a pena considerar uma opção de transferência off-line, como o Transfer Appliance.

A aquisição de um Transfer Appliance é simples. No console do Google Cloud, você solicita um Transfer Appliance, indica a quantidade de dados que tem e, em seguida, o Google envia um ou mais dispositivos para o local solicitado. Você tem um número de dias para transferir seus dados para o dispositivo ("captura de dados") e enviá-los de volta ao Google.

Serviço de transferência do Cloud Storage para transferências entre nuvens

O Serviço de transferência do Cloud Storage é totalmente gerenciado, altamente escalonável e permite automatizar transferências de outras nuvens públicas para o Cloud Storage. Por exemplo, é possível usar o Serviço de transferência do Cloud Storage para transferir dados do Amazon S3 para o Cloud Storage.

Para HTTP, é possível fornecer ao Serviço de transferência do Cloud Storage uma lista de URLs públicos em um formato especificado. Essa abordagem exige que você escreva um script que forneça o tamanho de cada arquivo em bytes, além de um hash MD5 codificado em Base64 do conteúdo do arquivo. Às vezes, o tamanho do arquivo e o hash estão disponíveis no site de origem. Caso contrário, você precisará de acesso local aos arquivos. Nesse caso, pode ser mais fácil usar o comando gcloud storage, conforme descrito anteriormente.

Se você tiver uma transferência em vigor, o Serviço de transferência do Cloud Storage é uma ótima maneira de conseguir dados e mantê-los, especialmente ao transferir de outra nuvem pública.

Para mover dados de outra nuvem não compatível com o Serviço de transferência do Cloud Storage, use o comando gcloud storage de uma instância de máquina virtual hospedada na nuvem.

Segurança

Para muitos usuários do Google Cloud, a segurança é o foco principal, e há diferentes níveis de segurança disponíveis. Alguns aspectos da segurança a serem considerados incluem proteção de dados em repouso (autorização e acesso ao sistema de armazenamento de origem e destino), proteção de dados durante o trânsito e proteção do acesso ao produto de transferência. A tabela a seguir descreve esses aspectos de segurança por produto.

Produto Dados em repouso Dados em trânsito Acesso à transferência de produtos
Transfer Appliance Todos os dados são criptografados em repouso. Os dados são protegidos com chaves gerenciadas pelo cliente. Qualquer pessoa pode pedir um dispositivo, mas, para usá-lo, precisa acessar a fonte de dados.
Comando gcloud storage Chaves de acesso necessárias para acessar o Cloud Storage, que é criptografado em repouso. Os dados são enviados por HTTPS e criptografados em trânsito. Qualquer pessoa pode fazer o download e executar a CLI do Google Cloud. Elas precisam ter permissões para buckets e arquivos locais para mover dados.
Serviço de transferência do Cloud Storage para dados locais Chaves de acesso necessárias para acessar o Cloud Storage, que é criptografado em repouso. O processo do agente pode acessar arquivos locais conforme as permissões do SO. Os dados são enviados por HTTPS e criptografados em trânsito. Você precisa ter permissões de editor de objetos para acessar os buckets do Cloud Storage.
Serviço de transferência do Cloud Storage Chaves de acesso necessárias para recursos que não são do Google Cloud (por exemplo, Amazon S3). As chaves de acesso são necessárias para acessar o Cloud Storage, que é criptografado em repouso. Os dados são enviados por HTTPS e criptografados em trânsito. Você precisa ter permissões de IAM para que a conta de serviço acesse as permissões do editor de origem e de objeto de todos os buckets do Cloud Storage.

Para conseguir melhorias de segurança de base, as transferências on-line para o Google Cloud usando o comando gcloud storage são realizadas por HTTPS, os dados são criptografados em trânsito e todos os dados no Cloud Storage são, por padrão, criptografados em repouso. Se você usa o Transfer Appliance, as chaves de segurança que você controla protegem seus dados. Geralmente, recomendamos que você envolva sua equipe de segurança para garantir que seu plano de transferência atenda a sua empresa e aos requisitos regulatórios.

Produtos de transferência de terceiros

Para otimização avançada no nível da rede ou fluxos de trabalho contínuos de transferência de dados, convém usar ferramentas mais avançadas. Para informações sobre ferramentas mais avançadas, consulte os parceiros do Google Cloud.

Etapa 4: avaliação de abordagens de migração de dados

Ao migrar dados, siga estas etapas gerais:

  1. Transfira dados do site legado para o novo.
  2. Solucione todos os problemas de integração de dados que surgirem, por exemplo, sincronizando os mesmos dados de várias fontes.
  3. Valide a migração de dados.
  4. Promova o novo site para que seja a cópia principal.
  5. Desative o site legado quando não precisar mais dele como uma opção substituta.

Baseie sua estratégia de migração de dados nas perguntas a seguir:

  • Qual a quantidade de dados você precisa migrar?
  • Com que frequência esses dados mudam?
  • É possível arcar com o tempo de inatividade representado por uma janela de transferência durante a migração dos dados?
  • Qual é seu modelo atual de consistência de dados?

Não há uma abordagem perfeita. Essa escolha depende do ambiente e de seus requisitos.

As seções a seguir apresentam quatro abordagens de migração de dados:

  • Manutenção programada
  • Replicação contínua
  • Y (gravação e leitura)
  • Microsserviço de acesso a dados

Cada abordagem soluciona problemas diferentes, dependendo da escala e dos requisitos da migração de dados.

A abordagem de microsserviço de acesso a dados é a opção preferida para uma arquitetura de microsserviços. No entanto, as outras abordagens são úteis para a migração de dados. Elas também são úteis durante o período de transição necessário para modernizar a infraestrutura o suficiente para adotar a abordagem de microsserviço de acesso a dados.

O gráfico a seguir ilustra respectivamente os tamanhos das janelas de transferência, os esforços de refatoração e as propriedades de flexibilidade de cada uma das abordagens.

Gráfico de barras que mostra os valores relativos de flexibilidade, esforço de refatoração e tamanhos de janela de transferência de cada uma das quatro abordagens

Antes de adotar qualquer uma dessas abordagens, verifique se você configurou a infraestrutura necessária no novo ambiente.

Manutenção programada

A abordagem de manutenção programada é ideal se as cargas de trabalho podem arcar com a janela de transferência. Programação neste contexto significa que é possível planejar quando a janela de transferência ocorre.

Nesta abordagem, a migração consiste nas seguintes etapas:

  1. Copie os dados que estão no site legado para o novo. Essa cópia inicial minimiza a janela de transferência. Depois dela, será necessário copiar apenas os dados que foram alterados durante a janela.
  2. Execute verificações de validação e consistência de dados para comparar os dados copiados no novo site com aqueles que estão no site legado.
  3. Interrompa as cargas de trabalho e os serviços com acesso de gravação aos dados copiados para que não ocorram mais alterações.
  4. Sincronize as alterações ocorridas após a cópia inicial.
  5. Refatore as cargas de trabalho e os serviços para usar o site novo.
  6. Inicie as cargas de trabalho e os serviços.
  7. Desative o site legado quando não precisar mais dele como uma opção substituta.

A abordagem de manutenção programada coloca um fardo maior sobre a equipe de operações porque é necessário realizar um mínimo de refatoração de cargas de trabalho e serviços.

Replicação contínua

Como nem todas as cargas de trabalho podem arcar com uma janela de transferência longa, é possível desenvolver uma abordagem com base na manutenção programada, disponibilizando um mecanismo de replicação contínua após as etapas de cópia inicial e validação. Ao projetar um mecanismo desse tipo, você também precisa levar em consideração a taxa de aplicação de alterações aos dados. Talvez seja desafiador manter dois sistemas sincronizados.

A abordagem de replicação contínua é mais complexa do que a manutenção programada. No entanto, ela minimiza o tempo da janela de transferência necessária porque reduz a quantidade de dados que precisam ser sincronizados. A sequência da migração na abordagem de replicação contínua é a seguinte:

  1. Copie os dados que estão no site legado para o novo. Essa cópia inicial minimiza a janela de transferência. Depois dela, será necessário copiar apenas os dados que foram alterados durante a janela.
  2. Execute verificações de validação e consistência de dados para comparar os dados copiados no novo site com aqueles que estão no site legado.
  3. Configure um mecanismo de replicação contínua do site legado para o novo.
  4. Interrompa as cargas de trabalho e os serviços com acesso aos dados a serem migrados, isto é, aos dados envolvidos na etapa anterior.
  5. Reestruture as cargas de trabalho e os serviços para usar o site novo.
  6. Aguarde a replicação para sincronizar totalmente o novo site com o legado.
  7. Inicie as cargas de trabalho e os serviços.
  8. Desative o site legado quando não precisar mais dele como uma opção substituta.

Assim como na abordagem de manutenção programada, a abordagem de replicação contínua coloca um fardo maior sobre a equipe de operações.

Y (gravação e leitura)

Se as cargas de trabalho tiverem requisitos rígidos de alta disponibilidade e não for possível arcar com o tempo de inatividade representado pela janela de transferência, adote uma abordagem diferente. Nesse cenário, é possível usar uma abordagem que, neste documento, é chamada de Y (gravação e leitura), uma forma de migração paralela (em inglês). Com essa abordagem, a carga de trabalho grava e lê dados tanto no site legado quanto no novo durante a migração. A letra Y é usada aqui como uma representação gráfica do fluxo de dados durante o período de migração.

Essa abordagem é resumida da seguinte maneira:

  1. Refatore as cargas de trabalho e os serviços para ler dados no site legado e gravá-los tanto no legado quanto no novo.
  2. Identifique os dados gravados antes da ativação das gravações no site novo e copie-os do site legado para o novo. Junto com a refatoração anterior, isso garante que os armazenamentos de dados estejam alinhados.
  3. Execute verificações de validação e consistência de dados para comparar os dados no site legado com aqueles no novo.
  4. Alterne as operações de leitura do site legado para o novo.
  5. Realize outra rodada de verificações de validação e consistência de dados para comparar os dados no site legado com aqueles no novo.
  6. Desative a gravação no site legado.
  7. Desative o site legado quando não precisar mais dele como uma opção substituta.

Ao contrário da manutenção programada e da replicação contínua, a abordagem em Y (gravação e leitura) tira a maior parte da sobrecarga da equipe de operações e a coloca sobre a equipe de desenvolvimento, devido às várias refatorações.

Microsserviço de acesso a dados

Se você quiser reduzir o esforço de refatoração necessário para seguir a abordagem em Y (gravação e leitura), centralize as operações de leitura e gravação de dados refatorando cargas de trabalho e serviços para usar um microsserviço de acesso a dados. Esse microsserviço escalonável será o único ponto de entrada para a camada de armazenamento de dados e atuará como um proxy dessa camada. Dentre as abordagens discutidas aqui, é esta que oferece a máxima flexibilidade porque é possível refatorar esse componente da arquitetura sem afetar os demais nem precisar de uma janela de transferência.

Usar um microsserviço de acesso a dados é muito parecido com a abordagem em Y (gravação e leitura). A diferença é que os esforços de refatoração se concentram apenas no microsserviço de acesso a dados, em vez de na necessidade de refatorar todas as cargas de trabalho e os serviços que acessam a camada de armazenamento de dados. Essa abordagem é resumida da seguinte maneira:

  1. Refatore o microsserviço de acesso a dados para gravar dados tanto no site legado quanto no novo. As leituras são realizadas no site legado.
  2. Identifique os dados gravados antes da ativação das gravações no site novo e copie-os do site legado para o novo. Junto com a refatoração anterior, isso garante que os armazenamentos de dados estejam alinhados.
  3. Execute verificações de validação e consistência de dados para comparar os dados no site legado com aqueles no novo.
  4. Refatore o microsserviço de acesso a dados para fazer leituras no site novo.
  5. Realize outra rodada de verificações de validação e consistência de dados para comparar os dados no site legado com aqueles no novo.
  6. Refatore o microsserviço de acesso a dados para gravar apenas no novo site.
  7. Desative o site legado quando não precisar mais dele como uma opção substituta.

Assim como a abordagem em Y (gravação e leitura), a abordagem de microsserviço de acesso a dados coloca um fardo maior sobre a equipe de desenvolvimento. No entanto, é um trabalho significativamente mais leve se comparado com a abordagem anterior porque os esforços de refatoração são concentrados no microsserviço de acesso a dados.

Etapa 4: preparação para a transferência

Para uma transferência grande ou com dependências significativas, é importante entender como operar o produto de transferência. Os clientes geralmente passam pelas seguintes etapas:

  1. Preços e estimativa de ROI. Esta etapa fornece muitas opções para ajudar na tomada de decisões.
  2. Teste funcional Nesta etapa, você confirma se o produto pode ser configurado e se a conectividade de rede (quando aplicável) está funcionando. Você também testa se pode mover uma amostra representativa dos dados (incluindo as etapas de não transferência, como mover uma instância de VM) para o destino.

    Geralmente, é possível realizar essa etapa antes de alocar todos os recursos, como máquinas de transferência ou largura de banda. As metas desta etapa incluem as seguintes verificações:

    • Confirme se é possível instalar e operar a transferência.
    • Identifique possíveis problemas de interrupção do projeto que bloqueiam a movimentação de dados (por exemplo, rotas de rede) ou suas operações (por exemplo, treinamento necessário em uma etapa sem transferência).
  3. Teste de desempenho. Nesta etapa, execute uma transferência em uma grande amostra dos seus dados (normalmente de 3 a 5%) depois que os recursos de produção são alocados para verificar as seguintes questões:

    • Confirme se é possível consumir todos os recursos alocados e atingir a velocidade esperada.
    • Identifique e corrija gargalos (por exemplo, sistema de armazenamento de origem lenta).

Etapa 5: garantir a integridade da transferência

Para garantir a integridade dos seus dados durante uma transferência, recomendamos que você tome as seguintes precauções:

  • Ative o controle de versão e o backup no seu destino para limitar o dano de exclusões acidentais.
  • Valide seus dados antes de remover os dados de origem.

Para transferências de dados em grande escala (com petabytes de dados e bilhões de arquivos), uma taxa de erro latente de base do sistema de armazenamento de origem tão baixo quanto 0,0001% ainda resulta em perda de dados de milhares de arquivos e gigabytes. Normalmente, os aplicativos em execução na origem já são tolerantes a esses erros. Nesse caso, a validação extra não é necessária. Há exceções em alguns cenários (por exemplo, arquivo de longo prazo), em que é necessária mais validação antes de ser considerado seguro excluir dados da origem.

Dependendo dos requisitos do aplicativo, recomendamos que você execute alguns testes de integridade de dados após a conclusão da transferência para garantir que o aplicativo continue funcionando conforme o esperado. Muitos produtos de transferência têm verificações de integridade de dados integradas. No entanto, dependendo do seu perfil de risco, convém fazer um conjunto extra de verificações nos dados e nos apps que os leem antes de excluir dados da origem. Por exemplo, confirme se uma soma de verificação que você registrou e calculou independentemente corresponde aos dados gravados no destino ou se um conjunto de dados usado pelo aplicativo foi transferido.

A seguir