Sergey Nivens - Fotolia

What is a Helm Chart and how can it improve microservices?

Learn about Helm Charts and how Kubernetes supports a microservices architecture. Expert Ken Milberg discusses what you need to know before delving in.

What is Helm, and what is a Helm Chart? Helm is the package manager for Kubernetes -- in other words, it is used to help you manage Kubernetes applications. Helm Charts allow you to define, install and configure your Kubernetes application. Kubernetes is an open source system, which allows you to automate, deploy, scale and otherwise manage applications. The charts are easy to create, share and publish, which makes them so popular. A chart is a collection of files that describe a set of Kubernetes resources. One chart can be used to deploy something very simple or a full web application stack with HTTP servers and databases.

Have I confused you yet? Have you used Yellowdog Updater, Modified (YUM) before? Helm is analogous to YUM. Have you used Red Hat Package Manager (RPM) files before? Helm Charts are packages, which are analogous to RPMs. The home for the Helm Charts are the Kubernetes manifests, which provide the configuration parameters allowing users to customize their deployment. The latest version of Helm is actually maintained by the Cloud Native Computing Foundation, in collaboration with Microsoft, Google, Bitnami and the greater community.

The Helm Chart and microservices

What about microservices? The microservices approach is to develop a single application as a suite of small services, each of which runs its own process -- through which it can communicate with lightweight mechanisms, which are usually some kind of HTTP resource API. The services themselves are built around business capabilities and deployed by automated tools. The architecture itself is a method of developing applications from the suite of smaller services. Really, we're talking about a paradigm for software architecture -- small services in separated processes that take the place of larger applications. Using this approach, systems are easier to scale and can evolve more easily.

Now that we've defined the Helm Chart and microservices, how are they used to complement one another? The very nature of the Helm Chart lends itself to improving microservices builds. It is very modular and allows one to deploy small services. On the other side of the coin, new problems are created. Problems that need to be solved only once for large, complex applications -- like monitoring, load balancing and even security now need to be handled for each service.

Kubernetes supports microservices architecture through its service construct. Let's look at lstio, which is an open platform to connect, manage and secure microservices. You can use the Helm Chart from Kubernetes to deploy lstio in order to start the framework component. Through the use of Istio, developers can implement the core logic for the microservices. The current release of lstio is targeted to Kubernetes users and is packaged in such a way that you can install it in just a few lines and get everything you need -- resiliency, security and control of your microservices through Kubernetes and the use of its Helm Charts -- directly out of the box. If you want to deploy microservices architecture and use Kubernetes, then lstio is a natural fit for you. It does all this without requiring any changes to the microservices code; it supports the traffic flow between the services. Using the Helm package manager, through its Helm Charts, you can put in place your lstio deployment on a Kubernetes cluster with just a few easy steps.

It should also not surprise you that you can use Kubernetes on an IBM Bluemix container service, which will help you speed up deployment. The Helm Charts help you accomplish this, because they have the templates required to apply the Kubernetes configuration files, allowing you to build, package, distribute and deploy your microservices applications.

If you are newbie in the world of Kubernetes and Helm Charts, there is a tremendous amount of information out there to help you understand what you need to know. Make sure you really understand what it is you want to accomplish before you start to create your new architecture. Make certain this is the right product for you.

Dig Deeper on Cloud app development and management