Some thoughts on upgrading ES

I've seen many questions regarding issues after upgrade.
I have gone through upgrade before, so sharing my thoughts might help future ES users.

DON'T upgrade in your production environment, period!!!

What you need to do is bring up a second cluster and double write from your applications.
If you have old data that must go to the new cluster, do snapshot and restore or cross cluster index (which is not as friendly since restart is needed).

The down side is cost during the double write period. Engineering effort to handle breaking changes in application for the double write (which you need to do anyway, so it's really neutral).
The benefit is no production down time.

To me, the benefit out weights the cost by a huge margin.

Switch your reader to the new cluster when you have enough data to serve.
With 2 clusters, you can always switch back & forth from your reader to present data from different clusters.
If there's an issue with the new cluster, all you need to do is switch the reader and you will not have customer impact events. Find the issue, fix it. You can even upgrade the new cluster however you want since it's not actively serving.
That happened to me just few months ago. 7.3.0 has an issue with regard to accept mapping in rollover call. I found the issue during the double write period and bumped to 7.3.1 which has the fix. Zero customer impact. Imagine the issues at hand if I had upgraded production to 7.3.0 already and found this issue? The most likely solution is workaround in application cus another DB upgrade would put too much risk in operation.

Eventually shutting down the old cluster after the new cluster is serving for some time.

Voila.
My 2 cents.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.