RCWRCW IT TrainingFree hands-on labs & simulators← Back to home
Migration scenario · Citrix · AWS → Azure

How to Assess, Plan & Migrate Citrix Workloads from AWS to Azure

A field-tested methodology for moving a Citrix Virtual Apps and Desktops (CVAD / Citrix DaaS) estate from Amazon Web Services to Microsoft Azure — covering assessment, target-state design, sizing, wave-based cutover and post-migration optimization.

Published September 9, 2026 · RCW IT Training · Category: Migration scenario

Step 0Understand what you are actually moving

Before any tool is deployed, classify the source estate. The single biggest cause of failed Citrix cloud migrations is treating catalogs of machines as the unit of migration. The correct mental model is three planes:

Two realistic target scenarios — decide early

Scenario A (keep Citrix, change the substrate): Citrix Cloud / CVAD continues to broker, but the resource location moves from an AWS region/VPC to an Azure region/VNet. You keep NetScaler, HDX, and all Citrix features, and simply re-provision machines in Azure with MCS.

Scenario B (platform consolidation to AVD): You use the migration as the trigger to retire the Citrix layer and standardize on Azure Virtual Desktop (Windows 10/11 multi-session, FSLogix, App Attach, Intune).

This guide keeps Scenario A as the main path (it answers “migrate Citrix workloads to Azure” literally) and flags the decision points where Scenario B diverges. A hybrid — AVD for some users, Citrix DaaS on Azure for GPU/specialized users — is increasingly common as an end state.

Typical Citrix-on-AWS topologies you will encounter

Source topology on AWSWhat it implies for migration
Citrix DaaS (Citrix Cloud) with AWS resource locations — delivery controllers in Citrix Cloud, Cloud Connectors + MCS-provisioned VDAs in AWS VPCsCleanest path: add an Azure resource location + hosting connection, re-provision catalogs in Azure, migrate users/data, then delete the AWS resource location.
Self-managed CVAD site in AWS — Delivery Controllers, StoreFront, SQL, NetScaler VPX and VDAs all on EC2 in a VPCEither (a) lift the control plane to Azure VMs or (b) move to Citrix Cloud first, then migrate machines to Azure. Choose before anything else — it drives the whole plan.
Hybrid — AWS Citrix with on-premises backends and AD joined via Direct Connect/VPNCoexistence networking and latency to backend apps become the dominant design constraints (see Phase 2).

High-level AWS → Azure mapping reference

Citrix layerAWS constructAzure construct
Broker / control planeCitrix Cloud or EC2 CVAD siteSame Citrix Cloud, or new CVAD site on Azure VMs / in Citrix Cloud
Resource location anchorVPC + Cloud Connectors on EC2VNet + Cloud Connectors on Azure VMs
Machine provisioningMCS catalogs, EC2 AMIs, PVSMCS catalogs, Azure Compute Gallery images (formerly Shared Image Gallery), PVS
Session hosts / VDAsEC2 instances (e.g., m5, c5, g4dn for GPU)Azure VMs (D-/E-/F-series; NVv4 / NVads A10 v5 for GPU)
User profiles / dataEFS/FSx, EBS volumes, user home dirsAzure Files Premium / Azure NetApp Files, managed disks
IdentityAWS Managed AD or AD in EC2Active Directory DS on Azure VMs, Entra ID (hybrid or cloud-only)
Remote accessNetScaler VPX in AWS / Citrix Gateway ServiceNetScaler VPX in Azure or Citrix Gateway Service
Load balancing / DNSALB/NLB, Route 53Azure Load Balancer / Application Gateway, Azure DNS (or Private DNS)
MonitoringCitrix Director/Monitor, CloudWatchCitrix Monitor, Azure Monitor / Log Analytics, Microsoft Intune + Endpoint Analytics (AVD path)

Phase 1Assessment — establish the baseline with data

