Cloud Migration Strategy and Execution Questions
Planning and executing a move to the cloud: the migration strategies (rehost, replatform, refactor, repurchase, retire, retain), legacy assessment, dependency mapping, cutover planning, and rollback. Covers phased migration roadmaps, workload modernization, risk management during cutover, and validating success post-migration. The end-to-end migration lifecycle, not steady-state operations.
Create a high-level cost estimation and sensitivity model for migrating 5 PB of storage plus associated compute workloads to a public cloud. Include assumptions for storage tiering (hot/warm/cold), expected ingress/egress patterns and costs, data transfer acceleration and appliance costs, compute sizing and licensing, expected growth rate, and sensitivity to changes in egress and storage-class pricing.
Sample Answer
Direct answer: Build the cost model as separate line items for one-time transfer cost and ongoing post-migration cost, each with an explicit sensitivity range (not a single point estimate), since a 5PB migration's dominant cost drivers (egress, transfer method, and post-migration storage tiering) each have wide enough uncertainty that a single number would be misleading.
Structured elaboration. Storage tiering assumptions: split the 5PB by access pattern (hot: actively queried, warm: occasionally accessed, cold: archival/compliance-retention-only), since storage-class pricing typically varies by an order of magnitude between hot and cold tiers, and getting the hot/warm/cold split roughly right matters far more to the total estimate than precision on any single tier's unit price. Ingress/egress patterns and costs: ingress (data coming IN to the cloud) is typically free or low-cost on major providers; egress (data leaving, including the one-time migration-out cost if data is being moved FROM another cloud, or ongoing egress for any workload that serves data back out) is usually the dominant and most-underestimated cost component, so the model needs an explicit egress-volume assumption with a stated confidence range. Data-transfer acceleration/appliance costs: compare a physical transfer appliance's flat cost against network-transfer cost at the org's actual available bandwidth; at 5PB, this comparison typically favors an appliance unless the org has substantial dedicated bandwidth already provisioned. Compute sizing and licensing: separate from the storage cost entirely, model the compute needed to actually USE the migrated data (query engines, processing clusters), including any licensing costs that don't disappear just because the data moved (some legacy software licenses are tied to deployment model, not just data location). Expected growth rate: the 5PB figure is a snapshot; the ongoing cost model needs a growth assumption (e.g., X% per quarter) since post-migration storage cost compounds. Sensitivity to egress and storage-class pricing changes: run the model at low/base/high assumptions for both egress volume and storage-class pricing, since these are the two inputs most likely to be wrong in the initial estimate and most likely to move the total by a large margin.
Worked example. At 5PB with an assumed 60% cold / 30% warm / 10% hot split: cold-tier storage cost is typically an order of magnitude cheaper per GB than hot, so the split assumption alone can swing the ongoing monthly storage estimate by 3-5x depending on whether the org's real access pattern is closer to 60/30/10 or, say, 20/30/50. A sensitivity table showing total cost at three different hot/cold splits (rather than one blended number) gives the actual decision-makers a much more honest picture of the range they're committing to.
Trade-offs & pitfalls. Presenting a single point-estimate total cost for a 5PB migration, rather than a range with the dominant sensitivity drivers called out explicitly, sets the project up to look like it's "over budget" the moment reality (an inevitably-imperfect initial hot/cold split, or higher-than-assumed egress) diverges even slightly from the point estimate; a sensitivity-based model manages that expectation upfront.
Describe a practical, repeatable framework you would use to prioritize workloads for migration across an enterprise portfolio. Include technical and business criteria, how you'd score or weight them, how to include dependency and risk, and an example of how that prioritization changes across pilot, early waves, and later waves.
Sample Answer
Direct answer: A repeatable prioritization framework scores each workload on two independent axes, business value and migration complexity/risk, then sequences waves to front-load low-complexity/high-learning applications before tackling high-value, high-risk ones once the process is proven.
Structured elaboration. Technical criteria: dependency count and coupling tightness (more dependencies = harder to isolate for a wave), data volume and sensitivity, current infrastructure age/support risk (an unsupported OS is a forcing function), and technical migration effort (does an obvious managed-service or lift-and-shift path exist, or does it need bespoke work). Business criteria: revenue/criticality impact if something goes wrong, compliance exposure, and stakeholder appetite for near-term change (some business units are more risk-tolerant than others). Scoring: a simple 1-5 scale per criterion, weighted (business criticality often weighted higher than raw technical effort, since the cost of a botched migration on a critical app dwarfs the engineering time saved on an easy one), summed into two composite scores: business value and migration risk. Dependency and risk inclusion: any application with high fan-in/fan-out dependency count (fan-in = how many other systems depend on it; fan-out = how many other systems it depends on) gets an automatic risk bump regardless of its own technical simplicity, since its blast radius on failure is larger than its own footprint suggests.
Worked example. Plot every application on a 2x2 of business value vs. risk. Pilot wave: low-risk, low-to-medium value apps (proves the migration process cheaply). Early waves: low-risk, high-value apps (captures value fast while the process is still being refined) plus a few medium-risk apps to stress-test the process before the hardest work. Later waves: high-risk applications regardless of value, since by then the team has the most operational experience, and high-risk/low-value apps are re-examined for Retire instead of migrating them at all.
Trade-offs & pitfalls. The common mistake is sequencing purely by technical ease, which defers the highest-business-value applications indefinitely and never proves the process against real complexity until the deadline is close; the framework above deliberately forces some medium-risk exposure into the early waves specifically to avoid that trap.
A customer demands near-zero downtime for a complex migration with multiple integrations. Draft a negotiation and technical plan that defines acceptable risk levels, migration strategy options (big-bang vs phased vs hybrid), rollback criteria, commercial protections, and technical safeguards you would propose in the contract and runbook.
Sample Answer
Direct answer: For a customer demanding near-zero downtime on a complex, multi-integration migration, the negotiation needs to separate what's technically achievable from what's commercially promised: define acceptable risk levels and rollback criteria FIRST as an internal technical position, then negotiate the commercial terms and contract language around that honest technical assessment, rather than promising a downtime target the team hasn't actually validated is achievable.
Structured elaboration. Acceptable risk levels: define explicitly, before any customer conversation, what level of residual risk the team is genuinely comfortable committing to (e.g., "near-zero" in practice usually means a specific, small, bounded maintenance window, not literal zero, and that distinction needs to be made explicit rather than left to the customer's interpretation of "near-zero"). Migration strategy options (big-bang vs phased vs hybrid): big-bang cuts every integration over at once, which is fast but puts the full blast radius behind a single event, a poor fit for a strict downtime commitment. Phased migrates one integration at a time in sequence, validating each before moving to the next, which bounds the blast radius per step but stretches the overall timeline across every integration. Hybrid is neither of those on its own: it combines a phased rollout for the tightly-coupled, high-risk integrations (where each one genuinely needs its own validated step) with a single big-bang cutover for a cluster of low-risk, decoupled integrations that add little risk if moved together and would only cost extra calendar time if split apart for no real safety benefit. For a complex multi-integration system, hybrid generally offers the better risk profile for a strict downtime commitment: it gets the blast-radius protection of phased where it actually matters and avoids paying phased's full timeline cost everywhere else. Rollback criteria: defined and shared with the customer as PART of the commitment, not hidden internal detail, since a customer demanding near-zero downtime should also understand what triggers a rollback and what that means for the timeline, rather than being surprised by a rollback decision later. Commercial protections: language that ties the SLA/downtime commitment to the AGREED technical plan and its rollback provisions (e.g., a defined maintenance window is contractually distinct from "unplanned downtime," and a rollback triggered by pre-agreed criteria is a planned contingency, not a breach), so the contract reflects the honest, negotiated risk position rather than an unqualified zero-downtime promise the team can't actually guarantee. Technical safeguards in the runbook: the actual technical plan (phased approach, explicit rollback triggers, a validated parallel-run period before full cutover) should be the substance behind whatever commercial commitment is made, not a separate internal document that doesn't match what was promised externally.
Worked example. Rather than agreeing to an unqualified "zero downtime" commitment, the negotiated position is hybrid, not purely phased: the system's handful of tightly-coupled, high-risk integrations move as individually-validated phases over several weeks, each with defined rollback criteria, while the remaining low-risk, largely independent integrations are grouped into one big-bang cutover once their (much smaller) shared blast radius is understood; a single, pre-scheduled, brief (e.g., under 5 minutes) maintenance window for the final cutover of the core system, explicitly called out in the contract as a planned, agreed exception to the broader near-zero-downtime commitment; and a defined SLA credit or remedy if that specific window is exceeded, which is a much more defensible and deliverable commercial commitment than an unqualified promise the team privately knows isn't fully achievable.
Trade-offs & pitfalls. Agreeing to an unqualified "zero downtime, no exceptions" commitment under commercial pressure, without the technical team's honest input on what's actually achievable, sets up a commitment that's likely to be broken; the negotiation should happen WITH the technical risk assessment as an input, not after a commercial promise has already been made that the technical plan then has to somehow deliver on.
Design a test strategy for validating a migrated application. Cover unit/integration/acceptance tests, performance and load testing, security scans, and user-acceptance testing. Explain the sequencing and pass/fail criteria for each test type.
Sample Answer
Direct answer: A migrated application's test strategy needs layered coverage in a specific sequence: unit and integration tests first (confirm the migrated components work correctly in isolation and together), then automated acceptance tests (confirm end-to-end business scenarios work correctly against the migrated system, before involving performance or human validation), then performance/load testing (confirm the new environment meets the same or better performance characteristics), then security scans (confirm the new environment's configuration doesn't introduce vulnerabilities), and user-acceptance testing last (confirm real users/business stakeholders agree the migrated system meets their needs), with clear pass/fail criteria defined for each layer before testing starts.
Structured elaboration. Unit/integration tests: re-run the application's existing automated test suite against the migrated environment (if it doesn't pass at this level, nothing downstream matters); pass/fail criterion is straightforward: the existing suite passes at the same rate as it did pre-migration, with any NEW failures investigated as migration-introduced regressions. Acceptance tests (automated, distinct from both the unit/integration layer below it and the human-driven UAT above): run the existing suite of automated end-to-end/business-scenario tests (e.g., Gherkin/BDD-style scenarios or API-level contract tests exercising full user flows) against the migrated environment; pass/fail criterion is that every previously-passing acceptance scenario still passes unchanged, since this layer exists specifically to catch integration-level regressions across service boundaries that unit/integration tests, being narrower in scope, can miss. Performance and load testing: benchmark the migrated system against the SAME load profile and SLA targets as the pre-migration baseline (not a fresh, arbitrary target), since "is it fast enough" only means something relative to what it needs to replace; pass/fail criterion is defined against specific latency/throughput targets tied to the actual SLA, not a vague "seems fine" assessment. Security scans: run the org's standard security scanning (dependency vulnerabilities, configuration scanning for the new cloud environment specifically, since cloud misconfigurations are a distinct risk category from application-level vulnerabilities) against the migrated environment; pass/fail criterion is typically zero new HIGH/CRITICAL findings introduced by the migration itself (pre-existing findings in the application code aren't newly introduced by the migration and can be tracked separately). User-acceptance testing: business stakeholders/end users validate the migrated system against real workflows, ideally using the SAME acceptance scenarios used when the system was originally built/accepted, if those exist; pass/fail criterion is explicit sign-off from the designated business owner, not just "no complaints so far." Sequencing and pass/fail criteria: each layer gates the next (don't run expensive load tests against a build that's still failing unit tests; don't ask business stakeholders to validate a system that hasn't yet passed security scanning), and every layer's criteria should be defined and agreed BEFORE testing starts, not retrofitted to whatever results come back.
Worked example. For a migrated e-commerce checkout flow: unit/integration suite must pass at 100% parity with pre-migration results; the automated acceptance suite (e.g., "place an order with a saved card," "apply a discount code at checkout") must pass every previously-passing scenario against the migrated environment before load testing begins; load testing must sustain the peak historical Black-Friday-level traffic profile within the existing p99 latency SLA; security scanning must show zero new critical findings in the cloud environment's configuration (IAM policies, network exposure); UAT requires explicit sign-off from the product owner walking through the actual checkout flow, including edge cases like a failed payment and a cart abandonment, not just the happy path.
Trade-offs & pitfalls. Skipping or compressing the performance/load-testing layer under time pressure, reasoning that "if unit tests pass, it should be fine," is a common and risky shortcut: functional correctness and performance characteristics are genuinely independent, and a migrated system can pass every unit test while performing meaningfully worse under real production load due to the new environment's different resource characteristics or network topology.
Tell me about a cloud migration you led or participated in. Specify the public cloud provider(s) used (AWS/Azure/GCP), the concrete services and patterns you chose for compute, storage, networking and managed databases, your role in architecture and deployment, and measurable results (for example: latency reduction, cost delta, availability improvement, deployment frequency). Include any follow-up training or certifications that supported your work.
Sample Answer
Direct answer: The strongest version of this story names the specific cloud provider and concrete services/patterns chosen (not a vague "we moved to the cloud"), explains the candidate's actual role in architecture and execution decisions, and closes with measurable, specific results rather than a general "it went well."
Structured elaboration. Public cloud provider(s) used: name it specifically (AWS/Azure/GCP), since a vague answer here is often an early signal to an interviewer that the rest of the story may also lack specificity. Concrete services and patterns for compute, storage, networking, and managed databases: name actual services for all four, not just the ones that come to mind first (networking in particular is easy to skip since it's less visible than compute or storage) (e.g., "we moved a fleet of on-prem VMs to EC2 behind an Application Load Balancer, provisioned a new VPC with public/private subnet segmentation mirroring our existing security zones and per-tier security groups, ran a temporary Site-to-Site VPN back to the on-prem data center specifically to carry replication traffic during the migration window, migrated the database to RDS PostgreSQL via DMS (Database Migration Service) with change-data-capture (CDC)-based replication for a near-zero-downtime cutover, and moved file storage to S3") rather than generic category names, since specificity here is what lets an interviewer probe deeper and distinguish real hands-on experience from a surface-level description. Role in architecture and deployment: be honest and specific about scope (did the candidate design the migration strategy, execute a specific piece of it, lead the team, or contribute as an individual engineer on a defined workstream); overstating scope tends to unravel under a good interviewer's follow-up questions about decisions the candidate claims to have made. Measurable results: latency reduction (with actual before/after numbers if remembered, even approximate), cost delta (a concrete percentage or dollar figure, understanding this may be approximate from memory but should still be a real number, not "it was cheaper"), availability improvement (a specific uptime or incident-rate change), deployment frequency (if relevant, how release cadence changed post-migration due to new CI/CD capability). Follow-up training or certifications: mentioning relevant certifications or continued learning shows the migration wasn't a one-off task but built lasting capability, which is a positive signal beyond the migration itself.
Worked example. A strong answer: "I was the lead engineer on migrating our order-processing service from on-prem VMware to AWS. We used EC2 with an ALB for the application tier, a new VPC with private subnets for the application and database tiers and a temporary Site-to-Site VPN back to our on-prem datacenter to carry DMS replication traffic securely during the migration window, RDS PostgreSQL with DMS-based CDC replication for the database (targeting near-zero downtime), and moved file storage to S3 with a dual-write period during transition. I owned the database migration and cutover plan specifically, while a colleague led the application-tier work. Post-migration, we measured a 30% reduction in p99 latency (mostly from moving off aging on-prem hardware to modern instance types), a roughly 20% reduction in infrastructure cost after right-sizing, and we went from monthly to weekly deploys once we had the new CI/CD pipeline in place. I got my AWS Solutions Architect Associate certification during the project, partly to make sure I understood the platform deeply enough to make good calls during cutover."
Preparing one story for several framings. The same underlying migration experience gets probed from several different angles across a real interview loop, and it is worth preparing one well-detailed story that can flex to answer each: sometimes the ask is this general "walk me through a migration" framing; sometimes it is narrower, "tell me about a time you had to convince skeptical stakeholders to adopt a particular migration approach," which wants the persuasion and technical-evaluation angle foregrounded instead of the end-to-end summary; and sometimes it is "tell me about a time priorities shifted mid-migration," which wants the adaptability and communication angle foregrounded. Rehearsing the same real project along all three angles, rather than having only one fixed narration of it, means a candidate isn't caught flat-footed when the interviewer's specific phrasing doesn't match the version they rehearsed.
Trade-offs & pitfalls. A common weak version of this answer stays at the category level ("we moved to managed services and it was faster and cheaper") without naming specific services, specific numbers, or a specific role; interviewers use exactly this kind of question to distinguish candidates who did hands-on migration work from those who were adjacent to a project without deep involvement, and specificity is the main signal that separates the two.
Unlock Full Question Bank
Get access to all 26 Cloud Migration Strategy and Execution interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.