Observabilidade
Media and Entertainment

Gurunavi, Inc.: análise de grandes volumes de dados de log com eficiência operacional e funcionalidade de busca de alta velocidade

EM RESUMO

  • 50
    tipos de bancos de dados
  • 50
    bilhões de documentos, volume total dos dados
  • 30 TB
    espaço de armazenamento em disco

Sobre a Gurunavi, Inc.

Desde o estabelecimento do website Gurunavi de informações sobre restaurantes em junho de 1996, a Gurunavi Inc. continuou a operar uma ampla gama de negócios voltados principalmente para o fornecimento de informações sobre restaurantes e outros serviços similares. Como líder consagrado há muito tempo nesse setor, a Gurunavi possui um impressionante total de cerca de 500 mil restaurantes em suas listas, 58.951 restaurantes membros pagos1, 61 milhões de usuários únicos mensais2 e 17,96 milhões de membros3. Além disso, fornece serviços de suporte de ponta a ponta, como suporte de tecnologia de comunicação da informação (TCI) para restaurantes, oferecendo benefícios adicionais tanto aos visitantes quanto aos próprios restaurantes. Desde 2018, a Gurunavi começou a oferecer novos serviços para atrair clientes, incluindo o uso de redes sociais, a vinculação das identificações de membro a seus IDs Rakuten e o serviço Gurunavi Pay para pagamento sem dinheiro nos restaurantes.

O que os usuários comuns mais conhecem são as informações de restaurantes do website Gurunavi que podem ser visualizadas via smartphone ou PC, mas esse é apenas um pequeno segmento dos serviços prestados pela empresa. Os serviços da Gurunavi incluem um serviço de contabilidade que ajuda os restaurantes na gestão de clientes e o serviço de multipagamento Gurunavi Pay. Todos os serviços fornecem suporte abrangente para o estabelecimento de ambientes de TCI nos restaurantes. Claro, nem é preciso dizer que tudo isso é possibilitado por grandes volumes de dados de log.

1: até 30 de setembro de 2019. 2: até dezembro de 2018. 3: até 1º de outubro de 2019.

A Elastic foi escolhida para realizar as buscas de alta velocidade necessárias para analisar grandes volumes de logs

A Gurunavi é uma precursora no Japão entre os serviços online que fornecem informações sobre restaurantes e outros tópicos, e administra um ambiente de TCI em larga escala para dar suporte a esses serviços desde os primórdios de suas operações. Obviamente, esses sistemas produzem um grande volume de dados de log, e a análise desses dados antes consumia muito tempo e mão de obra.

Toshiaki Iwamoto é vice-chefe da Seção de Engenharia do Departamento de Desenvolvimento da Gurunavi. Ele relembra as circunstâncias da época da seguinte forma:

“Por volta de 2016, a Gurunavi já tinha milhares de servidores. Quando havia uma falha ou necessidade de manutenção, precisávamos fazer login diretamente no servidor afetado para verificar os logs, procurar o log com o comando grep, copiar o log temporariamente em um ambiente local usando o comando scp e lidar com o problema dessa forma. Esse processo de investigação levava mais de uma hora, o que significa que não conseguíamos responder em tempo real e tínhamos muito trabalho manual a fazer. Isso levava a descuidos e outras falhas por lapso de atenção. À medida que nossos sistemas e logs cresciam mais e mais, precisávamos cada vez mais de algo para lidar com essa carga de trabalho.”

Foi então que a Gurunavi encontrou dois produtos do Elastic Stack: o Elasticsearch e o Kibana.

O Elastic Stack possibilita a busca em tempo real de alta velocidade em várias fontes de dados sem necessidade de download dos dados de destino em um ambiente local, por meio do uso de uma ampla variedade de componentes de produtos fornecidos. À medida que os serviços da empresa se multiplicavam e se tornavam mais avançados, as chamadas de API entre as aplicações também iam se tornando cada vez mais numerosas. Como a Gurunavi precisa analisar uma infinidade de logs, os produtos do Elastic Stack foram realmente a solução ideal para suas necessidades. “Na época, não havia absolutamente nenhum produto no mercado que pudesse ser chamado de concorrente, e decidimos pela Elastic porque era a única opção”, disse Iwamoto, da Gurunavi. A Gurunavi fez a implementação completa do Elasticsearch e do Kibana em 2016.

Implementação do Elastic Cloud para reduzir a carga de trabalho dos upgrades de versão

No final de 2018, alguns anos após a implementação, a Gurunavi começou a usar a AWS.

A Gurunavi escolheu esse momento para mudar algumas de suas licenças do Elastic Stack para a nuvem, pois elas precisavam ser renovadas ao mesmo tempo, e a empresa começou a usar o Elasticsearch Service do Elastic Cloud. O objetivo era implementar a coleta e a análise de logs em um ambiente AWS, bem como reduzir a carga de trabalho operacional do upgrade do Elastic.

“Alguns usuários disseram que queriam visualizar o AWS Cloudwatch Logs usando a mesma interface de alta qualidade do Kibana com a qual já estavam acostumados”, disse Iwamoto. “Comparamos a coleta de dados de log e outros recursos com os produtos dos concorrentes, e o Elastic Cloud saiu na frente em termos de custo e desempenho, além do fato de sempre ter a versão mais recente disponível. Para implementação, escolhemos usar o Functionbeat e o Ingest Node do Elasticsearch.”

A outra prioridade para a Gurunavi era reduzir a carga de trabalho operacional de upgrades e tarefas semelhantes. Era essencial evitar que essas tarefas se tornassem muito dependentes das habilidades de um único indivíduo, já que Iwamoto era o único funcionário com o conhecimento técnico necessário. “As atualizações de versão são frequentes, mas eu era o único realmente capaz de cuidar delas, o que significava que havia uma enorme carga de trabalho exclusivamente em cima de mim. Achei que também poderíamos resolver esses problemas adotando o Elastic Cloud.”

