CloudBees Rollout buy may herald a future of feature flags
Feature flags can be a powerful tool to test code in production, and that spurred Cloudbees' acquisition of Rollout -- but as always, with great power comes great responsibility.
CloudBees' acquisition of feature flag management startup Rollout portends what some industry watchers see as a major shift in enterprise software development management.
Feature flags, also called feature toggles, insert conditional logic into code that can be silently deployed to production infrastructure without becoming publicly accessible. Then, developers or product managers can flip a switch to toggle the feature on or off. Tools such as Rollout and competitors LaunchDarkly and Split.io manage feature flags at scale, including the ability to turn flags on or off for a subset of a user base. Feature flags also offer application-level rollback if a feature malfunctions, and separate duties between developers' code deployments and business stakeholders' decisions, which skirts the kind of production deployment gatekeeping that often thwarts true continuous delivery in practice.
Feature flags aren't a new concept, but their use has increased among enterprise shops where developers make iterative code changes to production apps through CI/CD pipelines. Feature flags have also evolved beyond manually deployed, coarse-grained Web configuration files to more sophisticated, high-scale, centralized feature flag management as a service, which is Rollout's specialty.
"There's a console that connects to the [feature flag] code, and the console gives you the ability to manage the demographics that can see the feature flag, so it's on or off for a particular audience," said Christopher Condo, an analyst at Forrester Research, about Rollout's style of feature flag as a service software. "We've found companies use [such tools] for localization, rather than doing separate translations and workflows for things like GDPR, or to give consumers temporary access to try a platinum-level service."
Feature flags, API management vs GitFlow
CloudBees Rollout acquisition, as well as its purchase of Electric Cloud's release automation software in April 2019, pushes the erstwhile commercial Jenkins distributor further into general software development management. Enterprise IT watchers say CloudBees' step into feature flags points in a direction other enterprise software development management vendors will soon follow.
Webscale unicorns such as Google first advanced the ideas of software release automation and DevOps, and favored GitFlow principles and giant single code repositories, or monorepos. But this runs counter to patterns in enterprise IT, which by its nature is distributed among multiple teams, processes and applications. Against this backdrop, forward-thinking enterprise DevOps shops now favor a combination of API management tools and feature flags to weave together the many moving parts that make up enterprise workloads, industry experts say.
"The enterprise is a landscape of fragmented tools that all have to talk to each other," said Jeremy Pullen, CEO and principal consultant at Polodis Inc., a DevSecOps and Lean management advisory firm in Tucker, Ga., that works with large enterprise clients. "Pipelines and feature toggles are the superior approach to coordinating hundreds of microservices in the enterprise."
In fact, Pullen argues that pipelines such as those built with Jenkins X and feature toggles will supplant source control repositories and GitFlow workflow tools for enterprise software development management, and he sees CloudBees' Rollout buy as an adoption of just such a strategy.
"Ninety percent of the time workflows are just wishful thinking, but pipelines are reality," Pullen said. "Modeling your workflow off a pipeline is more valuable than modeling workflow states, but the toggling lifecycle needs to be represented in that process."
Feature flag complexity caveats
While there are benefits to feature flags, software development experts warn that their overuse can cause headaches, particularly when testing code. Developers and DevOps pros that support test build environments must test multiple conditional logic, or if/then, scenarios before deployment. When the number of feature flags increases within multiple branches of code, testing complexity can skyrocket and slow down deployments -- the opposite of the intended benefit of feature flags.
Human error when writing feature flags can also wreck the intended effect of a feature release – careless feature toggles can release features to every audience but the intended one, for example. Such scenarios can create real-world nightmares, as in the August 2012 case of Knight Capital Group, whose misconfigured feature flag caused the company's bankruptcy in a single day of market trading.
Automated management and programmatic control over feature flags with a tool such as Rollout make such scenarios less likely. However, such tools don't always cover another important aspect of feature flag management: cleanup of outdated feature flags, which is crucial to minimize their risk.
"If you don't clean up each feature once the toggle is flipped, it becomes just another form of technical debt," Condo said. "As soon as you add a feature flag to your software deployment process, you should also create a work item to remove it when the release is done, and software engineers that own the feature have to have the smarts to take on that cleanup."
Complexity is the tradeoff enterprises must make in exchange for feature flags' scalability, Pullen said, but he predicts that workflow and pipeline tools from Atlassian's Jira to CloudBees' Jenkins X will tackle that problem. In CloudBees' case, the Rollout acquisition will probably hasten that development process, he said.