Deployment and lifecycle management
The deployment path
OutSystems separates publish from deploy. Service Studio's 1-Click Publish pushes to the current environment, usually Development. Promotion to Quality and Production happens through LifeTime. Applications group modules; solutions bundle applications and their dependencies for a coordinated deployment.
Rules that prevent failed releases
- Tag the application version you intend to release so you can redeploy that exact version later.
- Run Validate before Deploy; fix validation errors rather than bypassing them.
- Read Impact Analysis and the Deployment Plan: they show dependent modules and what will actually change in the target.
- Deploy dependencies first or include them in the same solution; a module cannot run against a missing or incompatible dependency.
- Treat entity changes as schema migrations: deployment synchronizes the database, so plan data migration and rollback separately.
Worked example
You release OrderApp, which references CustomerCore. The Deployment Plan includes both modules because CustomerCore changed. Validate fails on a missing dependency in the target. You add CustomerCore to the solution, revalidate, and deploy the solution as one unit. Reasoning: deploying OrderApp alone would leave a version mismatch; bundling makes the dependency explicit and atomic.
Traps
- Publishing from Service Studio directly to Production.
- Skipping Validate because Development works.
- Ignoring Impact Analysis and discovering a broken dependency after deployment.
- Assuming LifeTime provides an automatic rollback; plan to redeploy the previous tagged version.
- Forgetting that database schema changes are applied during deployment.