Upgrading PSPDFKit Server

Information

PSPDFKit Server has been deprecated and replaced by Document Engine. To start using Document Engine, refer to the migration guide. With Document Engine, you’ll have access to robust new capabilities (read the blog for more information).

We recommend always running the latest version of PSPDFKit Server, as each version introduces new features and performance improvements. Additionally, we always verify that the release process is seamless when upgrading to the newest version from the last major release. If you’re using an older version, make sure to upgrade one major version at a time.

Example: If the latest version is 2020.6.2 and you’re running 2020.4.2, upgrade to 2020.5.1 first, and only then to 2020.6.2.

We recommend always going through the upgrade process in a non-production environment first.

The process of upgrading to a new version of PSPDFKit Server varies depending on whether you’re running a single Server instance or multiple Server instances.

Single-Node Deployment

In a single node deployment, simply shut down your PSPDFKit Server instance and start a new one using the new Docker image.

Multi-Node Deployment

In a multi-node setup, the simplest approach is to scale down your PSPDFKit Server deployment to only one instance and upgrade it. Then, once it’s up and running, start the other instances with the new version.

If you can’t accept downtime, you can also follow a more complex upgrade scenario:

  • Drain traffic from a single instance and make sure that no requests are directed to it.

  • Upgrade the instance to a new version. Don’t direct traffic to that instance yet.

  • Once it’s up and running, continue with other instances after you reach a number that’s sufficient for serving your user traffic. Note that, at this moment, all users are still being served by instances running the old version.

  • Switch all traffic to instances running the new version.

  • Continue with the upgrade for the rest of the instances. Once an instance is running the new version, you can immediately add it to the group serving the user traffic.

While this approach is more complex and requires a deployment infrastructure that provides control over which instances are serving user traffic, it allows you to upgrade without downtime.