Moving a production service to Node.js 12 LTS
Node.js 12 entered LTS in October 2019. A production migration must account for the V8 runtime, native modules, TLS behaviour and long-lived process state as well as application test results.
Establish dependency support
Use the lockfile to identify packages and native add-ons, then verify maintained versions against Node 12. Rebuild modules in the target operating image rather than copying node_modules from another runtime or workstation.
Compare runtime configuration
Record command-line flags, environment, memory limits, CA certificates and process-manager settings. Exercise outbound TLS, DNS, streams, buffers and child processes used by integrations and background jobs.
Run production-shaped tests
Test startup, graceful shutdown, queue consumption, scheduled work and representative concurrency. Compare event-loop delay, heap use, garbage collection and response latency with the current LTS runtime.
Canary immutable artefacts
Build one release for the target runtime, send a small share of traffic or workers to it and retain the old pool. Keep session and message formats compatible while both versions are operating.
Complete the support transition
Update local development, CI, base images, monitoring and operational documentation together. Set a removal date for the old runtime so a rollback pool does not become an unpatched permanent tier.
A package installation that succeeds is not evidence that a native module, deprecated API or long-running worker behaves correctly under the new V8 version.