Hazelcast on IBM Cloud Private

Hazelcast and IBM partnered recently to better serve in-memory caching solutions to IBM Cloud users. Recent developments by the two companies have created several options for the users who decided to use distributed caching solutions and deploy their microservices to IBM Cloud Private (ICP) or IBM Kubernetes Service (IKS).

Here are the 4 options IBM and Hazelcast users can choose from in Kubernetes Environments:

This blog post will focus on how to use Hazelcast Enterprise on ICP.

Creating Hazelcast Clusters on ICP

IBM Cloud Private is an application platform for developing and managing on-premises, containerized applications. It is an integrated environment that includes the container orchestrator Kubernetes, a private image registry, a management console and monitoring frameworks.

To install Hazelcast Enterprise on ICP, use the following steps:

Prerequisite for the installation is having a trial license key. You can request a Hazelcast Enterprise License Key via https://hazelcast.com/hazelcast-enterprise-download/. You can also search for “hazelcast” in the ICP Catalog or use Hazelcast OpenSource without a license key.

1. Click on “Catalog” and click on the “hazelcast-enterprise” Helm Chart

2. Choose the Chart Version and click “Configure”

3. Enter “Helm release name”, “Target namespace” and Check “I have read and agreed to the License agreement”

4. Enter “Hazelcast Enterprise License Key”

5. If needed, configure other parameters (e.g. “Member Count” or “Docker Image Tag”); then click “Install” and you should see the following message.

Verifying Hazelcast Works Correctly

To verify that Hazelcast is installed correctly, follow these steps:

1. Click on “Workloads” and “Helm Releases”

2. Find your helm release by name and check the logs of PODs. They should be all in the “Running” state

3. When you click on the logs of “hazelcast-enterprise”, you should see that members formed a cluster together

... 
Members {size:2, ver:2} [ 
           Member [10.1.229.7]:5701 - fbb8b83f-9bb0-4442-80dc-1cc53b8d91d7 this 
           Member [10.1.229.9]:5701 - 9fb104dd-6d90-4bbc-b0f8-cd165dc299f3 
] 
...

4. To access Management Center, you can click on “Network Access” and “Services”

5. Then, click select the Management Center service and click on the “Node Port” link (or “External IP” if you have Load Balancer configured for ICP)

6. If the link does not open, then add /hazelcast-mancenter. After setting up username and password, you should see your Hazelcast cluster

Caching with Hazelcast on ICP

Today, Caching is a must in microservices architectures for high-speed transactions and fast data access. There are two ways to implement them in an ICP environment.

  • Session Caching
  • Data Caching

Session Caching

The best choice for servlet container on ICP is IBM Liberty with no hesitation. The good news is that Session Replication comes with IBM Liberty and only requires a few clicks.

As we have a running Hazelcast Cluster from the section above, enabling Hazelcast Session Caching is as easy as a checkbox tick on your Liberty deployment. Session Cache option as depicted below can be found as optional parameters while deploying Liberty through the ICP Catalog.

Please note that current version of Session Replication uses client/server architecture to store Session Cache into Hazelcast which requires a running Hazelcast Cluster on ICP environment as you created Hazelcast Cluster by following instructions above. In the upcoming Liberty integration, Liberty will offer an embedded Session Replication option, which will not require a separate Hazelcast Cluster. This will make it easier to scale your cache along with your microservices without the dependency of an external Hazelcast Cluster.

Data Caching

Another powerful usage of Hazelcast IMDG is its simple API and vast selection of supported programming languages for caching use cases.

If you have a running Hazelcast Cluster, you have multiple options to use Hazelcast in your microservices. Different Hazelcast Client Libraries makes it easy for developers to use caching solutions in their architectures.

You can also find this code sample useful for running embedded Hazelcast in your microservices.

Conclusion

IBM Cloud Private is a certified Kubernetes Distribution for on-premise and off-premise deployments. Hazelcast is preferred in-memory computing platform on ICP. By using Hazelcast, you can extend your existing microservices-based, containerized application with high performance caching solution.

IBM Kubernetes Service(IKS) is another option to use if you prefer using Managed Kubernetes Service. In order to deploy into IKS, you can choose helm based deployment by following Hazelcast Helm Chart blog post.

Hazelcast is committed to supporting Kubernetes-based workloads and serving as the best fit for in-memory caching solutions in IBM Cloud Private. If you’re looking for more information about Hazelcast running in IBM Cloud Private, you can learn more here.