Compartilhar via


Elasticsearch em um aplicativo nativo de nuvem

Dica

Esse conteúdo é um trecho do livro eletrônico, para Projetar os Aplicativos .NET nativos de nuvem para o Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura da capa do livro eletrônico Aplicativos .NET nativos de nuvem para o Azure.

O Elasticsearch é um sistema de pesquisa e análise distribuído que permite funcionalidades complexas de pesquisa em diversos tipos de dados. Ele é de código aberto e amplamente popular. Considere como as seguintes empresas integram o Elasticsearch aos respectivos aplicativos:

  • Wikipédia para pesquisa de texto completo e incremental (pesquisar conforme você digita).
  • GitHub para indexar e expor mais de 8 milhões de repositórios de código.
  • Docker para fazer com que a biblioteca de contêineres possa ser descoberta.

O Elasticsearch é criado com base no mecanismo de pesquisa de texto completo Apache Lucene. O Lucene fornece indexação e consulta de documentos de alto desempenho. Ele indexa os dados com um esquema de indexação invertido, em vez de mapear páginas para palavras-chave, ele mapeia palavras-chave para páginas, como um glossário no final de um livro. O Lucene tem funcionalidades avançadas de sintaxe de consulta e pode consultar dados por:

  • Termo (uma palavra completa)
  • Prefixo (começa com uma palavra)
  • Curinga (usando filtros "*" ou "?")
  • Frase (uma sequência de texto em um documento)
  • Valor booliano (pesquisas complexas que combinam consultas)

Embora o Lucene forneça um canal de baixo nível para pesquisa, o Elasticsearch fornece o servidor que usa o Lucene como base. O Elasticsearch adiciona funcionalidades de nível superior para simplificar o funcionamento do Lucene, incluindo uma API RESTful para acessar a funcionalidade de indexação e pesquisa do Lucene. Ele também fornece uma infraestrutura distribuída com capacidade para grande escalabilidade, tolerância a falhas e alta disponibilidade.

Para aplicativos nativos de nuvem maiores com requisitos complexos de pesquisa, o Elasticsearch está disponível como um serviço gerenciado no Azure. O Microsoft Azure Marketplace apresenta modelos pré-configurados que os desenvolvedores podem usar para implantar um cluster do Elasticsearch no Azure.

No Microsoft Azure Marketplace, os desenvolvedores podem usar modelos pré-configurados criados para implantar rapidamente um cluster do Elasticsearch no Azure. Usando a oferta gerenciada pelo Azure, você pode implantar até 50 nós de dados, 20 nós coordenadores e três nós mestres dedicados.

Resumo

Este capítulo apresentou uma análise detalhada dos dados em sistemas nativos de nuvem. Começamos comparando o armazenamento de dados em aplicativos monolíticos com os padrões de armazenamento de dados em sistemas nativos de nuvem. Vimos os padrões de dados implementados em sistemas nativos de nuvem, incluindo consultas entre serviços, transações distribuídas e padrões para lidar com sistemas de alto volume. Comparamos dados SQL com NoSQL. Vimos as opções de armazenamento de dados disponíveis no Azure que incluem opções centradas na Microsoft e de código aberto. Por fim, discutimos o cache e o Elasticsearch em um aplicativo nativo de nuvem.

Referências