Hi John,
I think you are missing the target on a couple of things, which might change your mind about what might provide the best option for implementing HA and DR in your cloud environment.
I tend to agree with you on MIQM disk issues. MIQM shifts the availability problem from the queue manager/QM server to the storage/storage server. Finding a storage implementation that meets your performance and availability needs can be very difficult.
Native HA is as you say currently only supported on OpenShift. This is available as part of CP4I so you don't need to manage it separately, but if it's a new technology to your environment and you don't plan on using it for more the just MQ, then the infrastructure overheads may overkill for you.
I would disagree on the production readiness of a CD though. Especially in a cloud environment where automated CI/CD pipelines and comprehensive automated regression testing are both possible, the short (12 month or so) lifetime of a CD release doesn't have to be a barrier to production implementation. Code quality is not compromised by the support and delivery changes between CD and LTS in my experience, and IBM tell you when a CD feature isn't ready for production yet (Native HA in 9.2.2 for example).
As to container suitability for MQ, IBM have done a lot of work to ensure that MQ runs well in containers and is indeed suitable. Elasticity is not the only objective of containerisation. Reliable tested software stacks that are independent for each container in your environment can also dramatically reduce the difficulty in things like security patching. The container is also much lighter weight that a full VM. MQ can run easily on as little as 0.05 cores (50 millicores) and I've seen it demonstrated on 20 millicores (although startup was a bit slow). It's also much easier to pick up a container and deploy it somewhere else (like another availability zone) than to rebuild a VM.
Your comment about RDQM requiring RedHat OpenShift isn't quite right. It does require RHEL, but not OpenShift. It is deployed to a cluster (of 3) RHEL servers, not OpenShift containers. In the Azure space, you would need to deploy 3 RDQM servers onto RHEL instances as VMs I believe, although I haven't checked exactly what's in the Azure catalog. For DR, you need another 3 servers.
I think for many organisations containers are here already. There are other organisations that aren't ready for containers, but containers are probably ready for them.
I definitely wouldn't be building my own containers for MQ as a starting point. IBM have already done a huge amount of work and provide a supported container.
I agree that RDQM provides HA and DR, and is great, and doesn't rely on complex shared disk, but you CAN'T put it in a container. RDQM uses kernel modules that are NOT available in a container.
One of the biggest differences between RDQM and Native HA is that they don't use the same replication technology, which is why Native HA runs in containers, and RDQM doesn't. Native HA performs its own replication of the MQ log, and does its own management of the log state, rebuilds and working out what needs to be active where. In RDQM, all of that is offloaded from MQ onto the DRBD and Pacemaker components which are root or kernel level components outside of MQ itself. In Native HA, all of that is moved inside the queue manager.
Native HA also reduces the replication load by only replicating log writes, not all writes to either the log or queue files.
As to DR, you are right at the moment. The 9.2.3 implementation of Native HA doesn't provide DR. You may be able to use a replicated disk technology though to make your data available outside the availability zone, and implement your own DR on top of that. NOTE: This is entirely supposition as I haven't tried it. It would also have performance implications as it would increase the latency of the disk writes.
So, the bottom line...
I don't think you have all your facts quite right, but you are pretty close to the mark with your conclusion. If you want both HA and DR, then RDQM is more capable in that area than Native HA. If you are running OpenShift, then either MIQM or Native HA might do the job for you, depending on what disk technology you have access to, and whether DR is needed.
All the best
------------------------------
Neil Casey
Senior Consultant
Syntegrity Solutions
Melbourne, Victoria
IBM Champion (Cloud) 2019-21
------------------------------
Original Message:
Sent: Fri August 06, 2021 04:34 AM
From: John Hawkins
Subject: Best HA/DR Options in cloud?
Hi Folks,
I just want to check my logic on the best options for MQ HA/DR on Azure please...?
Multi-instance has got such a bad rep with disk issues - Azure or otherwise (and I'm not clear on whether Azure shared disk options allow for the right locking from the last time I read up on this?). I do have issues with this if I'm honest. Don't clouds give us enough SLA guarantees that multi-instance should be just fine in a cloud env nowadays ? Making an HA disk is also reasonably easy to make DR in a cloud too?
Native HA is a container solution that relies on a CDS (i.e. not prod ready yet) and openshift - something my customer doesn't have. As an attachment to this - I personally get a little confused as to the benefits of putting MQ in a container environment anyhow? MQ is permanently on, so it's not as if container elasticity is usually an issue? In a cloud environment, containers are usually more expensive than a long-term VM contract? (not that I've done the maths on this specific use-case). Containers are usually associated with being flexible and being switched on and off and moved around - something that is completely opposite of where MQ has been for decades! And, at the time of writing, RDQM requires RedHat openshift - another licence? Why would I put that on Azure which, presumably (I don't know) already has the same function?
The one thing I can see for containers is that they are relatively easy to setup, once you have all the surrounding, complex infrastructure. All, in all, I just don't get the impression that containers are quite "there yet" - is that fair to say??
Alternatively, I could build my own container - again, I have issues with the concept of containers and MQ. Plus I now don't get some of the nice self-management things that Multi-instance used to give me i.e. recognising when an instance was broken and auto-moving.
RDQM uses standard VM tech - customers know it and can price for it. It gives me both HA and DR clearly managed from the MQ perspective (whether you think this is good or bad - i.e. you might want it managed by the environment?). And, worst comes to worst - I could put it in a container. However, I get the impression, at that point that the Native MQ is using RDQM disk replication under-the-hood. So, if Native Ha was available in non redhat Form and was LTS, I should use that if I wanted it in containers - but I still wouldn't get DR?
Is all that reasonably factual and make sense? At the moment, I think the conclusion is, that unless you're container centric, stick MQ into a few VMs and run RDQM over multiple data centres?
Nice if Mr Colgrave could respond to this :-)
thanks for your thoughts folks !
------------------------------
John Hawkins
Integration Consultant
------------------------------