Histórias de clientes / Software e Internet

2020
logo da Dropbox

Dropbox economiza milhões criando um armazenamento de metadados escalável no Amazon DynamoDB e no Amazon S3

1 ano

Lançado o sistema de armazenamento de metadados na AWS em um ano.

5.5

Redução do custo por gigabyte de usuário em um fator de 5,5.

Economia de milhões

Milhões de dólares economizados em custos de expansão.

300 TB

Migração de 300 TB de dados em menos de 2 semanas.

4 a 6 mil consultas

Ingere dados em 4 a 6 mil consultas por segundo.

Visão geral

No verão de 2018, a Dropbox passou por uma crise de capacidade em seu armazenamento de metadados on-premises devido ao rápido crescimento dos dados em algumas das partições. A equipe de banco de dados da Dropbox tinha três opções: dobrar a capacidade de armazenamento on-premises (o que custaria milhões de dólares), excluir partes de metadados ou encontrar uma solução nova, altamente escalável e econômica. A terceira opção era a melhor, mas alcançá-la seria um desafio. A Dropbox tinha menos de 2 anos até que seu sistema on-premises atingisse a capacidade máxima, e a equipe de implementação do projeto era composta por apenas dois funcionários.

Essas circunstâncias levaram a Dropbox a buscar uma solução gerenciada da Amazon Web Services (AWS). Usando o Amazon DynamoDB, um banco de dados NoSQL totalmente gerenciado e flexível que oferece performance de menos de dez milissegundos em qualquer escala, e o Amazon Simple Storage Service (Amazon S3), um serviço de armazenamento de objetos na nuvem, a Dropbox desenvolveu rapidamente um novo sistema de armazenamento gerenciado chamado Alki. Isso abriu espaço para metadados de usuário praticamente ilimitados e não só economizou milhões de dólares para a empresa, já que ela não precisaria aumentar o armazenamento on-premises, como também reduziu o custo por gigabyte em um fator de 5,5.

701029600

Migração de dados de logs de auditoria de um banco de dados legado para a nuvem

Fundada em 2007 por dois estudantes do Massachusetts Institute of Technology, a Dropbox é uma ferramenta de colaboração global e um serviço de compartilhamento de arquivos. Ele se tornou uma das startups mais bem-sucedidas do mundo, com mais de 600 milhões de usuários enviando mais de 400 bilhões de conteúdos.


Os armazenamentos de metadados da Dropbox estavam originalmente alojados exclusivamente no principal armazenamento de dados da empresa, o Edgestore, hospedado em um banco de dados distribuído on-premises, construído sobre clusters do MySQL fragmentados. Em meados de 2018, os metadados inativos em rápido crescimento (dados acessados com pouca frequência, mas que precisam ser armazenados de forma durável e estar disponíveis instantaneamente) estavam a menos de dois anos de sobrecarregar o Edgestore. No entanto, aumentar a capacidade do banco de dados on-premises exigiria a divisão das partições existentes e a compra de novas máquinas para hospedá-las, o que dobraria o custo do Edgestore ao adicionar milhões de dólares por ano. Além disso, não fazia mais sentido armazenar metadados inativos no mesmo banco de dados que os metadados ativos, ou usados com frequência. “Se você está escrevendo dados não destinados para leitura frequente, é extremamente caro usá-los (além de inútil armazená-los) em mídias otimizadas para velocidade de recuperação”, diz Jonathan Lee, líder técnico da equipe Alki da Dropbox.


Como resultado, dois funcionários se separaram da equipe de banco de dados para criar o Alki, a solução que armazenaria metadados de maneira econômica. Eles se concentraram particularmente em dados de log de auditoria, o principal caso de uso de metadados inativos do Edgestore. Como a pequena equipe do Alki enfrentava um prazo apertado que, se não cumprido, poderia levar à perda de metadados dos usuários, ela decidiu implementar serviços gerenciados da AWS. Usando o Amazon DynamoDB e o Amazon S3, a Dropbox rapidamente gerou o protótipo e implantou um armazenamento de metadados inativos na AWS em apenas um ano. Os arquitetos de soluções da AWS funcionaram como uma extensão da equipe do Alki da Dropbox, fornecendo orientação prescritiva e ajuda na implementação.


“Ao criar um sistema de armazenamento, você precisa pensar em vários componentes, incluindo replicação, backups e gerenciamento de capacidade. O Amazon DynamoDB e o Amazon S3 atendem bem a essa necessidade: são padrões do setor”, diz Lee. “Esses são problemas que equipes grandes levam vários anos para resolver. Porém, ao usar o Amazon DynamoDB e o Amazon S3, simplificamos esses problemas porque a AWS lida com muitas das tarefas complexas, como replicação de dados, gerenciamento de durabilidade dos dados e provisionamento de hardware. Tanto o Amazon DynamoDB quanto o Amazon S3 crescem automaticamente de acordo com as nossas necessidades de capacidade. Não precisamos mais planejar a capacidade e o orçamento on-premises para compras de hardware e depois ficar presos às nossas decisões por quatro anos.”

kr_quotemark

Ao criar um sistema de armazenamento, você precisa pensar em componentes como replicação, backups e gerenciamento de capacidade. Ao usar o Amazon DynamoDB e o Amazon S3, simplificamos esses problemas porque a AWS lida com muitas das tarefas complexas.”

Jonathan Lee
Líder técnico da equipe do Alki, Dropbox

Criar armazenamentos de metadados ativos e inativos usando soluções da AWS

