For stable services with clear dependencies and verifiable data, the safer choice is a rehearsed, staged cloud repatriation—not a one-time cutover. Move a limited service or traffic slice only after the new environment passes its acceptance checks, and keep a tested rollback path available throughout observation. If the service depends heavily on managed cloud features, global elasticity, or data consistency that cannot be verified, defer the move or migrate only a separable part.
This runbook is for CTOs, technical leads, and operations managers comparing public cloud with a dedicated server and planning a low-risk trial.
It is not a guide to migrating every workload: teams with strong multi-region or managed-service dependencies should first define what can remain in the cloud.
Decision rule: Do not expand traffic until service health, critical business actions, and data checks all pass at the current stage.
Last updated October 19, 2026. Research references were checked against the August 6, 2026 research summary and the July 28, 2026 report summary. These are research perspectives, not proof that every business should repatriate workloads.
Set the migration boundary before choosing a cutover method
The first decision is which service can move independently. Select a stable web service, API, or internal application only when its upstream and downstream dependencies are documented and the team can test its critical workflows outside production. A service that looks small in an infrastructure diagram may still depend on a managed database, queue, object store, identity system, private network policy, or cloud-specific integration.
Build a dependency register from current architecture documents, deployment configuration, monitoring, and service ownership records. For each dependency, record the current provider or system, the application behavior that relies on it, the replacement or compatibility plan, and the person responsible for validating that plan. Treat undocumented dependencies as unresolved, not as evidence that they do not exist.
Exclude or defer workloads that need rapid capacity changes, a global multi-region footprint, or deeply integrated managed services unless those capabilities have an explicit replacement design. A hybrid result is valid: a stable application tier may move while a managed database or elastic component remains in the cloud. Cloud repatriation does not require moving every component to one machine.
Research summaries provide context, not a migration decision. The August 2026 summary linked above says discussion of cloud repatriation had not materially changed public-cloud spending growth. The July 2026 report describes it as an issue receiving attention while organizations continue to weigh trade-offs. Neither finding establishes that a particular workload will cost less or operate better after moving.
Choose the cutover path from the data and traffic model
The cutover mechanism must match how the application handles writes. DNS changes may be sufficient for a service whose clients tolerate DNS caching and whose old and new endpoints can safely serve the same data state. For applications needing more control, a load balancer or application-level routing mechanism may allow operators to direct a limited, identifiable portion of traffic. The team must verify the actual behavior of its own clients and routing configuration rather than assuming that a DNS change takes effect immediately.
For database-backed services, choose a synchronization method and define which environment can accept writes at each stage. If both systems accept writes without a conflict plan, rollback can create a data-reconciliation problem rather than restore service. PostgreSQL logical replication, for example, can replicate selected data changes, but its documented limitations include schema changes that must be managed separately. The team must review the documentation for its database version and migration method; this is not a universal replication recipe.
Use the following decision branches before scheduling a production change:
- If dependencies are mapped, data synchronization is understood, and the team can validate records and business actions, proceed to a rehearsal.
- If the application can be separated but a managed service cannot be replaced safely, migrate only the separable component or keep that dependency in the cloud.
- If there is no authoritative write source, no safe way to stop or reconcile writes, or no verified route back, do not cut over yet.
- If the workload requires elasticity or geographic coverage the target cannot provide, retain the existing cloud deployment or redesign the service before reconsidering migration.
These conditions are more useful than a generic traffic percentage. A small traffic slice can still be unsafe if it writes to a database that is not synchronized or if the team cannot identify which system owns the resulting data.
Confirm the target and write down the acceptance evidence
Before the rehearsal, compare the target against the service's actual requirements: CPU and memory demand, storage layout, network throughput, system image, access method, backup plan, and recovery procedure. A dedicated machine changes operational responsibilities. The team manages more of the operating system and storage configuration than it would with a fully managed service, and it must provide its own external backup and recovery design where these are not included in the service.
For the current CloudUDP product information, the plans list an AMD EPYC 7543P with 32 cores and 64 threads, 128 GB or 256 GB of memory, and two directly attached 1 TB NVMe drives. The listed bandwidth options are 250 Mbps, 1 Gbps, and 2 Gbps, each with unlimited traffic; the listed location is Tokyo. Available systems, billing periods, and current product terms should be confirmed on the CloudUDP plans page before a migration decision. Linux access uses SSH and Windows access uses RDP; the access guide describes connection methods. These are target specifications, not a promise of migration success, availability, or recovery.
Set acceptance criteria before the rehearsal and tie each one to observable evidence. The team should decide what counts as acceptable service availability, error behavior, response time, critical business transactions, data consistency, scheduled jobs, and alerts. Do not borrow generic thresholds from another system. Use the service's existing monitoring and business requirements to set thresholds, assign an owner to each check, and record what happens if a criterion fails.
| Milestone | Acceptance evidence | Owner to name | Stop or rollback action |
|---|---|---|---|
| Dependency review | Dependency register, owners, and replacement or retention decision for each service | Application or platform lead | Defer the affected component until the dependency is resolved |
| Data rehearsal | Import or replication status, record-level checks, and a defined write-freeze or write-ownership method | Database owner | Stop the rehearsal and restore the known-good source state |
| Application rehearsal | Successful startup, access, permissions, network checks, and critical business actions | Service owner | Fix the tested environment; do not schedule production cutover |
| Limited cutover | Health checks, business results, data checks, and change log for the active traffic slice | Change lead | Pause expansion; repair only if the cause and data state are understood |
| Observation and retirement | Stable workflows, verified backups and recovery, and completed rollback decision | Service owner and operations lead | Keep the old environment available or execute the rehearsed return |
The table is a work record, not a universal service-level target. Fill in names, exact checks, thresholds, and decision authority for the system being moved.
Rehearse the return path before production traffic changes
A migration rehearsal is incomplete if it proves only that the application can start on the new host. Run the sequence in a test or low-risk environment: prepare the target, load or synchronize data, confirm application configuration, check network reachability and permissions, then exercise the critical user and background workflows. After the forward path, actually reverse the traffic or restore the prior service path and validate the resulting data state.
For PostgreSQL logical replication, the replication documentation explains how changes can be replicated between databases. The team must still test its own schema-management process, sequence behavior, writes during cutover, and application assumptions. PostgreSQL's conflict documentation describes how conflicts are handled; a team should not assume that a replication setup will automatically reconcile divergent writes.
Record each rehearsal action, its operator, start and finish, result, and relevant log or monitoring evidence. Include the rollback configuration and the exact action needed to make the old environment authoritative again. If data can change after the new environment begins serving traffic, the plan must say whether writes will be frozen, replicated back, reconciled through an application process, or handled by another tested method. If nobody can explain this step, the service is not ready for a production cutover.
Move traffic in controlled stages and stop at each gate
Start with a test route or an isolated group of users, requests, or service instances that the team can identify and monitor. Confirm health checks and critical business actions at that stage before increasing the scope. Each expansion should require an explicit human decision, with the person responsible for that decision named in the change plan.
During each stage, monitor application errors, response behavior, resource use, business outcomes, and the data path. Record traffic changes, configuration edits, decision times, and the operator who approved each move. If an acceptance check fails, stop expanding traffic first. Then decide whether the team understands the failure well enough to repair it in place or whether the pre-agreed rollback condition has been met.
This separates three actions that are often confused:
- Pause: Hold the current traffic scope while gathering evidence. Do not increase exposure.
- Repair: Apply a controlled fix only when the cause, affected data, and validation method are understood.
- Rollback: Return traffic and, where required, write authority to the prior environment using the rehearsed procedure.
A rollback is not automatically the safest response to every alert. Switching back while both environments have accepted writes can make the data state less clear. Conversely, continuing to repair while the service is failing can increase user impact. The change lead should use the written acceptance criteria and data-ownership plan rather than making the decision from intuition alone.
Use the observation period to decide whether to continue
After the cutover stage, keep the old environment available for the observation period defined in the change plan. Check the service on a fixed schedule against the same acceptance criteria used in the rehearsal. Compare business results, database records, background jobs, delayed work, alerts, and any dependency that might still be pointing to the old environment.
PostgreSQL provides subscription monitoring guidance for logical replication. Monitoring can show whether replication is progressing, but it does not replace application-level validation or prove that every business transaction is correct. The high-availability documentation also describes distinct replication and recovery considerations; teams should select a recovery design that matches their own failure modes rather than treating replication as a backup.
During the first week after a production move, retain the old environment if that is the observation window specified by the service plan, and verify that the agreed checks cover relevant business cycles and scheduled work. The calendar alone is not an exit criterion. Keep the previous environment until the team has verified the target's backup and recovery process, validated critical workflows and data, and documented who can authorize rollback or retirement.
If a discrepancy appears, first stop traffic expansion and prevent uncontrolled writes to both sides. Identify the authoritative write history and compare affected records and application logs. Roll back if the defined consistency or service criteria have failed and the rehearsed return path remains safe. Repair in place only when the cause is understood, the repair is reversible or otherwise controlled, and the team can confirm the resulting data state. The right choice depends on evidence, not on a universal rule to always repair or always revert.
Close the migration only after rollback is no longer needed
Retire the old environment after the team has passed its acceptance checks, verified external backups and recovery steps, confirmed monitoring and alert ownership, and formally decided that the rollback path is no longer required. Removing the old environment early to reduce a bill can eliminate the only tested route back. Keeping it indefinitely without an owner or retirement date also creates operational risk, so the change plan should name the decision owner and the conditions for decommissioning.
Use the review to compare the planned and actual dependency map, identify unexpected work, record any service impact, and update the next migration's entry criteria. If the first service exposed a dependency that cannot be safely moved, preserve that component in the cloud and revise the design. A mixed deployment can be a deliberate outcome rather than a failed migration.
The current CloudUDP plans and system information can help teams check whether a target configuration fits a low-risk candidate, but they do not replace workload measurements or an operational recovery plan. Before adding a service to the trial, verify the available hardware, storage, bandwidth, supported systems, billing options, location, and access method against its requirements. A dedicated AMD physical server is a better fit when the workload needs a stable, exclusive machine and the team can own its operating system, backups, and recovery process; shared cloud instances retain advantages when elasticity, managed services, or rapid multi-region changes are essential. Use the CloudUDP ordering information to check the current ordering process, then decide whether one clearly bounded service is ready for rehearsal.
Frequently asked questions
How can a cloud repatriation use gradual traffic shifts without disrupting production?
Start with a service whose dependencies and data path are understood. Validate it in a non-production environment, then route only a controlled, observable part of traffic to the new host. Keep a named operator at each decision point. Pause expansion if health checks, business transactions, or data comparisons fail; do not rely on a traffic percentage alone as proof that the service is safe.
How long should the old cloud environment stay available after migration?
Keep it available for the observation period defined by the service's recovery plan and acceptance criteria. That period should cover the relevant business cycles, background jobs, and data checks. Do not remove the old environment just because the new service starts successfully. Retire it only after recovery procedures, backups, and critical workflows have been verified and rollback is no longer required.
After cutover, should the team repair inconsistent data or roll back first?
First stop further traffic expansion and prevent uncontrolled writes to both environments. Compare the affected records and identify which system has the authoritative write history. If the pre-agreed consistency or business acceptance criteria fail, follow the rehearsed rollback path; repair in place only when the cause is understood and the repair can be validated without creating conflicting writes.
What should a team verify in a rollback rehearsal before moving to a dedicated server?
Run the recovery steps, not just a document review. Verify access, configuration restoration, traffic reversal, database behavior, and the treatment of writes made after cutover. Record the operator, action, evidence, and failure point for each step. The rehearsal is incomplete if the team cannot explain how it will reconcile data or prevent simultaneous writes during the return to the old environment.
Frequently asked questions
How can a cloud repatriation use gradual traffic shifts without disrupting production?
Start with a service whose dependencies and data path are understood. Validate it in a non-production environment, then route only a controlled, observable part of traffic to the new host. Keep a named operator at each decision point. Pause expansion if health checks, business transactions, or data comparisons fail; do not rely on a traffic percentage alone as proof that the service is safe.
How long should the old cloud environment stay available after migration?
Keep it available for the observation period defined by the service's recovery plan and acceptance criteria. That period should cover the relevant business cycles, background jobs, and data checks. Do not remove the old environment just because the new service starts successfully. Retire it only after recovery procedures, backups, and critical workflows have been verified and rollback is no longer required.
After cutover, should the team repair inconsistent data or roll back first?
First stop further traffic expansion and prevent uncontrolled writes to both environments. Compare the affected records and identify which system has the authoritative write history. If the pre-agreed consistency or business acceptance criteria fail, follow the rehearsed rollback path; repair in place only when the cause is understood and the repair can be validated without creating conflicting writes.
What should a team verify in a rollback rehearsal before moving to a dedicated server?
Run the recovery steps, not just a document review. Verify access, configuration restoration, traffic reversal, database behavior, and the treatment of writes made after cutover. Record the operator, action, evidence, and failure point for each step. The rehearsal is incomplete if the team cannot explain how it will reconcile data or prevent simultaneous writes during the return to the old environment.
Further reading
Dedicated AMD EPYC 7543P server from $454/month
