Th: 11 Document different scenario & steps for migration - TanveeKhanDB/OCI GitHub Wiki

Lab mission

Build a migration dossier for OrderDesk, a fictional application with a web server, Oracle database, attachment store and reporting integration. Compare four relocation paths, then rehearse a transfer and recovery procedure.

This is a planning and validation lab. Examples do not claim a production migration has been completed. Use disposable resources and synthetic or masked data for practical work. Cloud infrastructure and transfer services may incur charges.

Deliverables: workload inventory, four scenario worksheets, target design, validation record, timed cutover plan and acceptance sheet.


1. Establish the workload contract

Before choosing tools, complete this worksheet.

Subject Information to record
Runtime OS, architecture, application version, packages, startup and shutdown procedures
Database Engine/version, edition, features, size, growth and daily change rate
Attachments File count, volume, permissions, ownership, retention and update frequency
Dependencies Identity provider, database endpoints, partner APIs, mail relay and reporting jobs
Network CIDRs, routes, DNS, ports, certificates, load balancers and external allow-lists
Operations Backup schedule, restore process, alerts, batch jobs and support contacts
Business Busy periods, approved data locations, permitted outage and data-loss tolerance
Commercial Current cost, licence entitlement, target budget and overlap costs

Draw the dependency chain user β†’ application β†’ database β†’ reporting service. Add the attachment store and identity provider. Mark components that need a coordinated move because a temporary split would break transactions or create excessive latency.

Keep these objectives separate:

  • RTO: recovery-time limit after disruption.
  • RPO: maximum acceptable age of lost data during recovery.
  • Migration outage window: the separately agreed period for the planned switch.

For the exercise, assume a 60-minute outage, 60-minute RTO and 5-minute RPO. These are fictional planning values, not production recommendations. Record source latency, error rate, throughput and resource usage under representative load as the comparison baseline.

Checkpoint: another engineer can identify every dependency and the owner who approves each requirement.

2. Decide what should happen to each component

Strategy Decision to make Sample application choice
Rehost Can the existing runtime operate on compatible target infrastructure? Redeploy the app on a compatible VM
Replatform Would a limited platform change reduce maintenance? Evaluate a supported managed database
Refactor Is redesign needed to meet scale or availability requirements? Separate web and background processing
Repurchase Is a packaged service preferable to maintaining this function? Replace a custom ticket module with SaaS
Retain Does a constraint prevent moving the component now? Keep a restricted partner connection in place
Retire Is the function unused and approved for removal? Remove an obsolete report generator

Start with a low-risk pilot. Group later waves around dependencies, then schedule critical services after the process is proven. A wave is a coordinated workload group, not simply a fixed number of servers.

3. Work through four migration cases

Case A β€” Change the OCI region

Challenge: users are closer to another OCI region; ownership remains within the same tenancy.

  1. Confirm destination services, quotas, capacity and approved data location.
  2. Build the target VCN, subnets, routing, access controls and monitoring. Avoid address conflicts with connected networks.
  3. Recreate infrastructure from controlled configuration. Check image, backup and database portability for each service.
  4. When private inter-region traffic is needed, configure DRGs and remote peering, including route tables and security rules. This creates a network path; it does not transfer servers or databases.
  5. Seed the database and files with a supported restore/export or replication method. Track changes made during the initial copy.
  6. Test the destination, freeze source writes, apply the remaining changes and reconcile before switching users.
  7. Retain a recoverable source until acceptance and the required retention period end.

Attach to the worksheet: regional capability review, network diagram, copy log, reconciliation record and response-time comparison.

Case B β€” Change the OCI tenancy

Challenge: a subsidiary must take ownership of OrderDesk in its own tenancy.

  1. Identify both tenancy owners and the exact resources and datasets to transfer.
  2. Record ownership and data-transfer approvals, including responsibilities for retained records.
  3. Prepare target compartments, identities, policies, keys and operating controls. Source resource identifiers and permissions are not automatically portable.
  4. Choose connectivity according to region and isolation needs. A tenancy change does not always require remote peering. Cross-region peering and same-region designs require different planning; use the OCI DRG documentation for the selected topology.
  5. Scope temporary cross-tenancy permissions to the transfer. Test approved paths and confirm unrelated resources are inaccessible.
  6. Copy approved data, redeploy the application and configure target endpoints and credentials.
  7. Obtain acceptance from both owners and remove temporary access after the transfer is accepted.

Attach to the worksheet: ownership record, access matrix, isolation tests, data manifest and two-party acceptance.

Case C β€” Move from OCI to Azure

Challenge: the organisation wants OrderDesk hosted in its Azure operating environment.

Service names provide starting points for design. They do not establish feature parity or automatic conversion.

