Chapter 1 · Get started
What is FluxGate
FluxGate separates deploying code from releasing a feature, and a few services make that work.
Before you start
Nothing to install. This page is a concept overview. You need no running instance to read it. To see the sidebar tour for yourself, finish Install and first boot first.
Deploy versus release
Deploying code and releasing a feature are two different events.
- A deploy puts new code on your servers.
- A release turns a feature on for users.
When both are the same event, every release is a deploy and every rollback is a redeploy. FluxGate separates them. You ship the code behind a feature flag, switched off. Later you release the feature from the admin UI: to a few users first, then to more, with approvals along the way. If something goes wrong, you switch the flag off. No new deploy is needed.
The services
A FluxGate installation has four parts that matter to you:
- Admin UI. You work here. You model features, pipelines and approvals, and you read dashboards.
- Backend. It stores everything in PostgreSQL and serves the REST API that the UI uses. It also serves a WebSocket for live updates and a gRPC stream for edge servers.
- Edge server. It keeps a cached copy of the feature set that the backend streams to it. It answers evaluations from that cache, so your apps get fast answers close to where they run.
- Your app. It asks the edge server for a flag value through an SDK or plain HTTP. Your app never calls the backend to evaluate a flag.
Evaluations flow from your app to the edge server. Telemetry about those evaluations flows back to the backend, and the dashboards show it.
Default ports in the demo stack
| Service | Port | Protocol | Published to your machine |
|---|---|---|---|
| Admin UI | 3000 | HTTP | yes |
| Backend REST and Swagger UI | 8080 | HTTP | yes |
| Backend gRPC | 50051 | gRPC | no, edge reaches it over the Docker network |
| Edge server | 8081 | HTTP | yes, after you start it |
| PostgreSQL | 5433 | PostgreSQL | yes, mapped to 5432 in the container |
The UI calls the backend directly from your browser. That is why port 8080 must be reachable from the browser as well as from the other containers.
A tour of the sidebar
Sign in to the UI and the sidebar shows five groups. The Settings group appears only for users with team management access, so sign in as admin System admin to see all five.
| Group | What it holds |
|---|---|
| Observe | Dashboards for evaluations, metrics and audit activity |
| Build | Features, pipelines, contexts and environments: where you model a release |
| Connect | The clients that evaluate flags, and integrations |
| Govern | Approvals, approval policies and freeze windows: the controls that keep a release safe |
| Settings | Teams, users, roles and the rest of the admin setup |
The story in this guide
The guide follows Juniper Market, an online grocery. The Checkout team wants to ship a one-tap flow called express-checkout. Plus users in Canada get it first. Then a gradual split opens it to everyone else, and a second person approves each step. Every chapter builds one part of that release.
Next
Run FluxGate on your own machine in Install and first boot.