Skip to content

Support n-1 version compatibility #1240

Open
@mooreds

Description

@mooreds

Support n-1 version compatibility

Previously Support zero downtime upgrades, renaming to be more accurate.

This was a feature request from a user. Thanks for the feedback, @trevorr !

Problem

"There is no official support for zero-downtime upgrades. Downtime causes us contractual headaches around SLAs and personal headaches around performing upgrades during the middle of the night on a weekend. I've done this successfully at my own risk, but it will make me increasingly nervous. This feature seems doable, even in the face of schema upgrades, with some constraints (both for FA and its users) on consecutive versions."

Note that the only current downtime if you run multiple nodes is when there are database upgrades and the database after upgrade is not compatible with version N-1. This downtime is typically seconds in duration, but does depend on the size of your data.

Solution

Ensure that version N and version N-1 of the application work with version N and version N-1 of the database, so that you can step from N-1 -> N with both nodes and the database with zero degradation.

Alternatives/workarounds

Automate the upgrade, do it in the middle of the night or other low traffic time.

Remain on an older version.

Provide a 'read only' degraded mode when you are upgrading or figure out some other way for the system to operate in a degraded, but still available mode during a database upgrade. Another option would be for a clear blue/green strategy set of instructions, which would probably impose some version to version limits on database changes.

Additional context

Modified Apr 13 2022 to be more precise. There are many approaches to minimizing downtime of upgrades.

Docs around upgrading currently: https://fusionauth.io/docs/v1/tech/admin-guide/upgrade#downtime

Community guidelines

All issues filed in this repository must abide by the FusionAuth community guidelines.

How to vote

Please give us a thumbs up or thumbs down as a reaction to help us prioritize this feature. Feel free to comment if you have a particular need or comment on how this feature should work.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions