Update the ActiveMQ Deployments
Updating the ActiveMQ Deployments
The architecture of the ActiveMQ deployment has changed as of release 2.11. The changes to the architecture are:
The "Active/Passive" highly-available (HA) configuration is no longer available for new deployments. All new deployments are single-server deployment and have only one replica. The
HADeploydeployment option has been removed from thecreate-or-delete-activemq-containerJenkins job.All new ActiveMQ deployments now use Amazon’s Elastic File System (EFS) for persistent storage. In previous releases only the HA deployment used EFS while the single-server deployment used Elastic Block Storage (EBS) volumes.
This change is due to issues sharing the file-system between the active and passive ActiveMQ instances. These issues led to message data being improperly processed by ActiveMQ. For more information about the issue this addresses see the ActiveMQ Availability and Performance Blog Post.
While we recommend updating your ActiveMQ deployment to avoid potential data-processing issues, you may choose not to migrate your ActiveMQ deployment to a single instance architecture. Note that if you decide not to update to a single instance architecture:
You are not able to use the
create-or-delete-activemq-containerjob to manage or update your ActiveMQ deployment.You are not able to update your ActiveMQ deployment to run as
non-rootand use Elastic Path Docker release4.2or higher.
If you choose to update your ActiveMQ deployments to a single instance architecture, note that there are implementation changes that need to be applied to both highly-available (HA) deployments and single-instance deployments.
- Highly-Available (HA) deployments are ActiveMQ deployments that were deployed with the
HADeployselected (set totrue) in thecreate-or-delete-activemq-containerJenkins job. - Single-instance deployments are ActiveMQ deployments that were deployed with the
HADeploydeselected (set tofalse) in thecreate-or-delete-activemq-containerJenkins job.
You can migrate existing HA ActiveMQ deployments from the Jenkins job through a multi-step confirmation process.
The process to update single-instance ActiveMQ deployments created with CloudOps for Kubernetes release 2.10 or earlier requires two steps.
- Delete the existing deployment.
- Create a new deployment.
Prerequisite
The steps in this document only apply and can only be performed after you have upgraded to CloudOps for Kubernetes release 2.11.x or higher. For information about upgrading from release 2.10.x to release 2.11.x, see Update from version 2.10.0.
Updating a Single Instance ActiveMQ Deployment
Repeat the following steps for each of your single instance ActiveMQ deployments. These steps are required to create a single ActiveMQ instance with an Elastic File System (EFS) volume that uses the new non-root image and updated configuration.
Delete the old single instance ActiveMQ deployment.
Build the
create-or-delete-activemq-containerJenkins job.Use the
kubernetesNicknameparameter set to the namespace of the previously deployed ActiveMQ deployment and the parameters that you previously used to run thecreate-or-delete-activemq-containerJenkins job. Ensure that thedeleteContainerparameter is set totrue.Build the
create-or-delete-activemq-containerJenkins job.Use the
kubernetesNicknameparameter set to the namespace of the previously deployed HA ActiveMQ deployment and the parameters that you previously used to run thecreate-or-delete-activemq-containerJenkins job. Ensure that:- The
cloudOpsForKubernetesBranchparameter is set to the new release branch. - The
dockerImageTagis set to the same value as theimageTagparameter from the Jenkins jobbuild-selected-docker-images. - The
deleteContainerparameter is set tofalse.
- The
The Commerce services are updated as explained in the section Updating the Self Managed Commerce Stack.
Migrating a HA ActiveMQ Deployment
Repeat the following steps for each of your HA ActiveMQ deployments. These steps are required to migrate to a single ActiveMQ instance with an Elastic File System (EFS) volume.
note
This is a multi-step confirmation process.
Build the
create-or-delete-activemq-containerJenkins job.Use the
kubernetesNicknameparameter set to the namespace of the previously deployed HA ActiveMQ deployment and the parameters that you previously used to run thecreate-or-delete-activemq-containerJenkins job. Ensure that:- The
cloudOpsForKubernetesBranchparameter is set to the new release branch. - The
dockerImageTagis set to the same value as theimageTagparameter from the Jenkins jobbuild-selected-docker-imageswith release4.1.xor earlier of the Elastic Path Docker repository. - The
containerUserparameter is set toroot.
- The
During the run, the
create-or-delete-activemq-containerJenkins job is paused and you are prompted for confirmation before migrating your HA ActiveMQ deployment to a single instance deployment. SelectYesto continue the migration.Immediately restart the Self Managed Commerce services that rely on the ActiveMQ deployment you just updated. This is required for those Self Managed Commerce in the
kubernetesNicknamenamespace to properly use the updated ActiveMQ. For the instructions to restart the Self Managed Commerce services, see Restarting Self Managed Commerce Deployments.