Side-by-side upgrade v4 to v5

Product: PowerShell Universal
Version: 4.3.2

I have a complex PSU environment, 2 servers, with >100 scripts, many schedules, some APIs and some Apps. I need to minimize downtime.
This is my outline of my side-by-side upgrade plan. It does seem overly labor intensive, but it’s intended to avoid downtime. I curious about your experiences and how you avoided downtime in your upgrade.

• Two existing PSU servers are "4A" and "4B"
• Build 2 new servers ("5A" and "5B")
• Clone PSU SQL database
• Clone Git main PSU repo to branch "v5branch"
• Install PSU v5.latest to 5A and 5B
	○ License 5A and 5B with PSU Developers licenses
	○ Attach new PSU to cloned SQL database
	○ Configure Git to use v5branch
	○ Ensure all schedules are paused on 5A, 5B
• Testing and refactoring on 5A, 5B
	○ Fix all scripts and Apps
	○ Validate all functionality, including roles, etc.
• Cut over
	○ Set new VM snapshots on  4A, 4B, 5A, 5B
	○ Stop schedules on 4A, 4B
	○ Remove production license from 4A, 4B
	○ Apply production license to  5A, 5B
	○ Merge branch v4branch to main
	○ Configure 5A, 5B to use Git main branch
	○ Start schedules on 5A, 5B
	○ Move PSU DNS alias to point to 5A
• After successful burn-in period
	○ Remove VM snapshots
	○ Decommission 4A, 4B
    ○ Delete old PSU database
1 Like