Assessment is where you de-risk the entire program. Budget 2–4 weeks of wall-clock time; every hour invested here removes rework in later phases. The output is a discovery workbook containing inventory, utilization baselines, persona segmentation, an application register, licensing status, cost baseline, and a risk register. The workbook is the single source of truth that every later design decision cites.

1.1 Inventory every Citrix component

Create a component inventory using Citrix Studio/Console exports, the Citrix PowerShell SDK, and AWS inventory sources (EC2 console, Tag Editor, AWS Config, or AWS Systems Manager). For each component capture: version/patch level, role, location (region/AZ), instance type, CPU/RAM/disk, network placement, and how it is provisioned (MCS/PVS/manual, persistent/non-persistent).

Component groupInventory items to capturePrimary source
Delivery / brokeringDelivery Controllers or Citrix Cloud account, sites, Delivery Groups, Application Groups, policies, StoreFront storesCitrix Studio / Console, Get-BrokerSite, Get-BrokerDesktopGroup
Machine catalogs & imagesCatalog names, machine count, OS, VDA version, provisioning type (MCS/PVS), master image / AMI, persistent or pooledCitrix Studio, MCS/PVS consoles, AWS AMI inventory
Access layerNetScaler VPX/MPX version and config, Gateway vServers, StoreFront version, certificates, URLs, Workspace app versions, Citrix Workspace / Receiver client estateNetScaler config exports (ns.conf), StoreFront console
Identity & directoryAD domains/forests, domain controllers (AWS Managed AD or EC2), OU structure, AD groups used for delivery-group membership, GPOs that touch VDAsADUC, GPMC, Citrix policies
User environmentProfile solution (UPM, FSLogix, Citrix Profile Management, roaming profiles), profile stores & sizes, folder-redirection targetsGPO review, file-server inventory, profile-size sampling
Published appsFull list of published apps per delivery group, delivery method (installed in image, App Layering layers, App-V/MSIX, streaming), publisher & license type, actual usageStudio export cross-referenced with Citrix Director/Monitor usage logs
Backends & dataApplication servers, databases (e.g., the CVAD SQL Server itself), file servers, print servers, any AWS-hosted dependency the sessions useNetwork flows, app teams, AWS service maps
Assessment accelerators

Automate the dump: script Get-BrokerMachine, Get-BrokerCatalog, Get-BrokerDesktopGroup, Get-ConfigSite, and StoreFront/NetScaler export endpoints so the workbook refreshes nightly during the project — do not rely on a one-time screenshot.

Cloud-era discovery: if the estate is large, stand up Azure Migrate discovery (agent-based) against the AWS VMs early. It profiles CPU/memory utilization history that you will reuse for Azure sizing, and it doubles as the server-migration tool for any VMs you genuinely lift (see Section 3.8).

1.2 Capture utilization baselines — you cannot size Azure without them

Pull 4–12 weeks of history from Citrix Director/Monitor and the OS performance counters before anything is turned off. These baselines later become the acceptance criteria for the Azure environment.

Baseline metricWhy it mattersWhere to get it
Peak concurrent sessions & session-count curve by hour/daySizes catalogs, sets Autoscale schedules, drives licensing and reservationsCitrix Director/Monitor “Trends”
CPU / memory utilization per host (avg + P95)Directly translated to Azure VM size and concurrency densityPerformance Monitor (host), Citrix Director
Logon duration (components: GPO, profile, apps, connectivity)Defines the UX KPI the Azure estate must match or beatCitrix Director “Logon Duration” breakdown
ICA RTT / WAN latency, session input delayValidates Azure region choice and network path designCitrix Director session details, user probes
Profile size (avg, median, P90) and logon profile load timeSizes FSLogix/UPM storage tier and IOPS requirementsUPM logging, file-server enumeration, Director
Application launch time and failure ratesFeeds the app register “keep / fix / retire” decisionDirector app trends, app team telemetry
Disk IOPS/latency and storage used per catalogSizes managed disks, Azure Files Premium vs. NetApp, cache disksCloudWatch/perfmon, storage inventory
Network throughput per session & total east-westSizes ExpressRoute/VPN and gateway tiersNetScaler and VPC flow logs
Power-on/off patterns, idle ratioValidates Autoscale and reserved-instance economicsCloudWatch / EC2 billing data, Director
Common sizing mistake