(Toshiaki Iwamoto, Gurunavi)

Dessa forma, a Gurunavi foi equipada com um ambiente Elastic abrangente, tanto local quanto via nuvem.

Busca de alta velocidade em logs de todas as aplicações e dispositivos de rede

O sistema atual da Gurunavi lida com logs adquiridos de todas as aplicações e dispositivos de rede, o que corresponde a 50 tipos de bancos de dados e um volume total de dados de 50 bilhões de documentos.

Para extração, os dados de log dos clusters locais de alta capacidade são enviados para o Elasticsearch usando o Logstash, enquanto os dados do Cloudwatch Logs no ambiente de nuvem (incluindo containers) são enviados do Functionbeat para o Ingest, conforme mencionamos anteriormente. Os dados do [Amazon] S3 são enviados para o Elasticsearch via Logstash. Como todos os logs podem ser monitorados de forma transparente e transversal, é possível não apenas solucionar problemas com esses dados, mas também colocá-los em usos mais estratégicos.

“A Gurunavi é uma prestadora de serviços, o que significa que lidamos com uma ampla gama de linguagens. Além disso, o tipo de dados de log adquiridos depende da natureza da aplicação envolvida, e há muitos índices envolvidos”, disse Iwamoto. “O desenvolvedor queria ver tudo de forma transversal, incluindo a nuvem. Agora que esse ambiente Elastic abrangente foi configurado, isso é realmente possível.”

Solução rápida de problemas, redução da carga de trabalho operacional e novos usos para os dados

Iwamoto inicialmente avaliou os benefícios gerais do Elastic Stack com base em dois pontos.

“Primeiro, costumávamos levar mais de uma hora para copiar os dados de log e verificá-los manualmente, e foi um tremendo impulso para nossa eficiência que essas tarefas tenham sido reduzidas a meros segundos. Isso acelerou todo o processo, desde o surgimento de um problema até a conclusão da investigação sobre ele, e a precisão do processo melhorou drasticamente. Usando a API fornecida, os alertas de log são enviados para o Slack ou Webhook, e isso nos permitiu responder mais rapidamente. Além disso, o Elastic Cloud pode ser atualizado sem interrupções e sem a grande carga de trabalho envolvida na mudança para outra versão. O fato de a versão mais recente estar sempre disponível para uso é outro grande benefício. No passado, quando eu cuidava dos upgrades praticamente sozinho junto com meu outro trabalho, levávamos cerca de cinco a dez dias — incluindo as investigações — para realizar um upgrade. Agora, os upgrades são quase instantâneos.” (Toshiaki Iwamoto, Gurunavi)

Também é impossível ignorar a contribuição do sistema para a nova estratégia de turismo receptivo da empresa.

Por exemplo, é possível usar o Elastic Stack para extrair dados de geolocalização e visualizar a localização dos visitantes do website. “O Amazon Cloud Front é um serviço de CDN na AWS e é possível usar seus logs para ver dados de acesso ao website por país”, disse Iwamoto. “Por que estamos recebendo tantas visitas desse local? E por que tão poucas daqui? É possível usar esses dados para levantar essas questões e explorar os dados para determinar, por exemplo, se há um problema com um conteúdo relevante ou com um provedor de serviços. Com base nessas informações, podemos tomar medidas para aumentar a velocidade de entrega do conteúdo, escolher o momento para o lançamento de uma campanha ou implementar outras decisões que tornem as informações extremamente benéficas para o futuro de nossa estratégia de turismo receptivo.”

Outro elemento que contribuiu para essa decisão intuitiva foi a visualização dos dados gráficos usando o Vega. Um novo recurso do Kibana 6.2 tornou possível usar dados do Elasticsearch com o Vega e o Vega-Lite para criar visualizações avançadas. Com essas visualizações, os usuários puderam obter uma visão geral das informações extraídas de grandes quantidades de dados e usá-las para chegar a conclusões intuitivas. Esse recurso também é útil para quem não é especialista em TI, como funcionários de departamentos de marketing ou administração.

Resumindo os benefícios da implementação da Elastic, Iwamoto observou que “com nossos complexos ambientes de sistemas atuais e as enormes quantidades de dados de log associadas, é impossível imaginar um mundo onde o Elastic Stack não exista”.

Expansão do uso dos dados na estratégia de negócios

Tendo habilitado buscas de alta velocidade em logs e reduzido a carga de trabalho dos upgrades de versão usando a nuvem, a Gurunavi já começou a considerar o uso do Elastic Stack para fins mais estratégicos.

“Com o ambiente Elastic e o Elastic Cloud implementados, ficamos livres das restrições de depender das habilidades de um único indivíduo para questões operacionais, e os usos do sistema também aumentaram drasticamente”, disse Iwamoto. “Por exemplo, um dashboard criado pelo pessoal do lado da aplicação mostrou as taxas de conversão de clientes em potencial ao longo do tempo em relação ao KPI. Ao fazer o máximo uso dos dados de log não apenas para solução de problemas e outros propósitos relacionados ao gerenciamento do sistema, mas também para fins relacionados à estratégia de negócios como esse, acreditamos ser possível gerar níveis ainda mais altos de benefícios.”

A Gurunavi continua a fornecer serviços de alto valor agregado para clientes e restaurantes.

O Elastic Stack desempenha um papel essencial no máximo aproveitamento de enormes quantidades de dados de log, totalizando 50 bilhões de documentos, que tornam esses serviços possíveis.