Change the application and its deployment together.
A release may change application code, configuration and a database at different times. We design the pipeline and rollout around the versions that have to coexist.

Define the build and deployment steps
We configure build and deployment pipelines for the application. The setup identifies the build inputs, the checks to run and the environment-specific references needed to deploy it. Database migrations need an explicit place in that sequence.
A pipeline can include automated checks and promotion between environments. Build checks and service checks answer different questions: the target still needs a request that exercises the intended dependencies.
Promote an artifact, then verify the target
A test result belongs to the artifact and conditions that were tested. A later rebuild can introduce a different dependency or build input. Where the deployment setup allows it, promote the identified artifact that passed the checks.
The production environment still needs its own checks. Its credentials, network access, capacity and managed resources may differ from test. A pipeline should verify the intended artifact at the target and exercise the service behavior needed for the release.
Artifact and environment comparisonDeployments also stop processes
A web process may finish an accepted request before it exits. A worker may be holding a job that takes much longer. The rollout needs to account for the application’s shutdown behavior and the time available before the platform terminates the old process.
Check how unfinished work returns to the queue, whether a repeated attempt is safe and which version will pick it up. Validate what the old worker leaves behind when it stops, as well as the health of the new container.
Plan the overlap between versions
During a rolling deployment, older and newer application instances can serve requests at the same time. Shared database changes must support that overlap. Adding an optional field is different from renaming a field that the old version still reads.
We help separate a change into compatible stages when the application needs that approach. The work includes checking old readers and writers, completing any required backfill and deciding when the older version can be retired.
Old and new versions can overlap
The new field accepts null. Version 1.9 must handle a row that has no delivery zone.
Decide what rollback can restore
Returning to an earlier application artifact may restore its code while leaving the database and configuration changed. We establish which versions can run against that state and what recovery work would be needed if they cannot.
A rollout plan can use a small initial deployment and an observation period. Define the measurements used to continue or stop the rollout, and agree who will act on them. Check separately which changes can be reversed and which need a recovery procedure.
A practical release assignment
Work can cover an existing pipeline, the release path for a new application or a particular upgrade that needs preparation. The resulting configuration and deployment instructions stay with the client’s agreed repositories and operating arrangements.
Read the staged database exampleRecord the running release and its configuration
A deployment record should connect the environment to an immutable artifact identifier and the configuration revision used with it. A mutable tag can point somewhere else tomorrow. That makes it a weak record of the version involved in an incident.
A repeat build from the same source commit can also differ when a dependency or base image changes. Preserve the inputs needed to identify the delivered artifact, then test its behavior in the target environment.
Build identity and environment inputs