OCI component Azure candidate Assessment required
Compute Virtual Machines OS, architecture, drivers, disk support and runtime dependencies
OKE AKS Identity, persistent volumes, ingress and deployment configuration
Object Storage Blob Storage APIs, metadata, access rules and lifecycle behaviour
File Storage Azure Files or another suitable file service Protocol, permissions and application semantics
Oracle database Supported Oracle deployment or assessed engine conversion Features, migration method, target availability and licences
IAM Entra ID and Azure RBAC Identity mapping, federation and new role assignments
Vault / monitoring Key Vault / Azure Monitor Secret handling, access policies, logs and alerts
  1. Design Azure resource organisation, identity and networking. For hub-and-spoke, document gateway placement, DNS forwarding, inspection paths and spoke isolation.
  2. Assess connectivity. OCI–Azure interconnect joins FastConnect and ExpressRoute in supported locations; check the actual region pair. A provider connection or VPN may suit other requirements. See Oracle multicloud interconnect.
  3. Verify bidirectional routes, DNS, required ports, throughput and path failover. Specify encryption explicitly; a private circuit alone does not prove all encryption requirements are met.
  4. Select the server method after checking support. Azure Migrate covers multiple source types, including public-cloud VMs, but the machine and migration-path requirements still need assessment. Rebuilding and redeploying is another option. See Azure Migrate overview.
  5. For Oracle-to-Oracle movement, assess logical export/import or physical backup/restore according to compatibility. Supported, licensed change replication may reduce the catch-up period; test the complete seed-and-sync process.
  6. For a different database engine, assess schema, procedures, types and application SQL separately. Choose tooling for the precise source/target pair. A generic migration service does not guarantee Oracle conversion support.
  7. Transfer files and objects using a tool that supports both endpoints. Reconcile bytes, metadata and permissions. Recreate secrets through an approved process.
  8. Validate the application and rehearse recovery, including preservation of writes made after target activation.

Attach to the worksheet: compatibility matrix, service decisions, network tests, database method, licensing review, cost estimate and recovery evidence.

Case D β€” Move from a data centre to OCI

Challenge: OrderDesk runs on ageing local equipment.

  1. Inventory physical/virtual hosts, storage, hardware dependencies, operating systems and licences.
  2. Identify fixed-IP assumptions, attached devices and unsupported runtimes. Decide their treatment before building the target.
  3. Prepare OCI compartments, networking, access, keys, backup and monitoring. Confirm capacity for special needs such as GPUs before committing.
  4. Select FastConnect or Site-to-Site VPN based on throughput, resilience, lead time and cost. Plan redundant paths when required.
  5. Test dependencies that remain local, including identity, DNS and partner integrations.
  6. Move a pilot, validate it, then repeat in dependency-based waves.
  7. Keep original hosts recoverable through the acceptance period.

Attach to the worksheet: host assessment, connectivity results, pilot report, wave schedule and source-retention decision.


4. Prepare a destination that can be operated

Produce two linked design records. The HLD explains architecture, service choices, security boundaries and recovery objectives. The LLD specifies addresses, routes, policies, sizing, configuration and implementation steps. Review changes for consistency between them.

Before live data is loaded, demonstrate:

  • Named identities, MFA where appropriate and narrowly scoped administrative access.
  • Private application/database placement and rules limited to required traffic.
  • Approved encryption, key ownership and secret handling.
  • Owner, application, environment and cost-allocation tags.
  • Audit retention, budget alerts and incident escalation.
  • Backup restoration and a recovery exercise against the agreed targets.
  • Approved data locations and applicable organisational requirements.

Estimate costs from quantities: compute, storage, backup, circuits, transfer, licences, support and temporary duplicate environments. Build the schedule from dependency analysis, data size, change rate and measured rehearsal durations.

Sizing exercise: an initial 200 GB copy at an effective 100 Mb/s takes about 4.4 hours before validation and later changes. Use observed throughput rather than the circuit's advertised rate.

5. Collect proof before promotion

Stage What to prove Sign-off evidence
Development Startup, configuration and basic functions using synthetic/masked data Developer smoke-test record
QA Regression, integrations, performance and failure handling Defects, fixes and retest results
UAT Business workflows and reports using approved test data Business acceptance
Production rehearsal Transfer timing, restore, traffic change and rollback Reviewed rehearsal log

Complete the security assessment before go-live. Resolve blocking findings and record any formally accepted exceptions.

Reconcile data at a common consistent point. Counts alone do not establish correctness. Compare row/file counts, file hashes, appropriately normalised database values, sampled related records, business totals and the final replication checkpoint.

Example Oracle checks, adapted to the real schema:

