Skip to content

perf(configurator): parallelize release checks and CF staging - #168

Merged
lweberru merged 2 commits into
mainfrom
perf/parallel-configurator-release
Oct 26, 2026
Merged

lweberru merged 2 commits into
mainfrom
perf/parallel-configurator-release

Conversation

@lweberru

@lweberru lweberru commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

CF release preparation currently spends roughly 30 minutes staging Runner, migration and Web/API sequentially; the migration itself takes about 20 seconds. This change derives a minimal migration payload from the checksum-verified release, runs browser acceptance and the full native contract/Runner packaging lane concurrently, and stages Runner, migration and Web/API concurrently using isolated CF sessions.

The App is uploaded with --no-start and the exact package is staged without selecting its droplet. Only after all lanes pass does activation apply the completed Runner binding, validate package/build/droplet ownership, stop the old App, assign the verified droplet and start it. Staging uses a private snapshot with execution disabled. A failed lane cancels sibling process groups, privileged migration cleanup remains explicit, and existing source, checksum, qualified Assistant, promotion and Dev approval gates remain intact. This remains a single immutable release with a brief activation interruption.

Validation: all 69 CI guard tests pass, including actual overlap, failed-lane cleanup, slim migration import/SQL preservation and positive/negative CF activation-order tests; actionlint and Bash syntax checks pass. EN/DE workflow and CF release docs updated. Real CF acceptance and timing comparison will follow the explicitly authorized Dev release (Assistant qualification skip, runtime Assistant active, Runner pool 1). No customer infrastructure Plan/Apply.

Previously qualified artifacts without the new scripts retain their exact-source sequential deployment path on promotion. The migration task retains its five-minute execution bound.

Separate component versioning/reuse is deliberately deferred to #167. CF lifecycle operations follow https://docs.cloudfoundry.org/devguide/push-sub-commands.html.

@lweberru
lweberru merged commit d5ee565 into main Oct 26, 2026
22 of 23 checks passed
@lweberru
lweberru deleted the perf/parallel-configurator-release branch October 26, 2026 15:31
@lweberru

Copy link
Copy Markdown
Collaborator Author

Dev acceptance succeeded: https://github.com/stackitcloud/stackit-landing-zone/actions/runs/40350219442 at source d5ee565 (includes navigation fix #169).

Measured against previous successful run 40334302222:

Phase Previous Current
Build 12:13 10:08
Deployment incl. runtime checks 38:33 19:22
Runner/migration/App preparation roughly 30 min sequential 10:37 parallel

Current lane durations: migration 56 seconds including push, staging, migration evidence and privileged-App deletion; application staging 545 seconds; Runner staging and native validation 637 seconds. Browser and native build lanes completed concurrently (376 browser tests passed; native lane 212 seconds). App build was observed STAGED while its new droplet was still not current, before all lanes passed and activation selected it.

All 69 local CI guards and workflow/shell syntax checks passed, followed by the complete source-bound release checks. An earlier PR validation attempt hit the 15-minute limit after a roughly 10-minute Ubuntu browser dependency install; the unchanged application check was rerun once and fully passed. No test was removed or ignored.

Independent post-release verification confirmed actual deployed source/droplet alignment, Assistant enabled, exactly one matching live warm Runner, migration/access/quota guards and protected routes. Temporary privileged diagnostics were removed. Read-only State verification confirmed serial 7, 12 managed resources, preserved identities and free lock; existing recovery/follow-up Apply receipts remain intact. No customer infrastructure Plan/Apply, State write or lock change was performed.

Component separation/reuse remains deferred in #167. Existing older qualified artifacts keep the sequential exact-source promotion path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant