The phrase cloud native generally conjures images of containers, microservices and ‘born on the cloud’ 12-factor applications. The idea of putting traditional enterprise software into containers, and orchestrating it with Kubernetes, may not seem like an immediately obvious, or even a sensible endeavor. So why has HCLSoftware invested more than 500 person-years of effort into doing exactly that?
First, let’s consider the software portfolio in question. HCLSoftware develops, markets, sells and supports more than 20 software product families across marketing, retail, dev ops and security tools, and for secure automation and unified end-point management. This includes big names like Domino, BigFix, Unica and Commerce. These software products represent multiple years of investment, both in the design and development of the products themselves, and in their use and extension by clients and partners. The value of that investment is tremendous, and this should not be underestimated when considering how to modernize and evolve the portfolio. Preservation of client investment in these products, both in expertise and in client software assets, is of critical importance.
So, having recognized the value of the existing products to our clients, what are the pain points and areas for opportunity when it comes to applying cloud native technology?
A common challenge for our product users is the time and skill required to install, configure and upgrade these products. Traditional enterprise software can have complex prerequisites, configuration spread across many files and formats, and multi-step upgrade procedures. Wrapping all that up into containers and Helm charts can transform the install or upgrade process from a multi-day (or even multi-week) effort into a single helm install or helm upgrade command, with a nicely contained file of value overrides. Showing a helm install of these products to a long-standing customer usually elicits a “Wow, it’s up and running in just 15 minutes? That’s amazing!”. If the product can also be persuaded to support a Kubernetes rolling update (in which Kubernetes will cleverly start up pods at the new version before shutting down the old version pods), the user gets a simple upgrade process with no product downtime, which may previously have required additional (costly!) software, or running parallel systems on (costly!) resources, blue/green style. Support for rolling updates usually requires some changes to existing software, but in my view is well worth the investment for the significant client value.
Another common issue for consumers of traditional enterprise products is the additional software, or home-grown automation, that is generally required to handle generic concerns like request routing, management and monitoring. Entire software companies have thrived by developing and selling such administrative add-ons, which are usually custom built to work with individual products. Kubernetes, and an associated set of open source projects like Ambassador, Prometheus and Grafana, provide generic solutions to many of those requirements, reducing software licensing costs as well as the overhead of learning (or writing) and maintaining all the different pieces of software for each separate enterprise product.
Watch our video HCL SoFy: The HCLSoftware Approach to Cloud Native to learn more in the below video.
What we achieve, then, is a transformation in the way our products are used. The client investment in the products themselves is protected, but the install, upgrade and management has been completely modernized. Install and upgrade are radically simplified and allow for easy consumption of the more frequent updates being delivered on the new CI/CD product schedules. Configuration overrides contained as Helm value overrides are easy to apply to a ‘config as code’ system. Operational management of all products becomes generic, so the administration expertise that used to be required for each individual product is much reduced. Skills in Kubernetes and the other supporting technologies become applicable to the whole portfolio, instead of needing different management and monitoring add-ons for different products.
Providing a cloud native format for each product, using containers and helm charts, is a major step forward. We have taken another step with the HCL SoFy platform, a set of lightweight common services integrated with the products, which make it easy to get started with Kubernetes.
In HCLSoftware we will benefit from this transformation directly, as we begin to offer custom hosting of our cloud native product formats through HCL Now. Our operations team runs the product on the cloud chosen by the client, and the SoFy platform provides a consistent management and monitoring experience across the diverse cloud environments. The savings in time and skills that are provided by this model are very real for our own operations team, and we are confident that our clients will experience those same benefits by moving to our new cloud native product formats.
Dr Alex Mulholland
HCLSoftware Chief Platform Architect.