Never size Azure from configured AWS instance specs (e.g., “we have m5.2xlarge hosts, buy the Azure equivalent”). EC2 instances in VDI fleets are routinely over-provisioned. Size from measured utilization: if P95 CPU is 25% on a 8 vCPU host serving 12 sessions, the Azure equivalent is smaller or denser — typically worth a right-sizing pass before migration to avoid carrying overpaid compute into Azure.

1.3 Map dependencies and network flows

Every Citrix estate is a spiderweb of flows: VDA→broker, VDA→SQL (for the CVAD site database), VDA→profile store, VDA→backend apps, client→gateway, and AD replication. Produce a flow map and label each dependency as stays in AWS during coexistence, moves to Azure with the workload, or is on-premises and never moves.

1.4 Segment users into personas — design units, not “users”

Group users by workload intensity and device profile so each segment can be assigned a purpose-built Azure catalog. This is the input for both sizing and wave planning.

Persona (example)Typical workloadShared or privateCandidate Azure VM family
Task workerBrowser, thin client, one or two light appsPooled shared (Server OS or Win multi-session)Small F-series / low-D-series with high session density
Knowledge workerOffice suite, browser, email, line-of-business appsPooled sharedD-series (e.g., D4s_v5-class), 4–8 vCPU hosts
Power / developerHeavy Excel, IDEs, multiple VMs/toolsPrivate or small pooledF-series / D-series, more RAM, faster disks
Graphics / 3D (CAD, GIS, media)AutoCAD, Revit, Esri, Adobe CCPrivate, GPU-enabledNVv4 (AMD) or NVads A10 v5 (NVIDIA) — pilot-prove GPU codec path
Contractor / occasionalLight access from personal devicesPooled, autoscaled aggressivelySmallest SKU that meets latency; schedule-based Autoscale

1.5 Audit applications

1.6 Assess profiles, user data, and storage

1.7 Licensing & commercials — resolve before you design

License typeMigration impact — key questions to settle with vendor/CSA
Citrix (CVAD / Citrix DaaS)If you are already on Citrix Cloud DaaS, workload licenses move with the user counts — adding an Azure resource location needs no new Citrix licenses. If self-managed CVAD (perpetual/ULA or user/device subscription), confirm coverage for Azure-hosted VDAs and whether migrating is the moment to move to Citrix Cloud / subscription licensing.
Microsoft Windows / VDAWindows Server session hosts: Windows Server license + RDS CALs. Windows 10/11 Enterprise multi-session on Azure: eligibility comes from Microsoft 365 E3/E5 (or Windows E3/E5) VDA entitlements and may be delivered via AVD or Citrix DaaS on Azure. Verify eligibility and CAL coverage per named user before committing to an OS/image strategy.
Azure servicesAzure Hybrid Benefit (AHB) for Windows Server reduces per-core cost on eligible images; confirm the source estate’s Windows licenses qualify (Software Assurance / E3+).
Third-party appsCheck licensing for cloud hosting, multi-session, and per-user vs. per-device models (Section 1.5).
Do not guess — get it in writing

Citrix and Microsoft licensing rules for cross-cloud moves change over time and interact (e.g., multi-session image entitlements, RDS CAL scope, Azure Hybrid Benefit rules). Confirm specifics with your Citrix and Microsoft account teams and your software-asset-management partner before the design freeze. Nothing stalls a migration at cutover like a license-compliance surprise.

1.8 Capture the cost baseline (TCO)

