Noteworthy at Compose: Upgrading RabbitMQPublished
This is your weekly summary of Compose news for those changes and updates which can make your life easier. In this December 3rd 2018 edition, we look at the process of upgrading RabbitMQ.
Last week, we rolled out RabbitMQ version 3.7.9. That means you can upgrade your existing deployment to run the new version. After 30 days, version 3.7.9 will become the preferred version and then after 30 more days you will not longer be able to provision the older version 3.7.5. With that in mind, here's a guide to helping you when you want to upgrade your RabbitMQ.
With a minor version bump, there are no major changed to RabbitMQ so this is an in-place upgrade. Starting an in-place upgrade allows us to temporarily stop the messenger's nodes and then swap out the binary files to the new version. So, how do you upgrade?
If you go into your Deployments view in the Compose console, you will see "Upgrade available" next to your deployments with an upgrade available.
Click on that deployment to view it and on the deployment's Overview view, there's a couple of indicators that an upgrade can be done. The obvious one is under the deployment's icon which will say "New Version Available".
If you click that label, you'll be taken to the Settings view.
In the Change Version panel, you might see more than one version available. Always select the latest version. Once you're ready to upgrade, click Change Version and you'll see the following dialogue box open.
When you click on Yes, remember that your RabbitMQ deployment will be stopped, updated, and brought back online. There may be other reconfigurations to be done, so expect there to be a momentary interruption of service as this upgrade is going on. So, by clicking Yes you are starting the process. You'll then be sent to the Jobs view where you'll be able to watch the upgrade process.
When it's complete, you can return to normal operations.
Upgrading with backups from earlier versions
If you want to upgrade from earlier versions of RabbitMQ on Compose, for example version 3.6.x, then use Compose's restore and backup process. Whenever you restore a backup on Compose, we create a new deployment to restore into. That's so you can't overwrite data in your existing deployment, and we ensure you're working with a fresh deployment that's populated with your backup data.
It's easy to create as many deployments as you want on Compose so you can tear unwanted ones down when you are done. All you have to do to restore from a backup is select the Restore and Backup button on the Backups view. The button is a blue arrow wound as a circle.
We suggest you do this with a recent on-demand backup if you're doing an upgrade. When you click the Restore and Backup button, you'll be taken to the New Deployment window.
The top blue box gives you the core details: the name of your old deployment and the date the backup was created. Enter your new deployment's name in the Deployment Name box. Notice that next to Upgrade available it says that the backup's from version 3.6.14 and the dropdown box saying that it will be restored with RabbitMQ 3.7.9, which is the most recent version in both major and minor versions. Now, click Create Deployment, to get the new deployment created with the backup restored into it.
Once that's done, you'll have a new RabbitMQ deployment running the latest version on Compose. You can now test it out with your applications, ensure it performs as you expect, and do any security setup you may want to apply. Once you're done testing it out, you can delete the old deployment and repeat this process as many times as you need before you're ready to have your applications use your new deployment fully. And even as you do this testing, you can have your older RabbitMQ deployment still run in production.
We've given you two ways to upgrade your RabbitMQ deployments so pick one that suits your needs. Remember that in the next 30 days, version 3.7.9 will become the preferred version and then 30 days after that, older versions won't be available. Happy upgrading!