8grams

Unleash: Setup The Open Source Feature Toggle Tools on Kubernetes Cluster

Published at May 21, 2023

Introduction

Unleash is a comprehensive feature management system, born out of the need for developers to have more control over their software's features in different environments. The concept of feature toggling is not new, but Unleash has certainly revolutionized how developers approach feature management in today's dynamic software development landscape.

Founded in 2017 by developers at FINN.no, Norway's largest online marketplace, Unleash was created to fill a gap in the feature management space. The team at FINN.no had been struggling with challenges related to feature toggling, such as lack of control, poor visibility, and coordination issues among various teams. To address these challenges, they developed Unleash, a robust and flexible open-source solution that offers an advanced feature toggle system.

Overview

Unleash operates on a client-server architecture where all feature toggle configurations are stored in the Unleash server and the clients poll the server for updates. Each client synchronizes the toggle configurations at regular intervals and caches them, which ensures high availability and low latency.

Unleash Architecture

Unleash's client SDKs are lightweight and can be embedded into your application. The SDKs handle synchronization with the Unleash server and evaluate which features to toggle based on the configuration retrieved. Feature toggles are evaluated locally within the application, which means the Unleash server does not become a bottleneck or single point of failure in your architecture.

Benefits of Using Unleash

Unleash provides several benefits to organizations of all sizes:

  1. Flexibility: With its open-source nature, Unleash can be customized to fit unique business needs.
  2. Ease of Integration: Unleash supports a variety of programming languages, making it easier to integrate with existing technology stacks.
  3. Risk Mitigation: Unleash allows gradual rollout of features, which can minimize the risk of introducing new features to the production environment.
  4. Improved Team Coordination: With its management dashboard, Unleash simplifies feature toggle management across different teams and projects.
Unleash Dashboard

Unleash vs LaunchDarkly vs Split

Unleash stands out from other solutions in the market due to its comprehensive feature set, ease of use, and flexibility. It's beneficial to compare Unleash with two of the other prominent solutions in the feature toggle space, LaunchDarkly and Split.

Unleash LaunchDarkly Split
Open Source Yes No No
Languages Multiple Multiple Multiple
Server Side SDKs Yes Yes Yes
Client Side SDKs Yes Yes Yes
User Segmentation Yes Yes Yes
Data Exports Yes Yes (Paid Plan) Yes (Paid Plan)

While all three solutions offer strong feature toggle capabilities, Unleash is the only open-source option among them. This gives developers more flexibility, as they can contribute to its development and adapt it to their specific needs.

Setup Unleash on Kubernetes

Prerequisites

The strongly suggested approach to deploy Unleash on Kubernetes involves the use of Helm Charts. Unleash furnishes an official Helm Chart to expedite the setup process on a Kubernetes Cluster.

To initiate, we incorporate Unleash into the Helm repository using the command listed below:

~$ helm repo add unleash https://docs.getunleash.io/helm-charts
~$ helm update

Unleash requires a PostgreSQL Database for data storage purposes. It is advisable to establish a separate PostgreSQL instance for optimal operation. For guidance on how to achieve this, you can follow the instructions provided in this link:

How to install Database MySQL and PostgreSQL on Kubernetes, the better way
How to install Database MySQL and PostgreSQL on Kubernetes using NFS Storage.

Additionally, we will be installing an Ingress resource to facilitate access to the Unleash Dashboard. It's crucial for this Ingress to use an SSL Certificate to ensure secure access. A free SSL Certificate can be obtained from Let's Encrypt via the Cert Manager. You can refer to the following article to learn how to set this up:

How to get Free SSL Certificate for Kubernetes Cluster using Let’s Encrypt
Using SSL is essential for any website that wants to protect its users’ sensitive information. Without SSL, data can be intercepted and stolen by hackers, putting users’ privacy and security at risk.

Install Unleash

For optimal organization and resource management, it is recommended to create a dedicated namespace specifically for this purpose:

~$ kubectl create namespace unleash

Create a file named values.yml. This file will be used as Helm Chart Values:

Install to Kubernetes

~$ helm install unleash unleash/unleash -f values.yml -n unleash

And boom! You have full-featured, open source Feature Toggle tools installed on your Kubernetes Cluster.


About 8grams

We are a small DevOps Consulting Firm that has a mission to empower businesses with modern DevOps practices and technologies, enabling them to achieve digital transformation, improve efficiency, and drive growth.

Ready to transform your IT Operations and Software Development processes? Let's join forces and create innovative solutions that drive your business forward.

Subscribe to our newsletter for cutting-edge DevOps practices, tips, and insights delivered straight to your inbox!