by Lior Nabat
by Lior Nabat
As a team of financial and telecom services technology veterans, we have decades of experience developing robust and scalable technologies. We’ve worked closely with customers across industries to understand their challenges and how we can help them best use technology, and specifically microservices, to solve business problems. Many enterprise organizations are considering changing their current microservices deployment from an on-prem only solution to taking advantage of a hybrid deployment and solution. A hybrid solution means that parts of the microservices are deployed in one environment while the rest are deployed in the other environment to create a unified solution that takes advantage of the best of both worlds.
We find this approach helps companies enjoy the various advantages that come with deploying on the cloud, such as agility, reduced maintenance costs and requirements, and scalability, while keeping some of their critical technology in the on-prem infrastructure for specific reasons such as security and regulation. For example, in the financial services industry, a bank might move some of its services such as the user interface (UI) to the public cloud while keeping other services like the database (DB) with the client’s information on-premises.
In this blog, we’ll discuss key enterprise considerations when building a Kubernetes-based solution in a hybrid environment on the Red Hat OpenShift platform. We’ll discuss how you can use the KubeMQ platform to enable microservices from multiple environments to communicate with each other, and we’ll walk through an example from one of our financial services customers.
We find that enterprises taking advantage of microservices and Kubernetes for container orchestration see the value in a hybrid deployment model. Still, concerns pop up when they begin planning for a hybrid deployment. The main concerns deal with complexity and risk. Enterprises want to understand how to manage and operate both an on-premises and cloud environment, how to make sure the environments always sync with each other, and how to build this out with security at its core.
Red Hat OpenShift is built to simplify Kubernetes deployment, regardless of where you run applications. Enterprises using Red Hat OpenShift as their container platform benefit not only from an enterprise-grade Kubernetes solution but also from OpenShift’s native ability to support hybrid cloud solutions. From the OpenShift console, enterprise developers can easily manage multiple infrastructure Kubernetes deployments.
KubeMQ platform is a message-based architecture that enables the microservices from multiple environments to communicate with each other and build one hybrid infrastructure solution. Deploying KubeMQ provides flexible connectivity for hybrid environments such as multi-cloud, on-premises, and at the edge, powered by enterprise-grade message broker and message queue with ready to use connectors, bridges, and control center. The KubeMQ platform runs on OpenShift and has built an OpenShift operator with the highest level of capabilities and automation. Our goal is to make your OpenShift deployment experience as automated and streamlined as possible.
KubeMQ platform provides an optimized way to bridge, replicate, or aggregate Kubernetes clusters across cloud environments, on-premises deployments, and the edge. KubeMQ platform provides a rich set of connectors to instantly connect microservices with cloud web and external services within the cluster.
Figure 1: A solution deployed in a hybrid cloud environment using KubeMQ and OpenShift
KubeMQ is designed to enable enterprises to gradually migrate their current microservices and migrate on the fly to a hybrid cloud solution seamlessly and without service disruption. KubeMQ provides multi-cluster support, allowing bi-directional communication from the on-prem microservices to cloud microservices. This setup enables two different Kubernetes environments to behave as one solution. The multi-cluster setup ensures that enterprises can gradually move services from the on-premise environment to the cloud and vice-verse safely, transparently, and without downtime. Moreover, using KubeMQ source and target connectors supports gradual migration also from a monolithic environment with legacy massaging systems to an advanced Kubernetes hybrid solution.
Figure 2: A solution deployed in a hybrid cloud environment using KubeMQ and OpenShift
Let’s walk through an example of how an enterprise company running financial software can move applications from an on-prem deployment to a hybrid cloud Kubernetes-based solution.
The company we’re highlighting provides complex real-time investment software. To keep things simple, we’ll focus on the part of the application that’s in charge of sending a flow of real-time quotes (live stock prices) to the front-end web client. The use case shows the process of transferring part of the microservices from the on-premises environment to the cloud, while keeping both environments synced by using KubeMQ server, connectors and bridges.
In this example, the company selects Microsoft Azure as its public cloud provider and creates a Kubernetes cluster using Red Hat OpenShift. Then, the company deploys a KubeMQ cluster into OpenShift in one click using the KubeMQ operator from Red Hat Marketplace and then enables KubeMQ’s multi-cluster support by deploying the KubeMQ bridges. Both environments are now connected. Messages can go from one environment to the other now that they’re synchronized. The setup is ready to migrate microservices from the on-premises environment to Azure—establishing a hybrid solution.
Figure 3: Example of the synchronization between on-premises and cloud environments
Next, the API service and the frontend service are moved from the OpenShift in the on-prem deployment to OpenShift running in Azure. Both are connected to KubeMQ. The services can communicate with each other in Azure as well as with the services running on-premises via the KubeMQ multi-cluster connection. Now, pricing is received from the on-premises environment while the frontend client reflects them from the cloud environment. The company has a fully synchronized hybrid cloud solution.
In this mode, both environments are working together as one environment. More services can be gradually migrated from on-prem to the cloud without downtime.
Figure 4: A hybrid state of both environments connected by KubeMQ
Creating a hybrid cloud solution doesn’t need to be complex. Our mission is to make this process more efficient and seamless for you, so that you can take advantage of all the benefits public clouds afford. This can help your developers get solutions and features to market faster, while keeping critical services in the on-prem environment as needed.
When using an enterprise-ready platform like Red Hat OpenShift and solutions like KubeMQ, you can create a hybrid environment with enterprise-grade assurance more easily. KubeMQ enables connectivity between the environments and ensures the services transfer is seamless and regulated according to the company’s needs.
To learn more, visit our Red Hat Marketplace listing.