All Aiven services can be upgraded without the need to schedule a long period of downtime. The upgrade procedures are fully automated and require no action from you once they have been triggered. This applies to:
Software upgrades (minor or major).
Service plan upgrades (or downgrades).
Maintenance updates for new features, bug fixes and patches.
In the vast majority of cases, these operations are seamless and the end users of Aiven services experience minimal interruption (or none at all!). However, it is still important to prepare for any upgrade to avoid running into difficulty.
We recommend that you consider the following tips so that you can be confident your next upgrade will run as smoothly as possible.
#1: Choose the right time to upgrade
Capacity planning is very important.
If you need to upgrade your plan to add more CPU, memory or storage, try to schedule this well before your service really starts to struggle. In our experience, if a database is under extreme load at the time an upgrade or maintenance operation is triggered, this is when problems can occur.
The Aiven platform follows the immutable infrastructure principle, meaning that servers are always replaced rather than modified in place. During an upgrade, all your data will be automatically copied from old servers to new ones. This process can take some time if you have a lot of data and the replication activity adds some extra load which will cause difficulty for an already maxed out service.
Aiven’s metrics integrations can be used to view patterns and trends which are useful for deciding when to upgrade.
If storage utilization is trending upward, try to schedule a plan increase before the service is 80% full. If you need additional storage but do not need any extra CPU or memory, please get in touch and we can discuss options for custom plans. If your service is already beyond 80% full, consider deleting some old or unused data. If this is not possible, contact Aiven Support and we can advise further.
If you have a clear pattern of CPU utilization with regular peaks and troughs, try to schedule your maintenance operation when your service workload is lowest, perhaps overnight or across the weekend.
Upgrades and maintenance operations typically take several hours for services with significant amounts of data. This shouldn’t usually be a concern since nodes are replaced in a rolling fashion and the service remains operational throughout. But when resources are stretched, clients may experience instability during this period and the upgrade will also take longer than it should.
#2: Test software upgrades for compatibility
Generally speaking, applications will not need their client libraries to be upgraded at the exact same moment as the Aiven service to which they are connecting. However, it is still a good idea to run workload tests against the new versions in a safe environment before pushing forward to production.
For Aiven for PostgreSQL, you can fork a database to a new service already running the target version and point some test queries or applications there before deciding to upgrade your main databases.
For Aiven for Apache Kafka, you can provision a new service at the target version and produce some data there, or replicate some data from your existing cluster using Apache Kafka MirrorMaker 2.
It is also a good idea to carefully review the release notes published by the open source projects to be advised of any breaking changes, especially in the case of major version upgrades.
#3: Take note of End of Life (EOL) dates
Aiven follows the same schedule for end-of-life as the respective open source (“upstream”) projects. When a project retires a specific version upstream, it will stop receiving security updates and critical bug fixes, meaning we can no longer offer the same level of service and support that we’d like.
Aiven will notify you well in advance of a version you run becoming EOL. Please ensure that you have correctly set one or more tech contact email addresses (“Technical Emails” in the Settings page of Aiven console) so that these alerts will be sent to the most appropriate people.
In any case, we recommend that you plan and upgrade your services well before the actual EOL deadline. The previous tip about compatibility testing will help you gain confidence that the new version will work well for your users and applications.
More information about our EOL policy can be found in a dedicated help article on this topic: EOL for major versions of Aiven Services.