Feature management on the CloudBees platform enables teams to progressively toggle features on and off for certain segments of users.
Users of your application may possess any number of attributes, ranging from the country they live in to their account ID. With feature management, you can leverage these attributes to customize the way each user segment interacts with your application. For example, you can roll out a feature to a group of internal users first, so customers do not see the feature until it has been thoroughly tested in the production environment. To achieve this, CloudBees feature management uses feature flags.
What are feature flags?
Feature flags are conditional statements around a coded functionality in an application.
These if
/else
statements can grow into complex logic trees due to the range of attributes involved.
If a feature flag is toggled on, code within the conditional statement is skipped and the feature is disabled. If a feature flag is toggled off, the conditionals are commented out, and the code within the conditionals runs as usual.
You can remotely enable or disable features even when the feature is running in production. Feature flags can be implemented on the client side or server side and help teams achieve continuous delivery with less risk.
A flag can be one of three types:
-
Boolean
-
String
-
Number
To learn more, refer to the following:
Core aspects
The table below lists some core aspects of feature management.
Aspect | Description |
---|---|
Cross-platform, cross-device |
Feature management is available for applications in a range of code languages. |
Progressive delivery |
Control feature rollout by scheduling deployment to incrementally larger user groups. With progressive delivery, you can address any problems or feedback before your feature reaches a wider audience. |
Target groups |
Control the audience for new application features through user segmentation, or target groups. Some common targeting methods are by geographical region, web browser, or email domain. You can also create target groups with custom attributes, such as account status or member ID. |
Use cases
The table below lists some popular use cases for feature management.
Use case | Description |
---|---|
Decoupling deployment from release |
Decouple code releases from feature releases to allow teams to work on their own schedules without disrupting the user experience. |
Kill switch |
Toggle a flag to turn off a problematic feature running in production rather than rolling back an entire build or struggling with hotfix code. |
License management |
Grant user groups, such as subscribers, premium members, or trial users, access to different features or sections of your product. |
Product experimentation |
Gain valuable feedback about how actual users are using features. Instantly roll out a beta-stage feature to your power user base. |
Release management |
Control which user segments gain access to new builds and features, easily enabling your team to perform canary or blue/green deployments, and beta releases. |
Testing in production |
Get the most accurate testing feedback by giving production access to your QA or testing teams. Never again miss a bug due to a poorly replicated testing environment. |
The SDK key: a unique environment identifier
Feature management on the platform connects and serves configurations to a codebase through an SDK key. This key is unique and is generated based on the associated resource (organization or sub-organization) and the environment.
The SDK key is displayed during SDK installation, within the Rox.setup
call.