The challenge
A regional bank was running 43 workloads across two data centres, one of which had a lease expiring in fourteen months and hardware already past end of support. Regulatory expectations around operational resilience meant a rushed migration was not an option, and the internal team had no prior cloud delivery experience at this scale.
The existing environment had accumulated a decade of undocumented configuration. Provisioning a new test environment took eleven days and a series of tickets, which meant that testing anything substantial was rare enough to be an event.
What we did
- 01
Assessment with a costed disposition per workload
Every workload was inventoried with its dependencies and assigned a disposition across rehost, replatform, refactor, repurchase and retire — with nine systems identified for retirement outright, which removed roughly 20% of the migration scope before it started.
- 02
Regulator-aware landing zone first
Account structure, network segmentation, identity boundaries, encryption policy, logging and evidence generation were built as code and reviewed with internal audit and the bank's regulator before any workload moved.
- 03
Migration in dependency-ordered waves
Seven waves, each with a rehearsed cutover, a tested rollback path and agreed validation criteria. Data replication ran continuously so cutover windows were minutes rather than hours.
- 04
Capability transfer as a deliverable
Two bank engineers were embedded in the delivery team throughout, with pairing and formal handover sessions. By wave five they were leading cutovers with us reviewing rather than executing.
- 05
FinOps from wave one
Right-sizing against observed utilisation, savings plan commitments purchased on evidence, storage lifecycle policies and scheduled shutdown of non-production environments outside working hours.
The outcome
All 43 workloads migrated across eleven months with no unplanned outages and no cutover requiring rollback. The expiring data centre was exited two months ahead of the lease deadline.
Infrastructure run rate fell 34% against the pre-migration baseline once optimisation completed. Environment provisioning dropped from eleven days to forty minutes, which changed the bank's testing practice more than any single technical improvement — full-scale testing moved from quarterly to per-release.