The first major thing you need to consider when designing your CPS network architecture is the physical placement of Presentation Servers on the network. The key here is to determine where servers should be located in relation to the data and the users. Some of you reading this who've been using Citrix for years are probably thinking, “Why are we discussing this! Server placement is simple. You put the servers by the data and use the 'thin' ICA protocol across your network.”I'll admit that I too used to think this decision was simple. But to be honest, I've come across plenty of scenarios where it was not too easy.
Let's take a step back first. What we're talking about is this: Assume you have a scenario like the one diagrammed in Figure 2.
Figure xx. [Users, Application Servers, a WAN link in between]
If this diagram, users on one side of a WAN link need to access a database-drive access on the other side of the WAN link. In the “old” days, this decision was simple: you put the Presentation Server in the same place as your database application. That way the “fat” application traffic between the client software running on the Presentation Server and the database itself can stay on the LAN, and the only traffic going across your WAN is the “thin” ICA session traffic.
But like I said, this is kind of an old way of looking at things. Sure, the scenario outlined is used today, and in fact it might be the case in 80% of all new environments today. The thing is that you just have to be careful and not automatically assume that you should put your CPS servers right next to the backend application servers.
Server Placement Strategy
How do you know where to put your servers? You have to think like a consultant. Think about why you're using Citrix Presentation Server in the first place. Is it because you have an application that performs poorly over the WAN? Or is it because you want to manage your environment more efficiently and you don't want to install the same client application software on 5000 users' workstations?
You also have to take inventory of your current technical situation. Where are the users who are using the application? What are the properties of the network that separates them from the application? Let's lay out the pros and cons of each, and what you might want to take into consideration:
Reasons you'd put the Presentation Server on the application side of the WAN
- Your application transfers a lot of data between the client and the server, so you want to keep that on the LAN and just use the WAN for the “thinner” ICA traffic.
- You have users from multiple offices that will use this application, so you want to centralize the servers and use them for everyone.
- You don't get along with the local office IT staff and they will break your servers if you put them in their datacenter.
- You've been using Citrix since the days of WinFrame and you're totally set in your ways. (a.k.a. “There's no way I'm putting my Citrix servers on the wrong side of the WAN.”)
Reasons you'd put the CPS server on the user side of the WAN
- Your network cannot support an ICA session. (Not enough bandwidth. Too much latency. Full details in the “performance tuning” chapter.)
- You want the users to be able to use applications on the Presentation Server even if the WAN is not available.
One pattern that I hope you've noticed is that I keep on using the word “application.” As we discussed in the first chapter, this whole Presentation Server thing is really about getting applications to users. And unless you're crazy lucky, you have more than one application to deal with.
The beauty of using something like Citrix Presentation Server is that it's so flexible in terms of how applications are delivered to users. In reality you could build a completely different backend architecture for each application, and the whole thing would be totally seamless to the user. (Of course I'm not suggesting that you do this. I'm just saying that the system is technically flexible enough to.)
This means that from a server-placement standpoint, it's not an “all-or-nothing” scenario. It probably makes the most sense to look at your applications one-by-one. (Well, look at the applications that you're going to deliver via Presentation Server anyway.) For each application, ask yourself (or your coworkers) questions like:
- Who will use the application?
- Where will they use it? Are all the users in the same place? Or multiple offices? Or working from home?
- Does the application require a network to be useful? (ERP app, etc.) Or will it work without a network? (Office, solitaire, spider solitaire, Freecell, etc.)
As you'll see later in this chapter (and throughout this whole book), it's very easy to manage Presentation Server environments where you have servers in multiple physical locations, and it's also very easy for users to simultaneously connect to multiple servers. So if you step through your whole environment app-by-app, and you realize that it makes sense to put some servers in one location, and other servers in another, that's perfectly fine. In Presentation Server 4.5, this does not affect licensing or manageability.
Don't forget about the data
The user data is often a casualty in this whole "focus on the application" thing. When you're deciding where to put a Presentation Server, it's important to also consider the user data that will be needed throughout the session. Does the user need a profile? Does the application need access to a database? Does the user need access to their home drive? All of these issues will be discussed later in the book, but I wanted to plant this thought now while you're thinking about your farm design.