The topology
A container per service, composed: the control plane, the query engine, the extract executor, the ledger service, the process service, the collaboration server, PostgreSQL, Redis, S3-compatible object storage, the identity services, the orchestration engine and its workers, and a reverse proxy in front.
The same composition runs in the cloud and inside a customer perimeter. What differs is who operates it and which model providers are configured.
A release is a commit
The rule that everything else follows from: a release is a commit, not a set of images that happen to be current.
| Stage | What happens |
|---|---|
| Push to main | CI builds one image per service |
| Tagging | Each image is tagged with the commit. That tag is immutable. |
| Verification | A final job confirms every image in the set exists. A partial build is not a release. |
| Deploy | The target pulls that commit's set and refuses to start if any image for it is missing |
| Confirmation | Services report the commit they were built from, so the fleet can be checked for agreement |
There is also a moving convenience tag per service. It is informational and production never uses it: a per-service moving tag cannot say that the fleet agrees on one commit, which is the only question worth asking during an incident.
Build and run are separate descriptions
The base composition describes how each service is built; a deployment overlay describes what to run - published images, not local builds. Neither leaks into the other, so a developer's local rebuild and a production deploy cannot silently change each other's meaning.
Migrations
Database migrations run on their own path at service start, not as a deploy step. A deploy that spans several commits carries whatever migrations accumulated between them, which is worth checking before a large jump.
Verifying what is running
Because every service reports its build commit, "what is production running" is a query, not a comparison of image timestamps. A periodic check compares the reporting services against an expected commit.
On-prem
The same path: a customer pulls a verified image set on their own schedule. Air-gapped installations take the set as an archive. Model providers are configured locally, so an on-prem deployment can run entirely without outbound network access - see Privacy and on-prem for the hardware.
Related
- Platform - the service topology and where the scaling levers are.
- Versions and the built-in git - the same rule one level up: an application's release is a commit too.
- Licensing - what an installation is entitled to run.
- Audit - what a deployed system records.