Build a full-cost baseline of the AWS estate, not just raw EC2: instance costs, EBS/EFS/FSx storage, data-transfer and NAT-gateway charges, marketplace/Citrix consumption, support, and the operational labor of managing the estate. You need this number twice: once to validate the Azure business case, and once as the “before” side of the post-migration cost review. Use the Azure Pricing Calculator and TCO calculator to model the target and capture assumptions (reservations, savings plans, Autoscale power-off savings, egress elimination).

1.9 Assessment sign-off checklist

Gate: what a good assessment lets you say

After Phase 1 you should be able to state, with evidence: total users and personas; number/type of catalogs to build in Azure; target VM SKUs per persona with density; target Azure region and network path; profile/data volume to migrate; the app list that needs repackaging; the license plan; and a first cost model with ±15% confidence.


Phase 2Target design & migration planning

Design freezes happen before any Azure subscription is built. The outputs of this phase are: an architecture document (landing zone, network, identity, image/provisioning, sizing, storage, access, HA/DR, security, monitoring), a licensing/costing model, and the wave & release plan with success criteria. Use Microsoft’s Cloud Adoption Framework (CAF) as the scaffold — it maps cleanly onto Citrix-on-Azure deployments.

2.1 Decide the target architecture (Scenario A vs. B vs. hybrid)

DecisionStay with Citrix on Azure (A)Consolidate to AVD (B)
Brokering & featuresKeep HDX, NetScaler, App Layering, all Citrix policies — minimal user-visible changeStandardize on Windows App + Entra ID + Intune + FSLogix
Effort & riskLower: re-provision machines, preserve broker logicHigher: rebuild policies, app delivery, profiles, monitoring; new support model
Licensing outcomeRetain Citrix subscription/entitlements; Azure footprint changes onlyExit Citrix spend; depends on M365 E3/E5 eligibility and app licensing
When it winsGPU/3D, complex App Layering, HDX-dependent apps, quick de-risk move, contractual Citrix commitmentsSimple 1–2 app estates, strong M365/Intune maturity, desire to cut the Citrix layer and consolidate on native tooling

Choose per persona if needed — there is no rule that everyone must land on the same platform. Whatever the mix, the sequence in this guide is identical for the layers that matter: landing zone, image, catalog provisioning, profiles, apps, and cutover.

2.2 Landing zone design (governance & subscriptions)

Example SKU check
MCS on Azure creates 2–3 disks per VDA (OS + identity disk, plus optional write-cache for pooled machines). A 2,000-VDA catalog is therefore 4,000–6,000 managed disks: verify subscription and regional disk/quota limits, and consider MCS on-demand provisioning, which creates machines only on power-on and cuts storage cost and quota pressure dramatically.

2.3 Identity architecture

2.4 Network & connectivity design

2.5 Image strategy & machine provisioning

2.6 Sizing the Azure estate

Translate the utilization baselines (Section 1.2) into Azure VM SKUs per persona, then validate in the pilot with a load test. Guidance below is a starting point — always confirm with measured data and Citrix reference architectures, since SKU naming and density recommendations evolve.

Role / personaTypical AWS sourceAzure target examplesNotes
Delivery Controllers / Cloud Connectorsm5.large–m5.xlargeD2s/D4s_v3/v5 (DS-series) with Premium SSDCitrix recommends ≥2 Cloud Connectors per resource location; scale to 4 for large estates.
Task / shared, high densityc5/m5 hostsF8s_v2, F4s_v2 (compute-optimized) or D8s_v5More, smaller hosts → Autoscale powers off faster and shrinks failure domains; lowest $/user tends to be larger F- or D-family hosts serving 15–30 sessions — balance with blast-radius.
Knowledge / power workersm5.xlarge–2xlargeD4s_v5 / D8s_v5 (or E-series if RAM-heavy)Density 4–8 sessions per 8 vCPU host for Office+LOB typical; validate with load test.
GPU / 3Dg4dn.xlarge and upNV6ads_A10_v5–NV36ads_A10_v5 (NVIDIA A10); NVv4 (AMD) for lighter needsProve the HDX 3D Pro / hardware-encode path and driver support in the pilot before committing SKU.
Broker SQL / infra backendsr5/m5D- or E-series with Premium SSD / Azure SQLPlace the CVAD site database close to controllers (low ms).

