What do I need to know when upgrading the QIE engine in Docker or Kubernetes environments?

0 votes
asked Dec 9, 2021 by ben-s-7515 (11,340 points)
Our container environment is running an older version of the QIE engine.  What needs to be considered when upgrading the engine in a container environment?

1 Answer

0 votes

Containers have changed the way we deploy and use software. It gives everyone the ability to package software up to run in various environments without having to worry about the infrastructure. However, when running QIE in a container you must use an external database outside of the container that all the containers in the cluster share. This makes upgrading the engine something that must be scheduled in advance.

A couple of things to consider:

- QIE updates the database schema when it starts up, this means that you cannot have two different versions of the engine running in a cluster at the same time, when the newer version of QIE starts it will update the schema and cause any older versions of QIE to run into errors. Because of this, if any running instance of the engine detects that the schema has changed, then they will automatically stop themselves.

- Once QIE has updated the schema there is no way to "roll back" to a previous version of the database, this means that you cannot simply startup the old container to get things back online.

With this in mind, we recommend that you have a test environment configured with the same configuration as the production environment (i.e., if the production environment is running in kubernetes, the test environment should run in kubernetes, and both the production and test environments should be running the same database engine version). This allows you to do upgrades in the test environment and make sure that everything works according to your expectations before upgrading the production environment.

Because of the inability to run multiple nodes of QIE on different versions of the engine you can't simple update the docker image in kubernetes and then do a RollingUpdate in your configuration file.  If upgrading Kuberentes, you will want to make sure that your strategy is set to 'Recreate'.

The following steps should be used when upgrading your container environment:

1 - Stop the QIE containers in your environment.

2 - Take a snapshot of the database.

3 - Update your configuration to point to the new image of QIE.  This configuration is different for each container orchestrator, but you will have a reference in your configuration to an image that point to 'qvera/qie:{someVersion}'. You will update the version to match the image you are wanting to deploy. Published Qvera images can be found on docker hub here.

4 - Start your container environment, this step will take a few minutes depending on your environment, the container image will be downloaded from docker hub, then QIE will start up and do any database schema updates that are needed for the updated version of the engine.

5 - Browse to the QIE admin console and wait for the login page.

Once you are at the login page, the upgrade is complete, and the engine is running again. The engine will automatically start processing messages.

As always, if you ever have questions or need assistance upgrading your environment, you can always email or call Qvera support.

answered Dec 9, 2021 by ben-s-7515 (11,340 points)