Giter Site home page Giter Site logo

lrouquette / feature-flipper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adobe-platform/feature-flipper

0.0 2.0 0.0 1.21 MB

An alternative to complex branching/merging strategies

License: Apache License 2.0

Makefile 3.13% Dockerfile 0.22% JavaScript 58.98% CSS 2.01% Shell 1.53% HTML 0.60% Python 33.53%

feature-flipper's Introduction

Feature Flipper

Dashboard screenshot

About

This is a feature flipper which is used to incrementally roll out features across services and environments.

What makes this feature flipper different from some of the others out there is that it's exposed as a HTTP service, not a particular language or runtime. SDK generation is available via the API Gateway console.

The backend is serverless, running on AWS Lambda and API Gateway with DynamoDB for persistence. The front end is a single page application (SPA) hosted on S3.

Once some static resources are setup, the SPA frontend and API backend are easily deployed and upgraded with a single command.

Motivation

This isn't the place for discussing the merits of continuous delivery or why we think it's useful to deliver software using this tool.

Suffice it to say as a team and product scales and you have

  • Managers that want to control what features are released and when
  • QE engineers that want to test features before they're released
  • Complex application and infrastructure architectures
  • A particular feature spanning multiple teams in different time zones

It's really nice to not be in the critical path of releasing software by having to either (1) be responsible for merging feature branches or (2) build automation to avoid (1).

The key benefit of a feature flipper is that it separates the physical release of software from the logical release of software.

Concepts

A channel is an {environment}-{service} tuple (e.g.PROD-BlogService)

A channel has feature sets.

Feature sets have features.

Features have a description and percentage of users that can see them.

Architecture

Consuming server (public)

feature flipper public

Admin interface (private)

feature flipper private

Local cache

Optional but highly recommended is using our local cache to store feature data.

Documentation

feature-flipper's People

Contributors

phylake avatar jfieber avatar

Watchers

James Cloos avatar Laurent Rouquette avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.