como o elasticsearch salvou minhas buscas

45
Como o elasticsearch salvou minhas buscas

Upload: waldemar-neto

Post on 31-Jul-2015

184 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: Como o elasticsearch salvou minhas buscas

Como o elasticsearch

salvou minhas buscas

Page 2: Como o elasticsearch salvou minhas buscas

Opa!Sou o Waldemar Neto

Vocês podem me encontrar como @waldemarnt nas redes sociais

2

Page 3: Como o elasticsearch salvou minhas buscas

Sobre essa pessoa

▣ Gaúcho de Pelotas▣ Desenvolvedor▣ 6 anos de mercado▣ Focado na área web▣ Contribuidor na comunidade open source

3

Page 4: Como o elasticsearch salvou minhas buscas

Conrad Caine

Argentina

Pelotas

Alemanha

4

Page 5: Como o elasticsearch salvou minhas buscas

Obrigado pelos peixes, mas e ai?

▣ O que é exatamente o elasticsearch?▣ Como ele salvou minhas buscas?▣ Quando devo usar?▣ Como devo usar?▣ Qual a resposta para a pergunta sobre a vida

o universo e tudo mais?

5

Page 6: Como o elasticsearch salvou minhas buscas

‘’“Elasticsearch is a search server based on Lucene. It provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License.”

Banon. Shay

6

Page 7: Como o elasticsearch salvou minhas buscas

Entendendo melhor

▣ Full text search engine□ Baseado no Apache Lucene

▣ Uma interface RESTful▣ Schema less style▣ Open source (o elasticsearch)

7

Page 8: Como o elasticsearch salvou minhas buscas

Como isso funciona?

1.Arquitetur

a8

Page 9: Como o elasticsearch salvou minhas buscas

Funcionamento

Cluster

Node1 Node2

Node3

Shard1

Shard3

Shard3

9

Shard2Shard3

Shard1

Page 10: Como o elasticsearch salvou minhas buscas

Interagindo com o servidor

10

Page 11: Como o elasticsearch salvou minhas buscas

Estrutura de dados

1. Index2. Type3. Document

11

1 2

3

RESTful Response

Page 12: Como o elasticsearch salvou minhas buscas

Na linha do RESTful

index

type

document reference(id)

12parameters

Page 13: Como o elasticsearch salvou minhas buscas

Mapping

▣ NoSql style▣ Pode ser criado manualmente▣ Pode ser alterado dinamicamente

13

Page 14: Como o elasticsearch salvou minhas buscas

Índice invertido, onde a magia acontece

Term Doc_1 Doc_2 Doc_3

Waldemar x x

Bicicleta x x x

Avião x

14

Page 15: Como o elasticsearch salvou minhas buscas

‘’“Keep your data simple, your documents clear and I’ll deliver faster than light”

15

Page 16: Como o elasticsearch salvou minhas buscas

O que o elasticsearch me oferece?

▣ Queries▣ Filtros▣ Geolocation▣ Aggregations▣ Full Text Search▣ Escalabilidade▣ Comunicação RESTful

16

Page 17: Como o elasticsearch salvou minhas buscas

Query

17

SENSE CHROME EXTENSION

Page 18: Como o elasticsearch salvou minhas buscas

Resposta

18

INFORMAÇÃO PADRÃO

TOTAL DE SHARDS

CONTEUDO

Page 19: Como o elasticsearch salvou minhas buscas

Filtros

19

FILTROS NÃO SÃO CACHEADOS

_cache: true

Page 20: Como o elasticsearch salvou minhas buscas

Aggregations

20

AGREGAR O CAMPO REF CHAVE E QUANTIDADE

Page 21: Como o elasticsearch salvou minhas buscas

21

NÃO DESTRUA TUDO

Page 22: Como o elasticsearch salvou minhas buscas

Quando o elastic se tornou o diferencial

2.Necessidad

e22

Page 23: Como o elasticsearch salvou minhas buscas

Como fui salvo pelo elasticsearch

23

Page 24: Como o elasticsearch salvou minhas buscas

O Projeto

webservice

database

Client24

Page 25: Como o elasticsearch salvou minhas buscas

A necessidade!

▣ Busca documentos baseado no conteúdo▣ Filtro por opções▣ Filtro por tipos▣ Filtro por hierarquias

Search field

search

25

Page 26: Como o elasticsearch salvou minhas buscas

Armazenando como necessário

▣ O que precisava ser buscado?▣ Onde estava isso?▣ Como poderia ser facilitado?

26

Page 27: Como o elasticsearch salvou minhas buscas

Sincronizando dados com o elasticsearch

3.Integração

27

Page 28: Como o elasticsearch salvou minhas buscas

Comunicação Client x Elastic

▣ Preparação de dados▣ Armazenamento▣ Verificações

28

Page 29: Como o elasticsearch salvou minhas buscas

Usando callbacks e eventos

Uma maneira de manter a sincronia entre a aplicação e o servidor de buscas.

▣ Depois de salvar/alterar um dado▣ Depois de deletar um dado

29

Page 30: Como o elasticsearch salvou minhas buscas

Mantendo controle dos dados

▣ Re-indexar todo o conteúdo▣ Verificar o conteúdo

30

Page 32: Como o elasticsearch salvou minhas buscas

Javascript API e busca real-time

Fácil interação

var elasticsearch = require('elasticsearch');

var client = new elasticsearch.Client({

host: 'localhost:9200',

log: 'trace'

});

32

Page 33: Como o elasticsearch salvou minhas buscas

Reposta Json

33

Page 34: Como o elasticsearch salvou minhas buscas

Aggregations

34

Page 35: Como o elasticsearch salvou minhas buscas

Os clients externos na jogada

▣ Milhares de aplicativo fazendo buscas▣ Diversas partes do mundo▣ Nem tudo é um mar de rosas, e a segurança

desse RESTful?

35

Page 36: Como o elasticsearch salvou minhas buscas

Como proteger o servidor sem alterar seu desempenho?

4.Segurança

36

Page 37: Como o elasticsearch salvou minhas buscas

▣ Autorização▣ Niveis de acesso▣ Logs▣ Filtros de IP▣ Um produto pago

Shield

37

Page 38: Como o elasticsearch salvou minhas buscas

Proteção sem gasto

▣ NGIX Proxy reverso▣ Seu proprio “Shield”

38

Page 39: Como o elasticsearch salvou minhas buscas

Proxy Reverso

▣ Http Authorization

39

Page 40: Como o elasticsearch salvou minhas buscas

O Seu próprio Shield

▣ Um pouco de OAuth2▣ Um pouco de NodeJS▣ Um pouco de MongoDB▣ Sua própria porta▣ Todo acesso ao servidor

bloqueado.

40

Page 41: Como o elasticsearch salvou minhas buscas

Monitoramento

▣ Zabbix▣ Nagios

41

Page 42: Como o elasticsearch salvou minhas buscas

Mas e ai, o que temos hoje?

5.Resultado

42

Page 43: Como o elasticsearch salvou minhas buscas

100.000+Documentos indexados

200msTempo medio de resposta para as requisições

30.000+Dispositivos consultando

43

Page 44: Como o elasticsearch salvou minhas buscas

44

ESTABILIDADE

Page 45: Como o elasticsearch salvou minhas buscas

Thanks!Perguntas?

https://github.com/waldemarnt

https://twitter.com/waldemarnt

https://fb.com/waldemarnt

https://waldemarnt.blogspot.com45