We are continuing our series on how Red Hat Keeps the Lights on with Red Hat Virtualization.  Please read our previous blog post if you missed any of the series. In this blog post, I will highlight how Red Hat IT uses Red Hat Fuse and JBoss A-MQ to integrate our internal systems that support Accounting, Consulting, Engineering, Finance, Legal, Marketing, Operations, Sales and Training departments. Our internal Enterprise Service Bus (ESB) flows over 100,000 messages a day between these systems with wildly differing interchange and data formats. Our entire ESB deployment runs on virtual machines backed by Red Hat Virtualization. This deployment enables us to scale on demand to meet the changing needs of our business needs and integrated systems.  

Previously, we faced challenges around keeping our physical architecture and corresponding infrastructure deployments as flexible as the applications and services that run on top of them. However, using the virtualization capabilities of Red Hat Virtualization, we have extended the architectural flexibility down to our infrastructure layer, ensuring that our datacenter footprint is right-sized for our changing runtime needs. Our production ESB deployment uses almost 50 virtual servers, and all of them are running on multiple instances of Red Hat Virtualization deployed in multiple datacenters.

We have three primary virtual machine types in our ESB deployment; A-MQ VMs, Fuse VMs, and MariaDB VMs.  The A-MQ VMs are dedicated to providing our message broker service. They are backed by MariaDB VMs that serve as a persistent data store for our queues and topics. The Fuse VMs are primarily “worker nodes” that handle one or more stages of the integration pipeline. Each of these VM types has differing resource needs from one another and these needs can sometimes change over time. The changes are either due to usage/traffic increasing over time, or due to periodic time-based events such as the end of the month/quarter/year that increase the amount of horsepower needed to do all business operations in a timely fashion.  We have Red Hat Virtualization templates defined for each virtual machine type, allowing us to create new VMs with ease if needed.  These defined virtual machine types and corresponding templates provide us with the flexibility to precisely scale out and only when and where additional capacity is needed, instead of scaling the entire deployment to handle the peak processing needs.

We use the Red Hat Virtualization Manager (RHV-M) to identify when resources are becoming constrained, either over a long period of time, or in the short term due to a spike in activity or resource utilization. The virtual machine management capabilities in Red Hat Virtualization allow us to either move the identified virtual machines to other hypervisors with spare capacity, or to modify the resource configurations of the virtual machine to match the needed capacity/throughput. Red Hat Virtualization provides reliability and flexibility through the monitoring and management functionalities. Through this process, we are able to know when configurations need to be changed, and we can adapt to changing resource needs in real-time.

We will soon be expanding our ESB environment to our internal OpenShift Container Platform deployment, which is also backed by Red Hat Virtualization. We will feature this architecture deployment in an upcoming blog post.

To experience how your organization can scale your virtualization environment on demand, I invite you to download a fully supported 60-day trial of Red Hat Virtualization.