2.7 Profiles, user data & storage design

2.8 High availability, backup & disaster recovery

2.9 Security & compliance design

2.10 Monitoring & operations model

2.11 Wave & release planning

Design-freeze gate

Do not begin Phase 3 until these are approved: target architecture & landing zone diagram; region & network topology with IP plan; identity design; image/provisioning plan; VM SKU & storage bill of materials with cost model; profile & data-migration plan; security & compliance sign-off; monitoring/ops runbooks; wave plan with dates and KPIs; rollback plan; RACI and communications plan.


Phase 3Migration execution — build, pilot, wave rollout

Execution is deliberately boring and repeatable. Build the foundation once, prove it with a ruthless pilot, then run the same cutover playbook wave after wave. Protect the plan with three rules: one wave at a time, every wave has a rollback path, and nothing changes without a change record.

3.0 Pre-flight: governance & tooling setup (Week 0–1)

3.1 Establish AWS↔Azure coexistence connectivity

During wave migration you will run two estates against the same backend apps, AD, and user data. Options (in ascending cost/effort): a temporary Site-to-Site VPN between VPC and VNet; Direct Connect Gateway + ExpressRoute if the org already uses DX; or routing both clouds through the existing on-premises hub if backends live there. Whatever the mechanism, validate three things with real traffic before building anything on it:

Latency
ICA RTT between the Azure test VDA and AWS/on-prem backends must meet the app performance budget (target comfortably under ~150 ms ICA RTT; app-dependent flows tighter).
Throughput
Saturate the path with a large file copy to confirm sustained bandwidth for profile/data migration and daily use.
Routing/DNS
Confirm the Azure VNet can resolve and reach every internal name the VDAs depend on, with no asymmetric routes back to AWS.

3.2 Build golden images & validate (Week 2–4)

  1. Install a clean Windows Server or Windows 10/11 multi-session OS (eligible per licensing review) in Azure.
  2. Apply OS optimization for the target use (Citrix’s image-optimization guidance / Microsoft’s AVD optimization where relevant), all current security patches, and your EDR/agents.
  3. Install the matching Citrix VDA (LTSR current) with the correct delivery type (Citrix DaaS / CVAD), then core apps per persona.
  4. Generalize, publish to Azure Compute Gallery with version naming, and build a Machine Catalog in the non-prod resource location first.
  5. Run a structured smoke test: boot, broker registration, logon, profile attach, app launch, print, clipboard/redirection, HDX features, and performance counters. Fix image issues in the image, not on individual machines.

3.3 Stand up the target control plane

3.4 Provision production catalogs in Azure (Weeks 4–6)

3.5 Profile & user-data migration pipeline

  1. Build the profile-conversion process: Citrix UPM → FSLogix (or direct folder-redirection + FSLogix). Use Citrix’s profile-migration tooling or a documented robocopy/AzCopy recipe; never let users log on to the Azure estate before their profile data lands.
  2. Classify users by data volume (from Phase 1) into: small (copy at wave cutover), medium (pre-copy night before + delta), large / multi-TB (continuous sync via Azure File Sync or Data Box for the seed + sync until cutover).
  3. Automate per-wave data moves with a scripted pipeline that: stops the user’s AWS session, does the final delta copy, verifies checksums/file counts, marks the user “ready,” and updates the access groups. Record start/end time and bytes moved in the wave log for audit.
  4. Validate profile conversion with a pilot set: logon time, app data intact, redirected folders present, permission integrity (ACLs preserved).
Keep both copies until hypercare closes

Do not delete AWS profile stores or user data until each wave has passed 72 hours of hypercare and rollback insurance has lapsed. Storage is cheap during a migration; a user’s irreplaceable data is not.

