Troubleshooting is the understanding of changes within the system and their impact on its health, behavior, and functionality. However, as dev environments grow exponentially more complex, the definition of “the system” itself also constantly expands.
To keep pace, we constantly work to evolve Komodor’s platform and enrich it with new capabilities and integrational options. Today we are happy to announce our latest integration with LaunchDarkly, a popular feature flag management tool that helps accelerate development by streamlining testing and experimentation.
With this integration, we enable Komodor users to keep track of feature flag changes and their impact on the runtime environments.
What are Feature Flags
Feature flags (a.k.a. feature toggles or switches) are a way of routing users between multiple code branches based on predefined criteria, such as geo-location, permission level, account ID, and so forth.
Most commonly feature flags are used to expose new features to a subset of users, before hardcoding them into the application.
Such canary deployments are handy for:
- Proactively identifying bugs
- Collecting feedback on beta versions and A/B testing different feature variations
- Selectively rolling out customer-specific features
All of the above are especially useful for teams working on Cloud-native applications who ship new code frequently (sometimes several times a day) and have to rely on constant testing to ensure that new features will not break or otherwise negatively impact the main production environment.
Feature flags are also a useful way of ensuring continuous delivery, allowing teams to create sub-branches from the main control branch, update them independently and then merge them back to the main codebase.
The Challenges of Feature Flag Management
By now the concept of feature management is considered to be a common best practice for working in a modern code environment. The challenge with this, however, is that each team has the ability to create its own code branches and use feature flags to run its own experiments.
In larger dev organizations this increases the chances of multiple conflicting branches to be running at the same time, causing the experiments (or even the main application) to break down for example, as a result of conflicting or overlapping criteria.
An even bigger issue, however, is that most monitoring and alerting tools are basically “blind” to feature flag tests running alongside the main application.
From a troubleshooting point-of-view, this means that when something goes wrong, it’s difficult to understand exactly what went wrong and what can be done to prevent this issue from happening again in the future.
LaunchDarkly Integration: Keeping an Eye on Canary Deployments
LaunchDarkly is an awesome dev tool that helps assume control over how feature flags are used across the dev organization. Serving as a SSoT for feature management, LaunchDarkly provides system-wide visibility of all experimentation efforts, while also offering an easy way to deploy new tests, and to measure their impact on application performance and user experience.
We regularly use LaunchDarkly ourselves, as we roll out new features for Komodor’s solution and, over time, we’ve learned to value its flexibility. Not surprisingly, a lot of our customers use LaunchDarkly as well and love it for the exact same reasons – viewing it as a part of their core stack.
Going back to the above-mentioned challenges, using LaunchDarkly to increase testing velocity also meant increasing the chance of test or even production issues. Since the system state for those issues is not determined solely by Git, when something brakes down it is impossible to pinpoint the issue to a specific deployment and know what you might needed to revert.
This is why we decided to use LaunchDarkly webhook integration to push information about feature flag updates directly into Komodor’s platform, where it can be shown side-by-side with all other events we track across the entire k8s stack.
In an interesting twist, we used also LaunchDarkly to deploy the new integration for testing. After positive feedback from that canary release, we’ve recently rolled it out as a general availability feature, for the benefit of all Komodor users.
To get started, simply log into your account, switch to the ‘Integration’ tab and click the blue button 🙂