Discussion on GitOps style Feature Flagging using Kubernetes

This is a really interesting discussion that I am diving into on the OpenFlags (working title) project (think OpenTelemetry for feature flags).

The Problem

Today, to leverage commercial/open-source feature flag solutions, developers use an "SDK" provided and developed by the vendor to wrap the code they want to be able to toggle. This is expensive (and likely buggy - imagine building Javascript (async), Java, and Elixir (functional) all to the same spec) to maintain for the vendor.

Furthermore, these SDKs enable vendor lock-ins. Developers can't instrument one set of feature flags and use a different feature flag platform.

Proposal

A better, and cloud-native way forward is to leverage Kubernetes APIs. Something like the following:

Screen_Shot_2022-02-09_at_10.24.43_AM

Why?

  1. Feature flag as code - this is declarative!
  2. A lot less surface area to maintain
  3. 100% portable.

What it's not good for:

  1. The UX will have to be built on top of GIT
  2. Front-end code, mobile apps
  3. Obviously anything that doesn't run on Kubernetes
Edited by Kevin Chu