Release Cycle, LTA Strategy, Upgrade Paths, and Migration Planning: Configuration, Design Patterns, and Trade-Offs
Choose LTA versus current release, replacement versus in-place deployment, scanner/plugin timing, and staged rollout from compatibility, rollback and operational evidence.
Learning objectives
- Choose commercial LTA or current release intentionally instead of applying Community Build terminology to Server.
- Compare replacement-instance and in-place strategies with explicit database and rollback boundaries.
- Sequence scanner and plugin changes so one migration variable can be diagnosed at a time.
- Choose staged validation over big-bang rollout for APIs, CI, IDE and analyzer behavior.
- Use deprecation and compatibility evidence to decide whether to remove, upgrade, or replace an integration.
1. Design principle: reduce simultaneous unknowns
Updates fail most expensively when several layers change at once. If the SonarQube version, database engine, Java major, OS image, plugins, scanners and CI integration all change in one maintenance window, a failure has too many plausible causes. A strong migration plan separates required dependencies from optional modernization and records a validation gate after each meaningful step.
2. LTA versus latest release
For commercial SonarQube Server, the current release receives new features/enhancements/patches, while the current LTA receives longer-lived vulnerability/blocker fixes and support. An organization may choose LTA to reduce feature-change frequency or current releases to adopt features sooner. Neither choice removes the need to apply supported patches.
For Community Build, do not write an “LTA strategy.” There is no Community Build LTA. Use the calendar-version update rules and decide how quickly your organization follows current monthly releases.
| Need | Likely strategy | Evidence to retain |
|---|---|---|
| Commercial production favors longer-lived baseline | Current Server LTA + supported patches | LTA identity, patch level, support window, update notes |
| Commercial team needs latest capabilities | Current Server release stream | Latest/latest-1 status, compatibility rehearsal, faster cadence |
| Free Community Build | Calendar releases; no LTA | Current version, same-year/year-bridge path, release notes |
3. Replacement instance versus in-place host
Fresh distribution/container
Preferred pattern. Keep configuration declarative, install only target-compatible plugins, point the target at a rehearsal/restored DB, and preserve the old deployment definition for rollback.
In-place host mutation
Can reduce infrastructure cost but increases coupling to stale files, old plugins and service paths. Current ZIP guidance explicitly uses a fresh directory rather than overwriting the old home.
Even with a replacement container, the database migration is still stateful. Blue/green server containers do not make a shared migrated database simultaneously compatible with old and new binaries.
4. Scanner upgrades before or after the server?
Do not automatically upgrade every scanner in the same commit as the server. First inventory scanner versions and JRE auto-provisioning. Current SonarScanner CLI baseline is 8.1.0.6389. When auto-provisioning is enabled on supported scanners, runtime management is simpler; when it is disabled, current scanner guidance requires modern Java, with Java 17 support already ended/deprecated in 2026.
A practical staged pattern is: prove representative existing scanners against the target, then upgrade obsolete scanner versions in a separate controlled change where required. This isolates “server migration problem” from “scanner/toolchain migration problem.”
5. Plugin removal/update strategy
Every third-party plugin is executable server-side supply-chain
state. Before the server update, classify each plugin as
built-in replacement available, target-compatible, update
required, or remove. Never copy the old extensions/plugins directory
wholesale into the target. Use the current version matrix and
provenance checks from Chapter 26.
plugin_key | source_version | target_compatible_version | action | rollback_artifact
-----------|----------------|---------------------------|--------|------------------
example | 1.x | none | remove | source JAR checksum
example2 | 2.x | 3.x | update | both pinned JARs
6. Staged versus big-bang rollout
A staged update separates at least four acceptance planes:
- Infrastructure: target starts, DB migration completes, health/logs acceptable.
-
Analysis: representative project uploads and
target
ceTaskIdsucceeds. - Policy: issues/metrics/gate/new-code results are understood, especially if bundled analyzers changed.
- Automation: Web API, webhook, CI, provider decoration and IDE Connected Mode dependencies still work.
Only after these planes pass should the migration be accepted. Data Center rollouts add cluster coordination and belong to Chapter 30.
7. Web API V2 and deprecation debt
Chapter 23 established that Web API V2 is an endpoint-by-endpoint
transition. An update plan must inventory actual endpoints and
inspect deprecation evidence, not globally rewrite
/api/... to /api/v2/.... Current
post-update guidance explicitly tells operators to review deprecated
Web API endpoint/parameter usage.
Treat an API deprecation as migration backlog with an owner and target release. Do not wait for a future release to remove the endpoint during the maintenance window.
8. Worked decision table
| Scenario | Choice | Prerequisite | Observable proof |
|---|---|---|---|
| Commercial team values low feature churn | Track current LTA patches | Server license/support + LTA path review | Version/LTA status, patch notes, rehearsal |
| Community Build 26.7 → 26.9 | Direct same-year update | Read 26.8/26.9 notes; target requirements pass | Clone migration + post-update ceTaskId |
| Old plugin has no compatible target | Remove before migration or replace integration | Confirmed ownership/usage | Staging startup and representative analysis |
| CI scanner is old but currently works | Validate server first; upgrade scanner separately if needed | Compatibility supported | Old scanner test, then separate scanner change |
| Critical API is deprecated | Migrate automation before target removal release | Replacement endpoint documented | Dual-path/contract test and deprecation log cleanup |
Knowledge check
Should a Community Build operator choose between LTA and current?
No. Community Build has no LTA. That design choice applies to commercial Server.
Why prefer a fresh ZIP directory/image over copying the old installation wholesale?
It prevents stale configuration/plugins/files from silently crossing the version boundary and matches current update guidance.
Why stage scanner changes separately when possible?
It preserves failure isolation: you can distinguish a server migration defect from a scanner/toolchain change.
What makes a deprecated API an update risk?
A future release can remove it after the deprecation window; automation must migrate before that removal becomes an outage.
Can two server versions safely share a database after the newer one migrates it?
No. Rollback requires restoring the database backup appropriate to the older version.
Official references and version notes
- SonarQube downloads — current Community Build, commercial current release, and current LTA identities.
- Community Build — Determining the update path — direct same-year updates; December/January bridge rules across calendar years; no Community Build LTA concept.
-
SonarQube Server — Release cycle model
— two-month releases, yearly LTA, active-version support model,
and
YYYY.Release.Patchversioning. - SonarQube Server — Determining the update path — intermediate LTA rules and update-path calculator.
- Community Build — Pre-update steps — read every intervening release note, back up the database, test first, and leave database disk headroom for migrations.
- Community Build — Performing the update — fresh installation/image, compatible plugins, configuration review, startup/migration and validation flow.
- Community Build — Post-update steps — scanner verification, database cleanup, service-path updates and API-deprecation review.
- Community Build — Other migration-related tasks — rollback requires restoring the pre-update database backup before switching back to the previous server.
- Community Build — Server host requirements — ZIP installations currently require JDK 21 or 25.
- Community Build — Database requirements — PostgreSQL 14–18 is supported in current Community Build.
- Plugin version matrix — verify every third-party plugin against the target before update.
- Deprecation policy — public APIs/features are deprecated before removal; migration planning must inventory those dependencies.
- SonarScanner CLI 8.1.0.6389 — scanner baseline used for post-update validation.
- Official SonarQube Docker tags — exact source/target image identities used by the rehearsal.
Rechecked 2026-09-08. Mandatory examples rehearse
SonarQube Community Build 26.7.0.124771 → 26.9.0.129388. The current target is
Community Build 26.9.0.129388 using official
sonarqube:26.7.0.124771-community and
sonarqube:26.9.0.129388-community images,
PostgreSQL 17.11, and
SonarScanner CLI 8.1.0.6389. Both Community Build
versions are in calendar year 2026, so the current update-path
rule permits a direct update; learners still read the 26.8 and
26.9 release/update notes before execution. Current commercial
references are
SonarQube Server 2026 Release 4.1 and
2026.1.5 LTA. Community Build has no LTA concept.
ZIP-hosted current SonarQube requires Java 21 or 25; the Docker
lab uses the image-bundled runtime. Current Community Build
supports PostgreSQL 14–18. Recheck exact release notes, target
host/database requirements, plugins, scanners, API deprecations,
and integrations immediately before any real update.
Keep the academy open
Support free, practical DevOps education.
Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0Send only Ethereum/ERC-20 compatible assets to this
address.