Architecture and Design of a Citrix Virtual Apps and Desktops Site
Site anatomy
A Site is the unit of configuration: one Site database, one set of Delivery Controllers, and shared configuration (policies, catalogs, delivery groups, hosting connections). Controllers run the Broker, Machine Identity, AD Identity, Host, Config/Logging, Monitor and Orchestration services. They are effectively stateless apart from the Site database, so the database-not the controller count-is the real single point of failure. Deploy at least two controllers plus a highly available SQL instance (AlwaysOn availability group or mirroring). Monitoring and Logging databases are separate and optional, but without Monitoring, Director has no history.
VDAs register outbound to controllers on port 80 (443 when the XML service uses TLS), so firewall rules follow the VDA→controller direction. Studio is a management console and Director is monitoring; neither sits in the user connection path. StoreFront and Citrix Gateway do: StoreFront authenticates, enumerates resources and hands out the ICA file, then traffic flows client→Gateway→VDA.
Design decisions the exam tests
- Catalog = machines + provisioning method (MCS, PVS, existing) + assignment (random/pooled or static/dedicated) + OS type (single- or multi-session).
- Delivery group = what users see (desktops, applications) + who is entitled + which catalog supplies the machines. A machine belongs to exactly one catalog and one delivery group.
- StoreFront and Gateway are typically deployed in pairs behind a load balancer; Gateway STA entries should list every controller so ticket issuance survives a controller loss.
Worked example. 3,000 task workers, 200 engineers, and external contractors. Task workers are interchangeable: one multi-session catalog, MCS, random assignment, power-managed. Engineers need installed tools and persistence: single-session static catalog. Two delivery groups, AD group entitlement, a StoreFront pair behind a load balancer, and a Gateway for external users with both controllers configured as STAs. The reasoning: the persistence requirement drives assignment, not user count; external exposure drives Gateway placement, not StoreFront placement.
Traps
- Adding controllers to "increase capacity"-they broker, they do not host sessions.
- Designing a single controller because SQL is clustered; the controller itself is still an outage.
- Assuming Studio or Director must be installed on every controller.
- Skipping database HA, then discovering the Site cannot broker after a SQL failover.