Não categorizado

Como a Couchbase ajudou a OMGPOP quebrar todos os recordes com o Draw Something

3 MIN DE LEITURA

De vez em quando você tem a oportunidade de provar seu valor em um grande palco. Há quatro semanas, tivemos essa chance. O usuário do Couchbase, OMGPOP, havia lançado Desenhar Alguma Coisa – um jogo semelhante ao Pictionary que estava se tornando viral. Capitalizando sobre o que acabaria sendo uma oportunidade de crescimento sem precedentes, eles precisavam absolutamente dimensionar seu banco de dados. Havia dois pontos inegociáveis: o desempenho tinha que ser sustentado e o jogo nunca podia ser tirado do ar, mesmo com o rápido crescimento no número de usuários e de partidas.

Expandir para suportar o jogo mobile de crescimento mais rápido de todos os tempos não é trivial. Do zero, Draw Something explodiu para mais de 50 milhões de downloads em poucas semanas (e ainda continua adicionando cerca de dois milhões de downloads por dia). Os Usuários Ativos Diários (DAU) somam 15 milhões – superando em muito os do jogo mais próximo, Words with Friends. Dezenas de milhões de partidas foram iniciadas. Mais de 3.000 desenhos são gerados a cada segundo, somando-se aos dois bilhões que já foram criados e armazenados.

E o crescimento não parou. A OMGPOP agora tem como meta 100 milhões de downloads.

Esse tipo de crescimento é o sonho de todo desenvolvedor de aplicativos, mas, se a escalabilidade não for planejada desde o início, pode se tornar o pior pesadelo de um desenvolvedor. A maneira mais rápida de acabar com um jogo em ascensão é fazer os usuários esperarem ou, pior ainda, dizer a eles para voltarem quando for possível lidar com a carga. Basta perguntar à EA.

Lançado mais ou menos na mesma época que o Draw Something, o jogo “The Simpsons: Tapped Out”, da EA, também estava obtendo uma enorme aceitação. Com uma popularidade que se espalhou viralmente, ele alcançou a #2 na App Store da Apple no início de março, antes de enfrentar problemas de escalabilidade. Em poucos dias, o jogo foi removido da App Store com apenas os jogadores existentes continuando a jogar o jogo. Algumas semanas depois, ele ainda não voltou.

Felizmente, a OMGPOP havia planejado desde o início a escalabilidade, escolhendo um Banco de dados NoSQL como sua principal tecnologia de armazenamento de dados. No caso deles, estavam utilizando Couchbase Server, e as coisas estavam indo a todo vapor — nós nem sabíamos que o Couchbase estava ficando para trás.

Tomamos conhecimento do nosso papel no sucesso deles quando nos ligaram para garantir que estavam empregando as melhores práticas no planejamento do crescimento do seu cluster de banco de dados. À medida que o número de usuários, jogos e sorteios crescia a uma taxa sem precedentes, eles puderam adicionar capacidade continuamente ao cluster (crescendo para mais de 100 servidores), mantendo o desempenho da aplicação e sem nenhuma indisponibilidade na aplicação. Nunca houve queda de desempenho ou um único momento em que novos jogadores não conseguiram entrar na partida – mesmo diante de hardware falhando! A certo ponto, um problema de placa-mãe no hardware escolhido estava derrubando os membros do cluster a um ritmo assustador. O Couchbase lidou até com essas falhas com naturalidade, sem interromper a operação ou o desempenho do jogo.

O desenvolvimento de aplicativos inovadores é, obviamente, a base do sucesso da OMGPOP e de outras empresas. Embora os requisitos de escalabilidade de um jogo social de sucesso possam ser mais extremos do que os da maioria dos aplicativos, a capacidade de escalar facilmente o aplicativo sem tempo de inatividade, mantendo o desempenho, é fundamental para o sucesso da maioria dos aplicativos. É importante que os desenvolvedores escolham um banco de dados que não apenas ofereça suporte à operação do próprio aplicativo, mas também seja capaz de escalar facilmente. Parabéns à OMGPOP por desenvolver um jogo inovador que é um grande sucesso em todo o mundo. Estamos felizes que a Couchbase tenha podido contribuir para esse sucesso.

Compartilhe este artigo

Autor

Bob atuou como presidente e CEO da Couchbase de 2010 a 2017. Até a aquisição pela IBM em 2008, Bob atuou como presidente do conselho, CEO e presidente da Transitive Corporation, líder mundial em virtualização multiplataforma com mais de 20 milhões de usuários. Anteriormente, ele foi presidente e CEO da Tality Corporation, líder mundial em serviços de projeto eletrônico, cuja receita e tamanho cresceram para quase $200 milhões e contava com 1.500 funcionários em todo o mundo. Bob ocupou vários cargos executivos de gestão geral na Cadence Design Systems, Inc., uma empresa de automação de projeto eletrônico, na qual ingressou em 1985 quando ainda era uma startup em fase inicial e ajudou a expandir para mais de $1,5 bilhão durante seus 13 anos na empresa. Bob também dirigiu a High Level Design Systems, uma bem-sucedida startup de automação de projeto eletrônico que foi adquirida pela Cadence em 1996.

