Whenever I get a chance to meet our customer the discussion that generates the most excitement is how Citrix uses Citrix Products. Citrix strongly believes in the “eat your own dog food” mantra. I work on the Citrix on Citrix team and it is our job to delivery Citrix products to the business. In this post I will be discussing the high level XenApp architecture we use to delivery XenApp to our global organization.

At Citrix we run two “dual-production” Farms. One is for the most cutting edge versions of our software and the other may be an older version but has a larger focus on stability. Our current deployments are XenApp 5 on Windows 2008 x64 and XenApp 6 on Windows 2008 R2 x64.

We have four main data centers located around the world. The corporate headquarters is in Fort Lauderdale, Florida. We have other data centers in Sydney in Australia, Santa Clara in California and Chalfont in the UK. For each version of XenApp we have a single global Farm that spans all the data centers.

In order to have a single global Farm you need to replicate your Data Store. I’ll cover a quick way to stand up SQL replication in a future post. The quick over view is that we have a SQL 2008 server in each region. We use SQL replication with immediate transactional updating to replicate the Data Store. The master DB is located in our corporate headquarters.

To cut down on the number of times a user must go through the logon process, we install all our applications on every XenApp server. The exception to this is some applications that get installed only on the XenApp servers at corporate. These corporate only apps have backend databases that are hosted at corporate headquarters. So, we want the application to run on the XenApp servers closest to the databases. We publish the applications one time and let Zone Preference and Fail-Over or Load Balancing Policies direct the user to the XenApp server in their region. Each user is in a Homesite AD group that represents their office and that group is nested in a Zone AD group for the closest data center. The Zone Preference and Fail-Over policy is then applied using these groups or in the case of XenApp 6 the Load Balancing Policy is applied based on the group. The corporate apps are published only on the corporate servers for XenApp 5 and are published to a corporate only OU for XenApp 6. This allows users to launch sessions on XenApp servers in their data center unless it is a corporate app which will launch on corporate XenApp servers only.

We use Citrix Receiver to deliver plug-ins and direct users to the appropriate Farm. If the user wants to use our cutting edge Farm they use that Receiver delivery. If they want to use the Production Farm then they use the Production Receiver Delivery. We also have a pair of web servers in each region to host Web Interface and PNa sites for legacy clients.

And there you have it, a quick over view of how Citrix deploys XenApp for internal use. I hope this sparks some ideas for your own deployments.