Elastic search hos skatteetaten v5

43
ELASTICSEARCH AT THE NORWEGIAN TAX SERVICES Oslo Enterprise Search Meetup Teknologihuset Magnus Haug - [email protected] Jørgen Braseth - [email protected] 18.02.2014

Transcript of Elastic search hos skatteetaten v5

Page 1: Elastic search hos skatteetaten v5

ELASTICSEARCH AT

THE NORWEGIAN TAX SERVICES

Oslo Enterprise Search Meetup

Teknologihuset

Magnus Haug - [email protected] Jørgen Braseth - [email protected]

18.02.2014

Page 2: Elastic search hos skatteetaten v5

AGENDA

MAG & Search

Examples of use

How we did it

Tools

Conclusion

Page 3: Elastic search hos skatteetaten v5

MAG & SEARCH

Background

Page 4: Elastic search hos skatteetaten v5

MAG

Replacing 19 existing systems

Data for tax returns

~ 200M documents each year

At least 10 years data retention

Page 5: Elastic search hos skatteetaten v5

«We want a Google search»

Page 6: Elastic search hos skatteetaten v5

OUR ALTERNATIVES

Page 7: Elastic search hos skatteetaten v5

Designed for horizontal scaling

Lucene

HTTP or Binary

Page 8: Elastic search hos skatteetaten v5

FINDING REPORTED INFORMATION

Example of use

Page 9: Elastic search hos skatteetaten v5
Page 10: Elastic search hos skatteetaten v5

{CICS}

Page 11: Elastic search hos skatteetaten v5
Page 12: Elastic search hos skatteetaten v5
Page 13: Elastic search hos skatteetaten v5
Page 14: Elastic search hos skatteetaten v5
Page 15: Elastic search hos skatteetaten v5
Page 16: Elastic search hos skatteetaten v5
Page 17: Elastic search hos skatteetaten v5
Page 18: Elastic search hos skatteetaten v5
Page 19: Elastic search hos skatteetaten v5
Page 20: Elastic search hos skatteetaten v5

IDENTIFICATION

Example of use

Page 21: Elastic search hos skatteetaten v5
Page 22: Elastic search hos skatteetaten v5

HOW WE DO IT

Architecture

Page 23: Elastic search hos skatteetaten v5

Document store

ATOM Indexing process

Elasticsearch

ATOMATOM

HOW WE DO: INDEXING

Page 24: Elastic search hos skatteetaten v5

HOW WE DO: COMBINING DATA SOURCES

Document store

ATOM Indexing process

Elasticsearch

ATOMATOM

Person infoCompany info

Page 25: Elastic search hos skatteetaten v5

HOW WE DO: SECURING DATA

Document Index

Read unfiltered Write

Search API Indexing process

Read filtered

Page 26: Elastic search hos skatteetaten v5

HOW WE «DO»: ROBUSTNESS

Rack 1

ES Node 1

ES Node 2

Rack 2

ES Node 3

ES Node 4

Rack 3

ES Node 5

Page 27: Elastic search hos skatteetaten v5

HOW WE DO: REINDEXING

Document store

ATOM Indexing process

Elasticsearch

ATOMATOM

Person infoCompany info

ATOM

Page 28: Elastic search hos skatteetaten v5

HOW WE DO: HOT SWAPPING INDICES

Read Write

Search API Indexing process

New indexOld index

Page 29: Elastic search hos skatteetaten v5

TOOLSEveryday maintenance

Page 30: Elastic search hos skatteetaten v5

Head

Page 31: Elastic search hos skatteetaten v5

Big Desk

Page 32: Elastic search hos skatteetaten v5

Elasticsearch HQ

Page 33: Elastic search hos skatteetaten v5

Kibana

Page 34: Elastic search hos skatteetaten v5

Marvel

Page 35: Elastic search hos skatteetaten v5

Marvel

Page 36: Elastic search hos skatteetaten v5

IMPRESSIONS

What do we think?

Page 37: Elastic search hos skatteetaten v5

PERFORMANCE

100 million docs

Two ES-nodes

< 1000 ms

http://www.sxc.hu/photo/1430721

Page 38: Elastic search hos skatteetaten v5

DEVELOPER FRIENDLY

Easy setup

Easy testing

Easy debugging

cURL!

Page 39: Elastic search hos skatteetaten v5

INTEGRATION TESTING

@RunWith( ElasticsearchRunner.class )

public class MinSystemTest {

@ElasticsearchNode( name = "iris-test", clusterName = "iris-test" )

private static Node node;

@ElasticsearchClient( nodeName = "iris-test" )

private static Client client;

...

SearchRequestBuilder searchRequestBuilder =

client.prepareSearch( INDEKSNAVN ).setQuery( QueryBuilders.matchAllQuery() );

return client.search( searchRequestBuilder.request() ).actionGet();

...

Page 40: Elastic search hos skatteetaten v5

UNUSED FEATURES

Percolate

Highlighting

Suggestions

Rivers

REST-API

Page 41: Elastic search hos skatteetaten v5

FUTURE PLANS FOR ELASTICSEARCH AT MAG

Upgrade to v1.0

Used as a cache

As a service in our PaaS

Page 42: Elastic search hos skatteetaten v5

ARE WE HAPPY?

Page 43: Elastic search hos skatteetaten v5

?