Skip to content

Migration Plan: Service Migration Template

Goal: Move services between servers to achieve proper architecture separation.

Status: Last Updated: YYYY-MM-DD


Migration Objectives

Current State (Problems)

Target State (After Migration)


Prerequisites (Must Complete Before Starting)

Completed

  • [ ] Current state documented (current-state.md)
  • [ ] Backup system configured and tested
  • [ ] Migration plan documented (this file)

Pending

  • [ ] Backup/restore tested (CRITICAL - do this first!)
  • [ ] Config backup automated
  • [ ] Family/users informed of planned downtime
  • [ ] Emergency rollback plan ready

Critical Considerations

Downtime Awareness

Reality check: Some services WILL be unavailable during migration steps.

Plan: - Do migrations during low-usage times - Inform users: "Internet might be slow for X minutes" - Have backup internet ready (mobile hotspot) - Keep one device that can access both servers

Point of No Return

Once you start a migration step, commit to finishing it or rolling back.

Don't leave services in "half-migrated" state overnight.


Migration Phases

Phase 0: Validation & Testing

Status: Not started Risk: Low (only testing)

Steps: 1. Create a test VM 2. Take a backup of the test VM 3. Delete the test VM 4. Restore the VM from backup 5. Verify the restored VM boots and works 6. Document the restore process

Success criteria: - [ ] Can restore a VM without issues - [ ] Understand the restore process - [ ] Confident in backup system

Blockers if this fails: DO NOT proceed until backups work.


Phase 1: [First Service to Migrate]

Status: Not started Downtime: Risk:

Steps:

Rollback plan:

Success criteria: - [ ] Service accessible - [ ] No errors - [ ] Users don't notice difference


Phase 2: [Second Service to Migrate]


Final Phase: Validation & Cleanup

Status: Not started Downtime: None

Steps: 1. Verify all services running on correct servers 2. Power down old server for 24 hours (test) 3. Verify everything still works 4. Remove old services from previous server 5. Update current-state.md to reflect new reality 6. Update QUICK-REFERENCE.md with new IPs


Last Updated: YYYY-MM-DD