HNHacker News
TopNewBestAskShowJobs

GeorgeMac

78 karma · joined June 3, 2013

submissionscomments
GeorgeMac··on Show HN: Glu – Deployment pipeline framework as code
I appreciate you sharing your first interpretations! I get the impression it’s not that clear what this is. Trying to position what this is / figure out where we go with it is tricky/going to be a journey.

While this is in the CI adjacent (and indeed I am a big dagger fan and certainly inspired by it), this predominantly lives in the CD realm instead.

In particular, it has helped us with something that I feel is missing in the GitOps space, which is the connective tissue between environments. Automating updates to app versions directly in repo and then bringing that altogether into a single dashboard where I can see what does my repo say the desired state of the world should be. Ultimately, we want to surface what the actual state is too.

We’ve hedged our bets a bit so far and left room for non GitOps CD to potentially slot in too. But not sure if we should just double down and be explicit and go hard on GitOps.

When you say a “why not…” you’re referring to like a Glu compared with X section right? That’s a good idea. I will add that!

GeorgeMac··on Show HN: Feature Flags Backed by Git
Love this, and definitely where we're going.

We already support S3, Azure and GCS, as well as OCI (any compatible registry) as a source in the open-source server-side evaluator. So if you pop a deploy step to any of these sources from your Git repo, you can use them via the Flipt server process as a source of truth in production. Our server-side and client-side SDKs can source from Flipt in these scenarios.

But, we are keen to both explore skipping the Flipt server middle-man for client-SDKs, as well as make the publish step to these locations a simple configuration process in our UI. To avoid having to write things like GH actions to achieve the end to end result.

GeorgeMac··on Show HN: Feature Flags Backed by Git
You're not wrong there at all. That is a very reasonable assumption and I think the default behaviour with most early CD pipelines. Every commit leads to a deploy event.

However, this can be changed, so that not all commits/pushes are treated equally during CD. Either by using rules to ignore changes to certain sub-directories / files or through having reproducible builds and skipping the process restarting parts when the resulting artefacts between two commits haven't changed (e.g. the digest of a docker image not changing from one commit to the next).

This is often an optimisation though, and takes time/effort to put in place.

GeorgeMac··on Show HN: Feature Flags Backed by Git
On this, we support publishing the state to object storage (S3, Azure, GCS) and to OCI as well in Flipt.

Flipt Open-Source can be run to consume from these locations. You can go as far as configuring a workflow to publish on push, so that you can combine our managed UI with any of these distributions methods through Git.

With any of these backends (including Git), we periodically fetch and cache data in-memory. Evaluations work on an in-mem snapshot. So temporary downtime doesn't propagate into your applications being unable to get flag evaluations.

GeorgeMac··on Show HN: Feature Flags Backed by Git
Thats a great idea! I hadn't thought of combining it with a schedule for when a change is readable.
GeorgeMac··on Show HN: Feature Flags Backed by Git
Full version control, which can be collocated with other configuration for the rest of your system (thinks terraform or k8s manifests) means it becomes easier to build a picture of how your system was configured at a given point in time. Because you have a single history to walk.
GeorgeMac··on Show HN: Feature Flags Backed by Git
Complexity of initial implementation was certainly one, as we developed it. It’s not the most well trodden path for this kind of problem (well trodden for other kinds of apps). Obviously it lacks things like relations and schema, that we have to build on top of data in flat files.

One thing is that running Flipt open source on your infra, means running replicas all sourcing from the same Git repo. They currently polls for updates and this means eventual consistency comes into play when you scale. We have plans to help mitigate that with cloud though (pushing updates from cloud to your self hosted runners).

GeorgeMac··on Show HN: Feature Flags Backed by Git
Feature flag state is still served dynamically through Flipt. Your code doesn’t have to redeploy for the changes to “become live”. That’s the main benefit.

Means you can experiment and target different cohorts with variants of your app without restarting processes everywhere.

GeorgeMac··on Show HN: Feature Flags Backed by Git
Flipt itself is open source and includes the git backend. So if that works for you, great!

In our experience a lot folks came and said… but the ui is so important for us to be able to use a feature flag tool.

GeorgeMac··on Show HN: Feature Flags Backed by Git
This is actually how it works.

Flipt is live tailing the repository and serving this dynamically to the clients.

The repo with flag configuration can be solely for flags, or alongside other infra configuration on in more of a monorepo. You decide how you want it setup.

