Feature Flagging Using Unleash

Take a technical look at how to leverage efficient feature flagging using Unleash.

February 24, 2022 | Technical | App Dev | DevOps

Feature Flagging Using Unleash

Feature flagging is a powerful and necessary practice for developers who need to do multiple tests quickly. But at the same time, there are multiple ways to use feature flags and they aren’t not all identical. So in this technical guide, D3V cloud-certified developers take a look at how you can leverage efficient feature flagging using Unleash.

What is Feature Flagging?

Feature Flags or Toggles give application developers the ability to change the functionality of an application at runtime without having to compile the code. Using feature flags, developers can enable/disable various functionalities by introducing feature flags in their code and execute statements related to features based on the value of the feature toggle.

Two of the most important advantages of using feature flags are:

  • Faster Development Cycles:

    Feature flags are in essence, switches, that developers can use to turn certain features on/off and seeing the results without compiling the code. This help developers deliver and test new features in far less time, leading to overall faster development cycles

  • Limited rollout testing:

    Feature flags can also be used to have more control over tests when deploying new features, through different forms of limited rollouts including A/B testing and canary deployments.

What is Unleash?

Unleash is an Open source feature flagging solution with built-in javascript which can help you create and manage feature toggles using REST API’s. Unleash server comes with a dashboard through which developers can easily create and enable/disable toggles from their browsers.

Unleash Vs LaunchDarkly: Which to Use?

As we said, there are multiple ways to use feature flags and LaunchDarkly is another. LaunchDarkly has more features overall. But at the same time, Unleash is a good option for companies who are strictly looking for software that is:

  • Open-source
  • And free-to-use
  • And want to manage the necessary infrastructure

If this is you, then good news - Unleash is great! And even though LaunchDarkly wins in sheer features, Unleash does have some powerful benefits, including:

  • Free and open-source: Unleash has a free and open-source(Apache Licence 2.0) plan (in addition to paid plans) which means you are allowed to modify its features as needed.
  • It allows you to access its feature toggles through REST APIS, allowing Unleash to be used with any programming language of your choice.
  • Client libraries are available with Java, Node, Go, Ruby, Python, and .NET.
  • Comes with an easy-to-use UI dashboard that allows you to manage flags.
  • It also comes with a Docker image so it can be scaled horizontally by deploying it on Kubernetes.
  • It gives developers granular control when a feature flag is enabled/disabled with the help of various toggle types and activation strategies.

Using Feature Flags Using Unleash

Feature Flags are easy to get started with and can be created by using Unleash’s dashboard. Simply click on the plus (+) icon to create a feature flag.

unleash 1

Source: unleash

unleash 2

Source: unleash

  • Name: Provide an appropriate name to the feature flag. Using a naming convention for flags would help you manage your flags across teams, which could avoid multiple users having the same name for the flag. One of the naming conventions to use could be
    applicationname.
    modulename.
    featurename.

    Here’s an example: For an online restaurant ordering system, an appropriate flag name could be web.payments.
    cashondelivery. Here the app name is web which serves frontend, payments is the module, and cashondelivery is a feature which can be used to enable users to pay by cash when the order is delivered. When a feature has a wider scope you can then divide the feature in sub features, the flag name could be
    applicationname.
    modulename.
    featurename.subfeature

  • Description: Provide an appropriate description for other members of your team to know what the feature flag is used for.
  • Choosing a feature flag type: Unleash provides various feature flag types available from Unleash server 3.5:

    • Release Toggles: This type of feature flag is suitable for Trunk based development. In trunk-based development all the developers commit to a shared branch called trunk. Release toggles allow adding incomplete features to the shared branch.
    • Experiment Toggles: They are used to perform A/B Testing. The flag would evaluate either true or false based on the characteristics of the user. Different users with the same characteristics would fall under the same execution path in the control flow
    • Operational Toggles: They are used for operational aspects of the system For instance, the restaurant system can disable cash on delivery payments in order to support contactless delivery due to the pandemic.
    • Kill Switch: Kill switches can be used to improve performance by degrading systems functionality. Under high load less important features can be disabled and only the important ones should be returned to the user.
    • Permission Toggles: These toggles are enabled/disabled based on the permissions available to the users.

  • Choosing Activation Strategies: Activation strategies give you granular control over which a user feature toggle should be activated for. Following activation strategies are available:

    • default: With this strategy, toggle is enabled for all users.
    • userWithId: Activated for users with IDs in the userIds list.
    • gradualRolloutUserId: In a gradual rollout strategy, a feature will be available to a certain percentage of its subset of users. A user with an id will have consistent behavior once activated. This means a user falling under the category 10% of this strategy would also have its feature enabled for 20%.
    • gradalRollout
      SessionId:
      This strategy is the same as gradualRolloutUserId, only difference being that this strategy is activated based on sessionID.
    • gradualRollout
      Random:
      This strategy randomly enables feature toggle.
    • flexibleRollout: flexibleRollout strategy is a combination of all the gradualRollout strategies.
    • remoteAddress: This strategy enables a feature toggle if a request comes from a list of predefined IP addresses
    • application
      Hostname:
      The application hostname strategy activates a feature toggle for client instances with a hostName in the hostNames list.