3.6 The Wave 0 + pilot (Weeks 6–8) — the gate that matters most

Wave 0 (IT/eager users, ~20–50) proves plumbing. Pilot wave (5–10% of the user base) proves the product — run it for at least one full business cycle (2–4 weeks). During pilot:

Pilot exit criteria (all must pass)

Logon time within target (and not worse than AWS baseline); ICA RTT within budget; UAT pass rate agreed with the BU; no Sev1/2 defects open; helpdesk volume at or below comparable AWS rates; rollback drill succeeded; Autoscale & reservations behavior confirmed; cost model on track.

3.7 Wave rollout & cutover playbook (Weeks 9–16+)

Each wave follows the identical runbook. Freeze the playbook after pilot; changes to it between waves are a process-change request, not a spontaneous tweak.

  1. Prepare (T-7 days): notify users, update helpdesk, pre-copy user data, snapshot target catalog state, confirm backend capacity for the wave’s concurrent load.
  2. Stage (T-1 day): final delta sync of profiles/data; verify target delivery group has capacity for the wave’s peak concurrency; warm Autoscale hosts if needed.
  3. Cutover (T-0, off-peak window): move the wave’s users to the Azure delivery group / new store (remove or re-scope AWS memberships), flip public DNS/URL if the store URL changed, and re-test a sample of users end-to-end.
  4. Hypercare (T+0 → T+72h): dedicated support channel; monitor logons, failures, app errors, and ICA RTT in real time; on Sev1 or prolonged outage, execute the documented rollback for the wave (re-add to AWS groups, re-point DNS), then return the wave to a later slot.
  5. Close (T+5 days): BU sign-off on the wave’s success criteria; retro notes folded back into the playbook; AWS resources for the wave marked for decommission (not yet deleted).
WaveCompositionSizeDurationKey objective
0IT team, early adopters20–501–2 wkProve plumbing end-to-end
PilotOne representative business unit5–10%2–4 wkValidate UX, KPIs, rollback, load model
1–3Business units by persona mix10–25% each1–2 wk eachScale with repeatable playbook
FinalRemainder incl. execs, remote-heavy groupsTail1 wkComplete cutover; start decommission

Wave pacing guidance: allow 2–5 business days of steady-state observation between waves. If a wave fails its criteria, pause the program — do not accelerate to “make up time.” The program is done when the last wave closes, not when the calendar says so.

3.8 Special cases: persistent desktops & lift-and-shift servers

Not everything should be re-provisioned. For persistent (static) desktops and non-VDI servers you genuinely keep (e.g., the CVAD SQL server, print server, file server, or LOB app VMs that must move with the estate), use a replication-based migration:

Replication vs. re-provisioning decision rule

Re-provision (build from a new Azure image): non-persistent session hosts, pooled desktops — the large majority of a typical Citrix estate. Replicate (Azure Migrate): persistent machines with significant local state, domain controllers & identity servers, the SQL/broker database if you are not going to Citrix Cloud, and any app/back-end VM that must physically move.

3.9 Testing & UAT architecture


Phase 4Optimize & operate the Azure estate

4.1 Post-migration optimization loop

4.2 Decommissioning the AWS estate

Decommission in deliberate order, gated on hypercare closure and data-retention policy, never all at once:

  1. After each wave’s hypercare + BU sign-off: remove user access from AWS delivery groups; keep machines running but idle for the retention window.
  2. After the final wave closes and the full parallel-run window ends: snapshot/bill, then power off AWS catalogs. Retain powered-off for one patch-cycle (or per policy), then delete MCS catalogs, EC2 instances, and Cloud Connectors.
  3. Decommission the AWS resource location / CVAD site only after confirming no user, no app, and no monitoring still depends on it. Retire the AWS↔Azure interconnect and related Route 53/NAT/peering entries last, after DNS cutover is fully proven.
  4. Archive the assessment workbook, wave logs, and cost baseline in your CMDB/docs for audit and future migrations.
