Upgrading versions in Elasticsearch is often a very daunting task, especially when jumping major versions. Users fear downtime, data loss, configuration issues and more, all of which are legitimate risks when upgrading.
One way to prevent potential issues and upgrade easily is to add a second, new cluster with the updated version and write the data to both clusters in a synchronized manner. Having a mirroring solution in the application itself could be used to mirror data to multiple clusters in different versions and thus avoid downtime.
Another option is to try to restore snapshots from earlier versions in the newer version, but this might fail due for multiple reasons, such as jumping more than one major version, breaking changes or system changes.
If you’re feeling particularly lucky, you can try upgrading nodes in place using rolling restart, but this will likely cause downtime.
Opster’s Multi-Cluster Load Balancer can be used as a tool for enabling version upgrades with no downtime and upgrading from significantly older versions to new ones (such as bringing your Elasticsearch from v1 to v7 for instance).
With Opster’s Load Balancer, you can mirror data to newer versions of Elasticsearch without disabling the older version. This allows you to improve and adjust data structure and application API calls until all of the data in the new version is present and operational, while staying available the entire time.