A equipe do Alki, auxiliada por arquitetos de soluções da AWS, construiu um sistema de armazenamento de metadados baseado em árvore de mesclagem estruturada em log (árvore LSM), que tem duas camadas de armazenamento de dados: uma superior para metadados ativos e outra inferior para metadados inativos. O Amazon DynamoDB atua como uma camada de armazenamento ativo, ingerindo dados de registro de auditoria em seis tabelas do DynamoDB com 4.000 a 6.000 gravações por segundo por tabela. Cada uma dessas tabelas armazena de 50 a 80 GB diariamente. No final de cada dia, a equipe transfere os metadados dessas tabelas ao Amazon S3 para armazenamento permanente. Em seguida, as tabelas no Amazon DynamoDB são excluídas.

No início de 2019, menos de 6 meses após a equipe do Alki escolher o Amazon DynamoDB e o Amazon S3, o Alki estava em sua fase beta de produção, ingerindo todos os dados e fornecendo um subconjunto das leituras. Em outubro de 2019, cerca de 300 TB de dados de log de auditoria, representando um quarto de todos os dados armazenados no Edgestore, haviam sido migrados para o Alki, que agora estava em plena produção.

A escalabilidade do Amazon DynamoDB e do Amazon S3 ajudou a equipe da Dropbox a concluir a migração de dados em menos de duas semanas. “Normalmente, você pode projetar um sistema para 10 vezes a escala esperada em estado estacionário”, explica Lee. “Porém, pudemos escalar de 100 a 1.000 vezes na AWS sem projetar o sistema com antecedência.” A equipe do Alki esperava que o estado estável fosse de 4.000 consultas por segundo, mas conseguiu provisionar o Amazon DynamoDB para 600.000 consultas por segundo durante a migração.

De acordo com Lee, os arquitetos de soluções da AWS forneceram suporte premium à equipe do Alki durante toda a migração. “Não temos nada além de coisas positivas a dizer sobre nossa interação com a equipe da AWS que trabalha no Alki. Ela sempre foi muito proativa em nos ajudar a encontrar problemas, apontando como podemos agilizar as coisas ou identificar áreas em que talvez convém sermos mais cuidadosos operacionalmente”, diz Lee. A equipe do Alki e os arquitetos de soluções da AWS conseguiram manter uma comunicação constante por meio de canais em tempo real. E a equipe do Alki continuará colhendo os benefícios dessa colaboração por meio dos serviços gerenciados da AWS. “Administrar um sistema de maneira duradoura exige experiência, e não tínhamos essa experiência”, diz Stas Ilinskiy, engenheiro de software da equipe do Alki. “Mas, ao usar o Amazon DynamoDB, também conquistamos pessoas com a experiência necessária para executá-lo.”

Com o Alki, a Dropbox economizou milhões de dólares em custos de expansão e reduziu significativamente os custos de gigabytes por usuário com o Amazon DynamoDB e o Amazon S3. O Edgestore da Dropbox custaria aos usuários 5,5 vezes mais do que o Alki por usuário/gigabyte por ano.

Continuar a criar uma experiência superior de armazenamento de usuários

A equipe do Alki está explorando como pode usar o Amazon EMR para transferir com mais eficiência os dados do Amazon DynamoDB para o Amazon S3, um processo que atualmente é administrado pelo próprio sistema de processamento em lotes da Dropbox. Além disso, para reduzir ainda mais os custos com o Alki, a Dropbox migrou outro banco de dados com 300 TB de metadados inativos do Edgestore para o Alki em outubro de 2020. Isso prepara o cenário de como a Dropbox pode usar o Alki no futuro para otimizar e reduzir ainda mais os custos: a empresa pode usá-lo como um armazenamento de metadados inativos de uso geral. “Em vez de transferir casos de uso específicos, poderíamos integrar o Alki ao Edgestore e mover os dados de forma transparente entre os dois?” pergunta Lee. “Essa é a próxima visão.”

Usando o Amazon DynamoDB e o Amazon S3, a equipe do Alki conseguiu lançar rapidamente um armazenamento de metadados durável e escalável que resultou em uma enorme economia de custos para a Dropbox. Os serviços gerenciados oferecidos pela AWS tornam a manutenção desse armazenamento uma opção sustentável e de longo prazo. A solução também permitiu que a Dropbox lançasse vários projetos que não eram possíveis no Edgestore. “Todo o projeto do Alki foi muito assistido por toda a alta gerência”, diz Lee. “Estamos muito satisfeitos com a performance do Alki e, portanto, com a performance do Amazon DynamoDB e do Amazon S3.”

Sobre a Dropbox

Com sede em São Francisco, a Dropbox oferece um lugar para manter a vida organizada e manter o trabalho em andamento. Com mais de 600 milhões de usuários registrados em 180 países, a Dropbox tem a missão de criar um modo mais instruído de trabalhar.

Serviços da AWS usados

Amazon S3

O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance líderes do setor.

Saiba mais »

Amazon DynamoDB

O Amazon DynamoDB é um banco de dados de valor-chave e documento que oferece desempenho de milissegundos com um dígito em qualquer escala.

Saiba mais »

Amazon EMR

O Amazon EMR é a plataforma líder mundial de big data em nuvem para processamento de grandes quantidades de dados usando ferramentas de código aberto como Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi e Presto.

Saiba mais »

Mais histórias de clientes de software e Internet

nenhum item encontrado 

1

Comece a usar

Organizações de todos os portes, em todos os setores, estão transformando seus negócios e cumprindo suas missões todos os dias usando a AWS. Entre em contato com nossos especialistas e comece sua própria jornada para a AWS hoje mesmo.