SELECT COUNT(*) AS order_count FROM lab_orders;
SELECT status, COUNT(*) AS order_count, SUM(total_amount) AS amount
FROM lab_orders
GROUP BY status
ORDER BY status;

Run equivalent checks on both sides after final sync. Keep outputs with timestamps and investigate unexplained differences. Matching totals do not replace transaction-level validation.

6. Rehearse the switch within a measured window

flowchart TD
    A[Readiness evidence complete] --> B{Approve window?}
    B -->|No| C[Fix gaps and repeat rehearsal]
    B -->|Yes| D[Freeze source writes and jobs]
    D --> E[Final sync and reconciliation]
    E --> F{Validation passes?}
    F -->|No| G[Execute data-safe recovery]
    F -->|Yes| H[Test target with controlled access]
    H --> I[Approve and redirect users]
    I --> J[Observe transactions and service health]
Loading

Inform users, support and affected partners ahead of the change. Confirm certificate coverage and new IP allow-lists. Lower DNS TTL early enough for the previous TTL to expire, while allowing for clients that cache addresses or retain sessions.

Use this illustrative runbook for the lab's 60-minute outage. Replace estimates with rehearsal measurements.

Minute Action Lead Condition to proceed
0–5 Maintenance mode; stop source writes, workers and scheduled jobs Application owner Write freeze confirmed
5–20 Complete database and file catch-up DBA / migration engineer Final checkpoint reached
20–30 Reconcile records, files and business totals DBA / QA No unexplained differences
30–40 Start target and run controlled workflow tests Application owner Critical functions pass
40 Record go or rollback decision Business owner / change lead Decision logged
40–50 Redirect users and reopen approved access Network / app team Correct target reached
50–60 Observe transactions and integrations Operations / QA Healthy service and correct writes

The minute-40 decision reserves 20 minutes for rehearsed recovery. If recovery needs longer, move the decision earlier or revise the window. Do not consume the reserve without a new decision.

7. Practise recovery with both data states

Agree triggers beforehand: unexplained reconciliation differences, a failed critical workflow, excessive errors/latency, or a missed decision deadline.

Before target writes: stop target services, confirm the source remains authoritative, restore the source traffic path, restart source jobs and validate access.

After target writes: freeze target writes and preserve its changes. Run a tested reverse-replication, transaction replay or reconciliation procedure before reopening source writes. Reversing DNS alone may lose orders or duplicate processing. Where safe return is unavailable, document that limitation beforehand and agree restore or forward recovery.

Maintain one authoritative writer in this lab. Include queues, background jobs, files and external side effects in recovery planning.

Failure drill: fail a target health check before opening writes. Return to the source, record elapsed time and prove that no order was lost or processed twice. Then model the post-write case using synthetic transactions and reconcile them before reopening either side.

8. Accept the target and close the migration

During the agreed observation period, track response times, errors, database health, failed jobs, capacity and actual spend. Assign alert owners and escalation contacts. Include relevant business cycles when deciding how long observation should last.

Leave these items unchecked until evidence is available:

  • Scope, architecture and costs are approved.
  • Business workflows and partner integrations pass.
  • Reconciliation has no unexplained differences.
  • Outage and recovery results meet approved limits.
  • Performance meets agreed baseline criteria.
  • Access, encryption and security reviews are complete.
  • Backup restoration and recovery are demonstrated.
  • Operations has runbooks, training, contacts and as-built diagrams.
  • Business acceptance and source-retention dates are recorded.
  • Temporary permissions and migration services have a removal plan.

Decommissioning is a separate controlled step after acceptance and retention obligations are satisfied. Preserve required final backups, obtain required approval, remove obsolete resources and update cost/licence records. Review observed target demand before purchasing long-term capacity commitments.

Submit the lab dossier

Include the inventory, all four scenario worksheets, HLD/LLD, compatibility decisions, costs, test outputs, timed cutover/recovery records and acceptance sheet. Label items planned, tested or approved accurately.

Knowledge check

  1. Why is working peering insufficient evidence of a completed migration?
  2. Which dependency could require two components to move in one wave?
  3. What must change in recovery after the target accepts an order?
  4. How would you prove copied attachments retain the intended access?
  5. What evidence would justify retaining a workload where it is?
Suggested answers
  1. Connectivity is separate from deployment, transfer and application validation.
  2. A latency-sensitive database link or coupled transaction workflow can require a coordinated wave.
  3. Preserve and reconcile target-side transactions before reopening the source.
  4. Compare metadata and test authorised and unauthorised access.
  5. Record a compatibility, dependency, location or business constraint with an owner and review date.

⚠️ **GitHub.com Fallback** ⚠️