Obviously if it is alongside code, you may to contend with CI in order to validate a change. But with the rules in CI or other monorepo tooling, what runs and when can adjust this behavior to improve time for configuration to become live.

Once a configuration change is integrated into a target branch in the repo, then it becomes readable for Flipt and servable once fetched.

GeorgeMac··on Reverst: Reverse Tunnels in Go over HTTP/3 and QUIC
Amazing! There really is an awesome- for everything haha. Definitely checking these out.
GeorgeMac··on Reverst: Reverse Tunnels in Go over HTTP/3 and QUIC
This is very cool. Checking it out! Thanks!
GeorgeMac··on Reverst: Reverse Tunnels in Go over HTTP/3 and QUIC
This is great! Thanks for sharing!
GeorgeMac··on Reverst: Reverse Tunnels in Go over HTTP/3 and QUIC
Would love a feature request GH issue for that! Seems totally doable!
GeorgeMac··on Ask HN: Do you commit feature flags to Git?
Nice. Have you had to develop any capabilites around knowing what changed, when and by whom? i.e. audit log or so on?

Just wondering what is your process in an incident when you want to know what changed in the system? e.g. so you can correlate observed error rate changes with a the enabling or disabling of a flag.

GeorgeMac··on Ask HN: Do you commit feature flags to Git?
Nice, cool to hear flags in conjunction with canary releases. Are your flags simply configuration stored in files that your applications read at runtime? Then you push those updates out with Salt?
GeorgeMac··on Ask HN: Do you commit feature flags to Git?
Nice, makes sense. No external feature flag solutions here then? Just leveraging your languages build tooling and changing behaviour based on an environment key?
GeorgeMac··on Ask HN: Do you commit feature flags to Git?
Awesome, that’s makes total sense. Am I right in thinking the practices described here at Facebook are more like progressive delivery? As in, instead of adding code to call out to some external feature flag or configuration system, new changes are deployed automatically in isolation and requests are routed to them progressively for larger and larger cohorts? All while validating the health of the change automatically?
GeorgeMac··on Ask HN: Do you commit feature flags to Git?
Nice. Something home grown effectively then? What kind of application are you building with?
GeorgeMac··on Show HN: Cup – expose declarative APIs over config stored in Git
Thank you Austin! I think I’ll update that with something like mermaid or d2.
GeorgeMac··on Feature Flags: Theory vs. Reality
Yeah, it is surprising not to see more attempts out there! GitHub's TreeSitter sits at the core of our attempt. Definitely feels like the right tool with the right potential. We plan to open source it sometime soon.
GeorgeMac··on Feature Flags: Theory vs. Reality
We're attempting to address some of these problems at https://www.flipt.io/gitops. Having your flags defined as configuration and committed to repository opens up a range of possibilities in terms of static analysis.

Additionaly, we've got a prototype static analysis tool to finding calls to our feature flag clients in both Go and Rust too.

GeorgeMac··on Dagger, a Love Story
Our journey embracing Dagger so far at Flipt, and how much we love it.
GeorgeMac··on New Golang gRPC client generator
Ah darn, wish they'd blogged about this a month ago. We just built the same thing https://www.flipt.io/blog/generating-the-flipt-go-sdk.
GeorgeMac··on Embedding Our New React UI in Go
Our journey porting a Vue based frontend to React, embedded in a Go binary.
GeorgeMac··on My adventures with testing in Go
I have updated now. Thank you for the spotting that!
GeorgeMac··on My adventures with testing in Go
yes you are right! Thank you. Getting mixed up with the language, Gah! haha
GeorgeMac··on Introducing Phoenix, Swift set free
Just to confirm why I posted this. Due to receiving a down vote. Phoenix is a component of http://ind.ie and the movement they are trying to create. User experience driven design/technology, which empowers individuals to remain connected, while protecting their privacy and freedoms.
GeorgeMac··on Introducing Phoenix, Swift set free
Just a shout to say, if you believe in what the ind.ie guys are doing, then please sign their manifesto: https://ind.ie/about/manifesto/ It's time we valued our privacy one again.
GeorgeMac··on Nexus 6
No I was merely stating the Google's business model is subsidised via owning your data. Which then they can manipulate/share at their discretion. Which is fine because you get an affordable piece of tech right? ... right? ...
Page 1 of 2Next →