Slide 1

Slide 1 text

Standardizing Feature Flagging for Everyone openfeature.dev Last updated: Aug 25, 2022 Data on Kubernetes Community Meetup

Slide 2

Slide 2 text

My first feature flag Image source: https://en.wikipedia.org/wiki/Jumper _%28computing%29 Jumper - a short length of conductor used to close, open or bypass part of an electronic circuit

Slide 3

Slide 3 text

> whoami ● In open source since 2012 ● Was doing feature flags before is was a mainstream ● Dynatrace OSPO, ex. CloudBees/Synopsys/Intel ● Wood chopper & water carrier in OpenFeature LibreCores

Slide 4

Slide 4 text

Dynatrace OSPO engineering.dynatrace.com/open-source

Slide 5

Slide 5 text

This talk ● Feature Flags 101 ● OpenFeature Introduction ● Live Demo ● What’s next? https://bit.ly/dokc-openfeature These slides

Slide 6

Slide 6 text

Feature Flags 101

Slide 7

Slide 7 text

Feature Flag Use-Cases ● Preview Features ● A/B testing ● Progressive delivery ● (?) Settings ● … Classification: ● Temporary or permanent ● Runtime or not ● Boolean, numeric, etc.

Slide 8

Slide 8 text

Example. GitHub

Slide 9

Slide 9 text

Example. Jenkins jenkins.io/doc/book/managing/system-properties or System.setProperty(name, value)

Slide 10

Slide 10 text

Example. Jenkins Not so temporary :)

Slide 11

Slide 11 text

Feature flags are NOT just tumblers Source: https://www.bennadel.com/blog/3612-vie wing-the-launchdarkly-feature-flag-evalu ation-process-as-a-pure-function.htm ● Complex evaluation ● Based on context ○ user ○ location/language ○ instanceId, etc. ○ control plane inputs ○ user defined settings

Slide 12

Slide 12 text

There are [open-source] frameworks for it! ● SDKs are usually open source ● Technology-specific libraries ● Services ○ Flagsmith, Unleash, FeatureHub, GO Feature Flag, Flipt… Source: optimizely.com/insights/blog/manage-outdated-feature-flags

Slide 13

Slide 13 text

Feature Flagging ecosystem ● Many SDKs solving essentially the same problem ● SDKs are generally open source but have a limited ecosystem ● Open Source projects cannot use existing SDKs, not vendor neutral ● Vendor lock-in at the code-level ● No solution fully utilizes cloud native capabilities ● Missing integration with observability tools (e.g. OpenTelemetry)

Slide 14

Slide 14 text

https://xkcd.com/927/

Slide 15

Slide 15 text

So, what’s next?

Slide 16

Slide 16 text

Let’s build OpenTelemetry of Feature Flagging ● Define an open standard, vendor-neutral specification ● Develop a unified API and SDK ● Provide a developer-first, cloud-native reference implementation ● Support extensibility for commercial offerings (open core)

Slide 17

Slide 17 text

Proposed solution ● Publish an open standard that allows new and existing feature flag solutions to become spec-compliant ● Develop spec-compliant, vendor agnostic SDKs ● Integrate with cloud native technologies, such as OpenTelemetery, allowing for enhanced distributed traces, metrics, and request scoped context ● Provide a Kubernetes focused reference implementation

Slide 18

Slide 18 text

OpenFeature is an open standard for feature flag management, created to support a robust feature flag ecosystem using cloud native technologies. OpenFeature will provide a unified API and SDK, and a developer-first, cloud-native implementation, with extensibility for open source and commercial offerings. openfeature.dev

Slide 19

Slide 19 text

OpenFeature Idea dynatrace.com/news/blog/new-openfeat ure-standard-for-feature-flagging Local Open Feature manager

Slide 20

Slide 20 text

OpenFeature ● Started in Feb 2022 by Dynatrace ● Many founding companies - end users and vendors ● 20+ interested companies by now ● CNCF Sandbox Project https://github.com/open-feature/community/blob/ main/interested-parties.md

Slide 21

Slide 21 text

What’s inside? ● Open Specification ● Open Source SDKs for common technology stacks ● FOSS reference implementations for control plane ● Vendor-neutral community

Slide 22

Slide 22 text

Specification ● https://github.com/open-feature/spec ● Ready for evaluation ● Pending research on details

Slide 23

Slide 23 text

OpenFeature SDKs Done/Preview: ● Node.js ● Java ● Golang ● .NET & .NET Framework In progress ● Python Backlog: Ruby & Co github.com/orgs/open-feature/projects/1/views/8

Slide 24

Slide 24 text

Providers For OpenFeature

Slide 25

Slide 25 text

OpenFeature Providers ● Split ● CloudBees Feature Management ● LaunchDarkly ● Flagsmith ● Go-feature-flag ● flagD ● … Demos: github.com/open-feature/playgroun d#demo-providers Providers roadmap: https://github.com/orgs/open-featur e/projects/2

Slide 26

Slide 26 text

Flagd - Simple generic daemon github.com/open-feature/flagd ● OpenFeature sub-project ● Implementation for demos and prototyping

Slide 27

Slide 27 text

Kubernetes-native Reference Implementation github.com/open-feature/open-feature-operator ● K8s operator ● Injects flagD sidecar

Slide 28

Slide 28 text

Native OpenTelemetry Support demo:github.com/open-feature/playground/blob/m ain/README.md#opentelemetry-integration

Slide 29

Slide 29 text

Demo time!

Slide 30

Slide 30 text

How to try? Find demos here: github.com/open-feature/playground Guided tour No Kubernetes today

Slide 31

Slide 31 text

Project state

Slide 32

Slide 32 text

February 2022 Define and contact stakeholders. Organize initial team. March 2022 Define the mission, governance, vision, initial scope, and architecture. May 2022 Announce the project at KubeCon EU. August 2022 Beta release with observability integrations. October 2022 Announce GA release at KubeCon US. Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec Milestones Project Roadmap

Slide 33

Slide 33 text

Open Future of OpenFeature Now: ● Outreach to potential contributors ● Summarizing research results, spec drafts ● Prototyping and reference implementations ● Specification - Beta release Next: ● Kubecon! ● General Availability release Public Roadmap: github.com/orgs/open-feature/projects/2

Slide 34

Slide 34 text

Takeaways 1. OpenFeature grows fast, many vendors are onboard 2. OpenFeature is ready for evaluation 3. Try it out! github.com/open-feature/playground

Slide 35

Slide 35 text

Participate in OpenFeature! ● Join our Slack ● Join us for project meetings ● Add yourself to Interested Parties ● Develop SDKs ● Share your feedback! github.com/open-feature/community

Slide 36

Slide 36 text

Links ● Website: openfeature.dev ● GitHub: github.com/open-feature ● Specification: github.com/open-feature/spec ● Community and Governance: github.com/open-feature/community ● Project roadmap: github.com/orgs/open-feature/projects/2

Slide 37

Slide 37 text

QUESTIONS? openfeature.dev ! Join our Slack