Once you have finished filling in all the required information, you would’ve successfully configured your own feature flag.

Wrapping up…

Implementing feature flagging is a great technique for developers who need to test different features and functionality without deploying code each time. It’s an important step for companies looking to adopt DevOps and modernize their software development.

Getting started with feature flagging is also easy as companies can choose from two popular options: LaunchDarkly and Unleash. In this technical guide, we explored the fairly straightforward way of using feature flags with Unleash. Even the free and open-source plan of Unleash gives developers granular control over various feature toggle types and activation strategies enabling them to roll out and test new features rapidly.

If you’re interested in learning more about feature flagging with Unleash and how your company can modify the open-source platform to suit your needs better, get in touch with one of our cloud-certified engineers today for a free consultation.

Author

Daivik Dave

Daivik Dave

Software Engineer

Daivik has 2 years in modernizing applications on the Google Cloud. He holds a Master’s Degree in Computer Applications and is a Google Certified Professional Cloud Developer. Daivik is passionate about all things tech, movies, traveling, his pets, and video games.

Related Posts

What Our
Clients Are
Saying
Constrained with time and budget, we were in search of an experienced technology partner who could navigate through the migration work quickly and effectively. With D3V, we found the right experts who exceeded our expectations and got the job done in no time.
We used D3V to help us launch our app. They built the front end using React and then pushed to native versions of iOS and Android. Our backend was using AWS and Google Firebase for messaging. They were knowledgeable, experienced, and efficient. We will continue to use them in the future and have recommended their services to others looking for outside guidance.
We had an idea and D3V nailed it. Other vendors that we had worked with did not understand what we were trying to do - which was not the case with D3V. They worked with us through weekly meetings to create what is now the fastest and most accurate steel estimating software in the world. Could not have asked for anything better - what a Team!
Working with D3V was hands down one of the best experiences we’ve had with a vendor. After partnering, we realized right away how they differ from other development teams. They are genuinely interested in our business to understand what unique tech needs we have and how they can help us improve.
Our experience with D3V was fantastic. Their team was a pleasure to work with, very knowledgeable, and explained everything to us very clearly and concisely. We are very happy with the outcome of this project!
Protecting our customers data & providing seamless service to our customers was our top priority, which came at a cost. We are very satisfied with the cost savings & operational efficiency that D3V has achieved by optimizing our current setup. We’re excited about future opportunities for improvements through deriving insights from our 400 million biomechanics data points.
Bedrock Real Property Services Founder

Dr. A. Ason Okoruwa

President, Bedrock Real Property Services

Squirrelit

David Brotton

CEO & Founder, Squirrelit

FabSystems Inc

Terry Thornberg

CEO, Fabsystems Inc.

BLI Rentals

Lee Zimbelman

IT Director, BLI Rentals

Osmix Music

Jared Forman

CEO & Co-Founder, OSMix Music

Dari Motion

Ryan Moodie

Founder, DARI Motion

Schedule a call

Book a free technical consultation
with a certified expert.

Schedule Call

Get an estimate

Fill out our form to hear back with a project's cost estimate. No meeting required.

Get Estimate

Get in touch

Send a message to D3V team.

Let's Talk