The exit-criteria checklist for closing the program
  • 100% of users served from Azure; AWS delivery groups empty and decommissioned
  • All KPIs meet or beat baseline for 2+ full business cycles
  • Profiles/data fully migrated with ACL integrity; AWS profile stores deleted per retention policy
  • Backup & DR runbooks tested on the Azure estate
  • Monitoring/alerting, patching, and support runbooks owned by the operations team
  • Monthly Azure cost within ±10% of the validated model (reconcile and explain variance)
  • Licensing position confirmed and documented (Citrix, Microsoft, third-party)

Watch-outsTop pitfalls — and how to avoid them

#PitfallWhy it hurtsPrevention
1Sizing from AWS configured specs instead of utilizationOver-provisioned Azure estate from day one; budget overrun and poor AutoscaleSize from Director/perfmon baselines; load-test the pilot; right-size during replication
2Treating catalogs/machines as the migration unitMisses identity, profiles, apps, GPOs — the layers that actually break usersUse the three-plane model (control, workload, user state); run the full layer-by-layer assessment
3Underestimating GPO / Citrix policy & Intune re-creationSilently different user environments — random app failures, print and drive-map breaks at cutoverInventory and map every policy to its target equivalent before wave 0; parity review gate
4Latency surprises to backends that stay in AWS/on-premSlow apps, poor ICA UX, users revolt in the pilotMeasure RTT to every backend before design freeze; pick region + ExpressRoute/interconnect accordingly
5Cutting over without a real rollback pathOne bad wave erodes all stakeholder confidenceCoexistence window, group-membership flips (not deletions), tested rollback drill in pilot
6Printing & peripheral redirection left to the last minuteTop source of helpdesk tickets in the first weeksDecide print architecture in design; test print in wave 0 and every wave’s UAT pack
7Profile conversion done ad hoc per userData loss or corruption edge cases; no audit trailAutomate UPM→FSLogix with a scripted, logged pipeline; delta pass before each cutover
8Ignoring Azure quotas, SKU availability, and subscription limitsCatalog provisioning fails mid-wave; scramble for quota increasesRequest vCPU quota early; check SKU availability in the region; design within Citrix MCS limits
9No image lifecycle / patching model before going liveSecurity debt builds on hundreds of VDAs; every patch becomes a fire drillAzure Compute Gallery + automated image builder + quarterly re-provision rhythm
10Ambiguous support ownership post-migrationUsers ping-pong between Citrix, Azure, network, and app teamsPublish the ops model and RACI before pilot; align helpdesk scripts and escalation paths

ReferenceTools & resources cheat-sheet

JobPrimary toolsNotes
Discovery & inventory (Citrix)Citrix Studio/Console exports, Citrix PowerShell SDK (Get-Broker*, Get-Config*), Citrix Director/Monitor, Citrix ScoutScript nightly refreshes into the discovery workbook
Discovery (AWS)EC2 console / Tag Editor, AWS Config, AWS Systems Manager Inventory, AWS Cost ExplorerCross-check instance specs, tagging, and cost attribution
Cloud-scale discovery & replicationAzure Migrate (agent-based or agentless discovery/replication of AWS VMs), AWS Application Migration Service (reverse path)Agent-based replication covers on-prem/other-cloud sources too
Utilization baselinesCitrix Director/Monitor trends, Performance Monitor counters, NetScaler/CloudWatch flow logsCapture ≥4 weeks before any decommission
Data & profile migrationAzCopy, robocopy (multi-threaded), Azure File Sync, Azure Data Box (large estates), Citrix profile-migration tooling, FSLogixAlways checksum/file-count verify; keep source until hypercare closes
Image buildPacker + Azure Compute Gallery, Azure Image Builder, Sysprep, Citrix VDA LTSR mediaOne reproducible pipeline per persona image; version every change
Infrastructure-as-CodeBicep, Terraform, Azure DevOps / GitHub Actions, Azure Policy, ARM templates (Citrix hosting-connection setup)Everything in the landing zone is code; changes go through PR + CI
Machine provisioningCitrix MCS on Azure (on-demand provisioning), Citrix Autoscale, PowerShell SDKMatch catalogs to personas; enable on-demand where pooled
Monitoring & opsCitrix Monitor & Analytics, Azure Monitor/Log Analytics/Application Insights, Microsoft Intune + Endpoint Analytics (AVD path)Dashboards must reproduce AWS-era operational reports
Cost & commercialsAzure Pricing Calculator, Azure TCO calculator, Azure Cost Management + Billing, Citrix/Microsoft licensing docsBaseline the AWS bill first; model reservations & Autoscale savings
Design referencesCitrix Tech Zone (Reference Architecture: Citrix DaaS on Azure; size & scale), Citrix DaaS limits docs, Microsoft Cloud Adoption Framework & AVD enterprise-scale architectureCheck dates — SKUs, limits, and entitlements evolve
Be careful with older search results