15 respostas

  1. Avatar de Kinley Dorji
    Kinley Dorji

    Legal. Isso é algo para se gabar.

  2. Avatar de Artur Tyloch
    Artur Tyloch

    Então, quantos documentos são gravados e lidos por segundo com 100 nós? Trata-se de um ambiente em nuvem ou de hardware dedicado?

    1. Avatar de $24089596
      $24089596

      Oi, Artur –
      Eles estão executando o Couchbase em hardware dedicado (gerenciado por um provedor de hospedagem) e registram uma média de cerca de 120.000 leituras e gravações de documentos por segundo para dar suporte ao jogo. O cluster também está replicando os dados várias vezes em taxas semelhantes em todo o cluster (o que nos permitiu absorver muitas falhas de hardware nas últimas duas semanas). Obrigado.
      James.

      1. Avatar de Mark Essel
        Mark Essel

        Algumas perguntas (divertidas):

        Quantos servidores a OMGPOP matou/desativou com o Draw Something?

        Qual é a taxa de falha de servidores (falha de disco/servidor) deles?.

        É mais ou menos do que a taxa esperada de falhas de hardware para os sistemas em que estão em execução?

        Quanto custa para a OMGPOP/Zynga este nível de serviço de hospedagem?

  3. Avatar de Razamataz
    Razamataz

    Estou me perguntando se soluções totalmente hospedadas, como o CloudAnt, poderiam ser tão ágeis assim.

    Ou você precisa contratar um administrador para expandir isso rapidamente?.

    Não fica claro para mim, à primeira vista, se as soluções totalmente hospedadas (como o CloudAnt) estão vendendo instâncias de um servidor ou uma infraestrutura de servidores que pode ser dimensionada sob demanda.

    1. Avatar de mjphilli
      mjphilli

      Olá —
      Você deve falar com o Cloudant para obter uma visão geral de suas ofertas e capacidades. Eles estão mais preparados para responder a essas perguntas. O Couchbase oferece suporte à implantação hospedada de nosso software no EC2 via RightScale. Muito fácil de usar. Basta pesquisar por couchbase e rightscale no Google.
      James.

    2. Avatar de sbisbee
      sbisbee

      Olá Razamataz,

      Este não é o melhor lugar para falar sobre o Cloudant ou outros fornecedores que não sejam o Couchbase, mas vou responder às perguntas específicas que você levantou. 

      – O Cloudant tem histórias de clientes semelhantes sobre como atender a requisitos de carga.

      – Você não precisaria contratar um administrador porque o Cloudant gerencia tudo para você, seja no seu data center ou no do Cloudant. Você apenas interage com a API.

      – Você pode redimensionar o número de nós no seu cluster Cloudant.

      Fique à vontade para entrar em contato comigo se quiser conversar mais sobre o Cloudant.

      Saúde.

  4. Avatar de screwdisk
    parafuso do disco

    Eu me pergunto se eles estão tendo o mesmo problema com o recurso de rebalanceamento. Eles estão usando o Couchbase 1.8.x? Nós estamos usando o Membase 1.7.1 com mais ou menos 200 milhões de itens em um cluster AWS de 9 nós, no entanto, estamos tendo um problema crítico em que o rebalanceamento continua falhando.

    1. Avatar de $24089596
      $24089596

      Oi screwdisk –
      Desculpe por você estar tendo problemas. Você está recebendo a ajuda de que precisa? Fico feliz em conectá-lo com nossos recursos de suporte se você quiser me enviar um e-mail. Eu sou o James da couchcbase.
      obrigado
      James.

  5. Avatar de Steve Tietze
    Steve Tietze

    Estamos procurando alguém para nos ajudar a estruturar nossa arquitetura para um próximo jogo social, e bem, ninguém aqui no escritório tem muita experiência com gerenciamento de sites ou tratamento de dados na faixa de milhões por hora ou mais, e com a capacidade de continuar escalando sem nenhum tempo de inatividade... o que, é claro, como no caso da EA, acabou se voltando contra eles.

    Nós nos comunicamos com o cliente do nosso jogo através de endpoints JSON, gravamos muitos dados e, claro, também lemos esses dados na inicialização do cliente. Precisamos ser capazes de lidar com o tráfego de jogos sociais à medida que nosso aplicativo cresce no iOS e no Facebook. O RightScale com CouchBase é uma boa solução e também uma solução em que você não precisa de um administrador em tempo integral? Além disso, seria recomendado executar na nuvem AWS ou realmente em hardware dedicado (bare metal)?.

  6. Avatar de Clinton Mills
    Clinton Mills

    Sabemos se eles estão usando a versão 1.8 ou 2.0?

  7. Avatar de Cory Armbrecht
    Cory Armbrecht

    Venho do Mongo e tenho visto alguns relatos que me levaram a procurar outras opções para determinados projetos, como este exemplo incrível. Após uma pesquisa mais aprofundada, esta parece ser uma solução fantástica. Eu trabalho com Node e, no momento, parece que o node-memcached é o único caminho a seguir. Como nunca usei o memcached, embora seja de fácil integração (drop-in), há algum recurso importante do qual eu sentiria falta?

  8. Avatar de Matt Ingenthron
    Matt Ingenthron

    Embora seja verdade que o node-memcached seja a opção pronta para produção hoje, nós temos um projeto no qual estamos avançando com um cliente Node baseado em libcouchbase. Por favor, envie um e-mail para mim (matt) na Couchbase se você quiser uma prévia.

    Usando o node-memcached, você realmente não perderia nada. Você teria que interagir diretamente com a interface REST de visualização, mas ela é bem documentada e usa HTTP simples, o que o Node torna realmente fácil, é claro.

    Você pode ver algumas ideias preliminares para isso aqui:
    https://www.couchbase.com/wiki/

    ... e mais discussões vêm ocorrendo entre os colaboradores e os desenvolvedores principais, tanto por e-mail quanto no IRC.

Deixe um comentário

Pronto para começar com o Couchbase Capella?

Começar a construir

Confira nosso portal para desenvolvedores para explorar o NoSQL, navegar por recursos e começar com tutoriais.

Use o Capella free

Coloque a mão na massa com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Quer saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.