BlogEngineering

A step-by-step guide to how we upgraded Elasticsearch with no downtime

At Intercom, we rely on Elasticsearch as a core technology, which made the task of upgrading with zero disruption to our customers all the more challenging. Here's how we did it.

Cathal Coffey10 June 2019Reading time: 9 min
An oil painting of a choppy ocean with boats in the background.
step 1 set up the new elasticsearch cluster
Step 2 take a snapshot of the old cluster
Step 3 setup a temporary cluster and restore the snapshot
Step 4 delete the temporary cluster
Step 6 retire the old cluster and use the new cluster
Graphs showing performance regression from the Elasticsearch 2.3.3. to 5.6.9. in CPU usage, indexing rate, indexing latency, young garbage collection time and old garbage collection time
Memory leak caused by slow logging over 3 days
Graphs showing improved performance in average ingestion latency, average search latency and average CPU usage from Elasticsearch 2.3.3. to 5.6.9.
Elasticsearch 2.3.3 is plotted in red and 5.6.9 is in blue. Both clusters are under an identical (ingestion + search) work load.