Cloud and Citrix guidance dates quickly. Whenever you research sizing, SKU availability, limits, or licensing entitlements, prefer sources published within the last 12–18 months (Citrix Tech Zone / docs.citrix.com, Microsoft Learn, official reference architectures). A reference architecture from a previous generation will quote SKUs and density figures that no longer reflect current hardware or licensing.


TimelineRealistic timeline, roles & final checklist

Indicative program timeline (mid-size estate, ~500–2,000 users, Scenario A)

PhaseTypical durationCritical path
Assessment (discovery, baselines, personas, licensing, cost)3–5 weeksLicensing resolution; baseline capture window
Design & planning (architecture, landing zone, wave plan)3–4 weeksDesign freeze sign-off; quota & region decisions
Foundation build (connectivity, identity, images, control plane)3–5 weeksExpressRoute/VPN & DNS; AD replication; image pipeline
Pilot (wave 0 + pilot BU, full business cycle)4–6 weeksPilot exit criteria; load test; rollback drill
Wave rollout (3–6 waves incl. hypercare)6–12 weeksPer-wave sign-off gates
Optimization & decommission4–8 weeksDecommission AWS in gated order after retention windows

Total for this profile: roughly 5–8 months wall clock. Smaller estates (1–3 hundred users, simple apps) can compress toward 2–3 months; very large or GPU-heavy estates stretch longer. The sequence does not compress well — the pilot is the gate, not a speed bump.

Team roles that make it succeed

Program / migration lead — owns the wave plan, gates, and stakeholder comms.
Citrix/EUC architect & engineers — images, catalogs, policies, Citrix Cloud/CVAD on Azure.
Azure platform engineer — landing zone, networking, ExpressRoute/VPN, IaC, quotas, policy.
Identity & security SME — AD/Entra ID, GPO/Intune parity, Conditional Access, compliance evidence.
Data & storage engineer — FSLogix/Azure Files/NetApp, AzCopy/robocopy pipeline, Azure File Sync/Data Box.
App owners & packaging team — app register, repackaging, UAT sign-off per BU.
Service desk / hypercare — wave support, ticket triage, user comms.
Finance / procurement — cost model, reservations, licensing, chargeback tagging.

One-page final checklist

Bottom line: migrating Citrix from AWS to Azure is not a virtualization exercise — it is a layered platform migration where the machine re-provisioning is the easy part and the assessments, identity/policy parity, profile data, network path, and wave discipline are the actual project. Follow the four phases with evidence-based gates, and the move becomes a repeatable playbook rather than a leap of faith.

Key takeaway: Migrating Citrix from AWS to Azure is a layered platform migration — the machine re-provisioning is the easy part. The assessment baselines, identity and policy parity, profile data path, coexistence network, and wave discipline are the actual project. Run the four phases with evidence-based gates and the move becomes a repeatable playbook rather than a leap of faith.