Undocumented dependencies
Applications talk to databases, file shares, mail servers and third-party APIs in ways nobody wrote down until something breaks.
Cloud & DevOps · Migration
We move one system at a time, practice every migration before the real one, and keep the old environment ready until the new one has proven itself.
Cloud migration services move an organization's applications, databases and files from on-premises servers, shared hosting or another provider onto a cloud platform. Each workload is assigned a strategy (rehost it as it is, replatform it onto managed services, refactor it, replace it or retire it) and then migrated through rehearsals, a planned cut-over and a defined rollback path. The aim is a move that users barely notice, apart from, ideally, better performance.
Migrations go wrong when they are treated as copying files. Hidden dependencies surface on the night: a hard-coded IP address, a licence tied to a machine, a scheduled job no one documented, an email relay that only accepts the old server. Without a rehearsal and a rollback plan, a weekend cut-over turns into days of firefighting while the business waits.
Applications talk to databases, file shares, mail servers and third-party APIs in ways nobody wrote down until something breaks.
An online store, ERP or patient system cannot simply be switched off for a long migration window.
Databases that are big or written to constantly need replication or incremental sync, not a single export and import.
Lifting an oversized, unpatched server into the cloud as-is can cost more than before while keeping every old weakness.
An inventory of servers, applications, databases, DNS records, certificates, scheduled jobs and integrations, with the connections between them drawn out.
Each system classified as rehost, replatform, refactor, replace or retire, with the reasoning and effort written down.
The destination network, compute, databases and access set up, ideally with infrastructure as code, following an agreed cloud architecture.
Database dumps, replication or incremental sync and file transfer chosen to suit data size and acceptable downtime, with row counts and checksums verified.
At least one full trial migration, then a written cut-over runbook covering DNS changes, freeze windows, verification and who decides go or no-go.
A tested way back if verification fails, and only after a stable period, the controlled shutdown of the old environment.
Rehearsals and rollback plans turn the cut-over into a repeat of something already done once.
Replication and pre-staged data reduce the final window to the minimum each system allows.
Retiring unused systems and right-sizing the rest avoids paying cloud prices for old waste.
The discovery work leaves you with an inventory and dependency map you probably never had.
An ERP, accounting or file server sitting in an office cupboard moved to a cloud environment with proper backups and remote access.
A business website or web application that has outgrown shared hosting moved to an environment it can control and scale.
Workloads moved between hyperscalers and simpler providers in either direction, for cost, region or support reasons.
A legacy application replatformed onto containers and a managed database during the move, instead of copied unchanged.
The real cut-over is never the first time a migration has been run.
Inventory systems, measure their resource use and map every dependency we can find.
Assign a migration strategy to each workload and group them into waves, starting with lower-risk systems.
Build the destination environment, access controls, monitoring and backups before any data moves.
Run a full trial migration, test the application on the new platform and time each step.
Agree the window, the freeze, the runbook, the verification checks and the rollback trigger.
Final sync, DNS switch and verification, with the old environment kept ready.
Monitor closely, fix issues, right-size resources once real usage is visible.
Retire the old environment after an agreed stable period and a final backup.
| Criterion | Rehost (lift and shift) | Replatform | Refactor |
|---|---|---|---|
| What changes | Nothing in the application; servers move as they are | Some components swapped for managed services, e.g. database | Application redesigned to be cloud-native |
| Effort | Lowest | Moderate | Highest |
| Speed to migrate | Fastest | Moderate | Slowest |
| Cloud benefits gained | Few; mainly leaving old hardware | Managed backups, scaling of selected parts | Most: scaling, resilience, automation |
| Best fit | Deadlines, stable legacy apps | Most business applications | Core products with a long future |
Data moves over encrypted channels and is never left in temporary public locations.
Old shared passwords and keys are not carried over; access is rebuilt with named accounts and least privilege.
Verified backups of source systems are taken before the rehearsal and before the final cut-over.
The target is load-tested against observed peak usage so the new platform is not undersized on day one.
Every cut-over we run has a defined trigger and procedure for returning to the old system.
Because we develop software, we can fix the hard-coded paths and config issues that typically stall a migration.
We migrate ERP, Odoo, WordPress and custom applications, not just generic servers.
If a system should be retired or replaced rather than migrated, we say so before you pay to move it.
Fixed-price packages with the scope written down, paid stage by stage. Your project goes live once it's fully paid.
Official documentation and guidance if you want to read more about this topic.
Downtime depends on data size, how often data changes and whether replication is possible for that system. Some workloads can cut over in a short maintenance window using replication; others need a longer planned freeze. We measure this during the rehearsal and agree the window with you before the real migration.
Rehosting moves a system to the cloud unchanged, while replatforming changes some components on the way, such as moving a self-hosted database to a managed one. Rehosting is quicker; replatforming takes a little longer but usually removes operational work and cost afterwards.
We follow the rollback plan agreed in advance: the old environment stays intact and DNS or traffic is pointed back to it. Because the go/no-go criteria are written down, the decision to roll back is quick rather than debated in the middle of the night.
Not automatically. Cloud costs depend on how resources are sized and used, and a lift-and-shift of oversized servers can cost more than before. We right-size during and after migration and show you the expected running cost before you commit.
Yes. We regularly move Odoo databases and filestores, WordPress sites and custom web applications between hosts and providers. Odoo version upgrades are a separate service from moving where Odoo runs, and we keep the two distinct in the plan.
Next step
List the systems you want to move and where they run today. We'll outline a strategy per workload and the questions the rehearsal must answer.