Hacker News new | ask | show | jobs
by the_mitsuhiko 497 days ago
> I think there's a reasonable middle ground-point between having feature flags in a JSON file that you have to redeploy to change and using an (often expensive) feature flags as a service platform: roll your own simple system.

The middle ground is a JSON file that is copied up and periodically refreshed. We (Sentry) moved from a managed software to just a YAML file with feature flags that is pushed to all containers.

The benefit of just changing a file is that you have a lot of freedom of how you deal with it (eg: leave comments) and you have the history of who flipped it and for which reason.

1 comments

How do you push the files to all of your containers? I’ve done this in the past with app specific endpoints but never found a solution I liked with containers.
We currently persist the feature flag config in a database where the containers pull it from. Not the optimal solution but that was a natural evolution from a system we already had in place.
We keep a JSON blob in Google Secret Manager for our flags. The service running in the container will reload the secret anytime it changes
Ah that’s a super nice feature. I’m mostly familiar with AWS who don’t have a neat way of doing this, you end up with a bespoke solution either with lambdas pushing to shared volumes or just polling s3 for updates.
If you are using kubernetes, you can mount the secret/ConfigMap as a volume and it will be updated automatically when changes occur. Then your application merely watches the file for updates.
Being on AWS, using EKS feels like overkill when you're talking $75/month just for having it managed by AWS. This doesn't work with ECS, unfortunately, or if you're just running docker on EC2.
AWS has a native service for this called AppConfig and has agents that can pull and cache flag values so your services only need to make localhost requests.
AH nice, I was not aware of this. Thanks (It is expensive, though...)
Expensive?? Really? One of the cheapest services around.

$0.0000002 per configuration request