25.4 · Feature flags, remote config and the release train
Because you cannot take a release back, the most valuable release tool is the ability to change behaviour after it ships. Flags decouple deploying code from exposing it, and a release train makes shipping boring.
Mental model. Ship code dark, turn it on gradually, turn it off instantly. And run releases on a schedule, so each one is small.
Flags
Kinds of flags, safe defaults, stable bucketing and clean-up.
- How do you design feature flags and remote config for a mobile app: flag kinds, defaults, stable percentage rollouts, consistency, security and clean-up?
A flag is a value fetched from a server (or compiled in) that code reads to decide behaviour. There are different kinds, with different lifetimes. Release…
The train
Cadence, branch cuts, ownership and go/no-go for many apps.
- How do you run a release train for many apps: cadence, branch cuts, ownership, go/no-go criteria, hotfix lanes and shared SDK versions?
A release train ships on a fixed schedule (for example every two weeks) whatever is ready, instead of waiting for features: what is not ready waits for the…
More in App Store & release engineering
- 25.1 · Code signing, provisioning and what each file is for
- 25.2 · CI/CD tools, versioning and designing the pipeline
- 25.3 · TestFlight, phased release, App Review and rollback
- 25.5 · Backward-compatible change, deployment targets and device requirements
- 25.6 · Reading profiles and signatures, signing order and API keys
- 25.7 · What a build leaves behind: archives, binaries, dependencies and tests
- 25.8 · Pipelines that lie, build numbers, hotfix branches and rollout statistics