How to upgrade (and why)
Upgrading your Elastic deployments gives you the latest and greatest features available to Elastic customers.
Why upgrade
Take advantage of a number of benefits that come with upgrading to the latest version of Elastic, including significant performance improvements, groundbreaking new features, bug fixes, security updates, and running on a supported version.
Product End of Life (EOL) policy
As new versions are released, older versions reach their end of life at a regular cadence. This has implications on the level of support we can offer should issues arise.
Security and bug fixes
Bugs happen. Our testers and huge community of users help us find them and they get fixed. Upgrading to the latest version fixes these bugs.
New security issues can be submitted and reviewed at our security issues page. For Elastic Cloud users, security patches are applied by Elastic automatically.
New features and performance improvements
The performance of our products is constantly increasing so you can search faster, use less memory, and access cheaper storage.
Alongside continual Elastic Stack performance improvements, many newly released features improve the user experience for our key solutions — Enterprise Search, Observability, and Security.
Step by step upgrading
Before any upgrade, there are a number of things that you need to plan for before you can unlock the benefits.
Warning! The scope of upgrading is large, this is just a guide with points that help your discovery and planning throughout your upgrade journey. When creating your inventory and test plan make sure that you include every integration, both incoming and outgoing, including both Elastic and non-Elastic components.
Conduct a component inventory
It is very important to map all the components that are being used on the Elastic Stack. When you upgrade your deployment, you also may need to upgrade all the other components. You should record if each component is used, and if it is, you should record the current version. See the below example list of components to check:
|
|
Tip: When you do your inventory, you can enable audit logging to evaluate resources that are accessing your deployment.
Test your development environment
It is highly recommended to test and upgrade in your development environment before your production environment. Therefore, it is crucial to make sure that both your development and production environments have the same settings. See the below example list of components to check:
|
|
Tip: In order to test the upgrade properly, make sure your test environment is working with similar search and indexing loads to your production environment.
Back up your data
Once an upgrade is started, it must be completed. Therefore, you need to be ready in case something goes wrong.
If an error occurs, you will want to restore your data to its position before the upgrade attempt.
To do this you must take a snapshot of your cluster with the indices at the old version, then (if something goes wrong) restore this snapshot to recover your data.
Always contact Support if you face difficulties in the upgrade, but it is vital to have a snapshot to recover.
Tip: If you are upgrading in Elastic Cloud, a snapshot is automatically taken before upgrading.
Key preparation
Due to the changes occurring in the software as new versions are released, there may be incompatibilities that need to be resolved in order for an upgrade to be successful.
You should investigate all the breaking changes from the current version until your target version.
Cluster monitoring is also important to validate the health of your cluster ahead of an upgrade. Your monitoring cluster should always be separate from your production cluster.
Lastly, it's also absolutely crucial to run the Kibana Upgrade Assistant, which will help you find issues for your upgrade.
Planning the upgrade day
- Assess if the current deployment is in a healthy state and if there are sufficient resources (disk, CPU, memory) to undertake the upgrade. Remember that during a rolling upgrade nodes are taken out of service, and the remaining nodes will have to handle the load.
- Schedule a maintenance window when it's lower load
- Stop or lower your document ingestion rate
- Stop running unnecessary jobs - e.g., machine learning.
- Raise a support ticket in case of issues or concerns.
Doing the upgrade
Elastic Cloud
You can upgrade your Elastic Stack version with one click with Elastic Cloud with no downtime.
This is the simplest and easiest way to upgrade your cluster.
Note: Features in Elastic Cloud (Elasticsearch Service or ESS) are released every few weeks and available automatically, whilst Elastic Cloud Enterprise (ECE) has separate release versions and needs to be upgraded separately.
Upgrading Elastic Cloud on Kubernetes (ECK) has a few more aspects to consider.
On-prem
There are several routes to upgrade that have different benefits and considerations.
See below the main upgrading strategies available.
Tip: If you are using time series data and have a reasonable retention period, you can:
- Create a new deployment at the new version.
- Direct your logs to both the new and old versions concurrently.
- Validate the data in the new deployment matches the old.
- Cross-cluster search can be used to search across multiple deployments simultaneously.
- Wait until all data only in the old version passes its retention period.
- Delete the old deployment and use the new.
Learn more
How Elastic can help
Ranging from documentation that helps guide you through a self-led upgrade, to one-on-one consultants leading you through the journey, Elastic has options to suit your needs.
Consulting
Consultants at Elastic are a great help for any customer when dealing with your Elastic deployments.
They have significant experience in helping our customers upgrade.
Engage with Elastic Consulting to find out more, and register to watch this webinar about upgrading to 8.x.
Support
If you have a supported Elastic subscription, our Support team can offer help should things go wrong with your deployment when upgrading.
Therefore, we always recommend opening a support case if you have any concerns about the upgrade. This will allow our engineers to prepare for any issues you face and provide some guidance.
If your production environment goes down during an upgrade your ticket should be Severity 1.
Community forums
You can always ask a question on the community discussion forums if you have concerns or problems before or during your upgrade process.
Documentation
Our documentation team has created some resources to help guide you through your upgrade process, going into more technical detail.
Furthermore, our ‘Step by step upgrading’ tab may also be helpful.