Breaking up is(n't) hard to do!
Separating releases from deployments with vendor-neutral feature flags
Todd Baert�OpenFeature Maintainer, Dynatrace
Standardizing Feature Flagging for Everyone
What is a feature flag?
The code and infra is ready, but the business is not… perhaps due to:
How many of us have found ourselves in this position?
Easy!
We can do better.
It’s worth it to do better.
It’s time to start taking feature flags more seriously�(but don’t take my word for it)...
“Being able to alter runtime behavior without deploying means we can quickly mitigate issues, enable features for subsets of production users or perform A/B style feature tests.”
https://twitter.com/mipsytipsy/status/1341555348054818817
https://tech.ebayinc.com/engineering/openfeature-with-contributions-from-ebay-submitted-to-cncfs-sandbox-program/
https://martinfowler.com/articles/feature-toggles.html
Let’s consider our previous fictional feature:
What if:
What if:
Let’s consider our previous fictional feature:
What if:
Let’s consider our previous fictional feature:
What if:
Let’s consider our previous fictional feature:
What if:
Let’s consider our previous fictional feature:
What if:
Let’s consider our previous fictional feature:
https://martinfowler.com/articles/richardsonMaturityModel.html
Introducing the feature-flag maturity model:
The ENV_VAR swamp
0
Dynamic configuration
1
Dynamic evaluation
2
Operationalized feature-flags
3
Level 0: The ENV_VAR swamp
Level 0: The ENV_VAR swamp
Level 0: The ENV_VAR swamp
Level 0: The ENV_VAR swamp
Level 0: The ENV_VAR swamp
Level 0: The ENV_VAR swamp
Level 1: Dynamic Configuration
Level 1: Dynamic Configuration
Level 1: Dynamic Configuration
Level 1: Dynamic Configuration
Level 1: Dynamic Configuration
Level 2: Dynamic Evaluation
Level 2: Dynamic Evaluation
Level 2: Dynamic Evaluation
Level 2: Dynamic Evaluation
Level 2: Dynamic Evaluation
Level 2: Dynamic Evaluation
Level 3: Operationalized feature-flags
Level 3: Operationalized feature-flags
Level 3: Operationalized feature-flags
Level 3: Operationalized feature-flags
Level 3: Operationalized feature-flags
Level 3: Operationalized feature-flags
Introducing the feature-flag maturity model:
The ENV_VAR swamp
0
Dynamic configuration
1
Dynamic evaluation
2
Operationalized feature-flags
3
What’s OpenFeature?
OpenFeature is an open standard that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool.
Speaks Your Language
SDK implementations
We have 5 production-ready (v1.0+) SDKs released, with more on the way.
Supports Your Favorite Tools
Developed with the industry
The OpenFeature standard was developed in collaboration with the top feature flag and remote management vendors and OSS projects.
Why Standardize?
Standardizing feature flags unifies tools and vendors behind a common interface, avoiding vendor lock-in at the code level. It provides a framework for building extensions and integrations that can be shared across the community.
Why Standardize?
Conventional semantics for telemetry
A consistent API for application authors
Easier language support for vendors
Common paradigms for ecosystem development
Easier migration between solutions
Simplified testing and local development
Lower risk adoption
OpenFeature crash course
OpenFeature crash course
Provider: “adaptor” for flag management system
OpenFeature crash course
Hook: a flexible integration point
OpenFeature crash course
Demo Time!
A realtime, vendor-neutral feature management platform built on cloud-native components
Demo Time!
Standardizing Feature Flagging for Everyone
@openfeature
company/openfeature
github.com/open-feature
openfeature.dev
cloud-native.slack.com #openfeature�(or get an invite at slack.cncf.io)