Monday, 25 March 2013

The Questions not answered in Product Guides...

The answers to the questions that are never answered in AppSense Product Guides.

Now before you read this post is important to note that the opinions shared are my own and are not necessarily shared by AppSense nor its Professional Services team.

Should I scale my servers up or out? 

The answer to this as with most AppSense related questions is "It depends." The reason why the answer is this is purely because it depends on what your initial server specs are. If your servers have a single CPU, 1 GB RAM and a single 1 Gbps network interface cards the scaling up is probably a good idea. If your servers have 4 Quad core CPU's, 64 GB RAM and dual 10 Gbps network interface you will get more out of scaling out. 

I'd typically recommend no more than 8 CPU cores, 8 GB RAM and dual 1 Gbps network interface cards (10 Gbps if the option is available.) Any more cores than this and you'll most likely be wasting money. You can also drop the RAM down to 4 GB if RAM is an issue. 

AppSense Servers are typically CPU and Network constrained so make sure you monitor these closely and when they're stating to get to the 70% utilized i'd suggest adding an extra server. 

How many users can each server manage?

This is a tough one because the number depends on a number of factors. Given the ideal scenario of my users profile being between 3,5 Mb and 5 Mb and typical user behaviour of logging on and immediately launch Microsoft Outlook and Internet Explorer you're talking around 4,500 users on an adequately specced server.

Remember that in order to keep user profiles small you will need to use a fairly restrictive configuration. See my post on global includes for information on how to keep the profile small and clean.

Another thing to bear in mind from the Management Server perspective is that the user in this case is the device. If you're only managing XenApp servers each XenApp server will be a connection into the Management server however if you're managing 5,000 desktops as well you need to consider those 5,000 connections as well.

What should I do about my database?

AppSense supports Microsoft SQL Mirroring, Push Merge Replication, Clustering, Transaction Log Shipping and a standalone database. 

Again, the answer is that it depends. Things you need to take into account are:
  • Business continuity requirements
  • Physical and Logical datacenter layouts
  • User mobility
  • User count
The thing to understand about SQL Mirroring is that you only have a single database, "The Principal". The mirror database is in a restoring state and is inaccessible. If you have a single datacenter or two completely independent datacentres i'd highly recommend using SQL Mirroring over any of the other options. 

If you have active / active datacenters and users are able to access resources in both datacenters simultaneously SQL mirroring is probably the best option for you as well. The reason being there will be no replication conflicts come midnight which would occur if you used push merge replication. You could also opt for a Geo-Cluster in this case but that is considerably more expensive to configure and run than SQL Mirroring.

If a large percentage your users frequently roam between two or more datacenters then SQL Replication becomes the only viable option. There are however a few things to remember with replication:

  1. Ensure you use Environment Manager 8 Feature Release 3 Service Pack 4 or above. 
  2. Archives are not replicated by default.
  3. Upgrades are complex because you will need to remove replication first and then perform the upgrade which will cause archives to be lost unless very specific steps are taken to avoid this.
  4. All users data will be replicated to all databases so if only a small percentage roam you might be better off using User GPO for those users to ensure they use their home personalization server.
What does stop if fails actually do?

Stop if fails has caught a lot of people out over the years but since AppSense introduced the If Else condition I've seen far more reports of configuration issues.

Consider the configuration snippet below:

Stop if fails is enabled on the Re-usable condition. This will prevent any Sub-Nodes of that condition from running. Sub-actions of the condition would not run because the condition hadn't been met but this is normal behaviour.

You could argue the feature should be renamed to Stop Sub-nodes if Fails but the fact that you now know this you wont be caught out again.

Should I use a hardware load balancer or not?

This comes down to whether or not you already have a load balancer or not. If you do have one (e.g. Netscaler, F5, etc) then yes you should definitely look to leverage this within your environment because these can take advantage of health monitors to determine whether or not a server is online and then assign load to a server based on intelligent metrics.

If you don't have one then I would probably stick with Microsoft Windows Network Load Balancing. This technology has been built into Microsoft Windows for many years and whilst it is not the most intelligent feature rich product it will do the job.

Remember you can always start with Microsoft Windows Network Load Balancing and implement a hardware load balancer at a later stage if one becomes available but justifying the appliance alongside AppSense DesktopNow may push any TCO and ROI calculations out quite a bit and are not strictly required.

Check out for best practice documentation on Windows Network Load Balancing and General Load Balancing.

How should I manage Desktop Settings within my environment?

Another "It depends" question.

If you are using Environment Manager Personalization Server to manage a single platform (e.g. XenApp 6.5 or Windows 7 x64 Desktop) then I would say simply by enabling desktop settings on your Personalization group and configuring the settings to how you would like them to be.

If you're using Environment Manager Personalization Server to manage multiple platforms at the same time (e.g. XenApp 6.5, Windows 7 x64, Windows 7 x86 and Windows XP x86) then I would suggest looking into using Environment Manager Policy and configuring the registry keys and folders managed by desktop settings into a separate folder per platform or leveraging the EMPP2V tool to manage the settings on a per platform basis.

What about User Migration?

This is a very controversial topic which has been discussed at length in a number of workshops I attend. Most organisations start out looking to migrate the entire user from their legacy platform into a new platform.

I personally believe this is flawed thinking because typically the customer has an issue within their existing profile:

  • Slow logons
  • Large bloated profiles
  • Legacy applications
  • etc
What is the point in simply migrating these issues into the new platform? 

I prefer to take a targeted approach and run through the items which make sense to migrate. The best way to determine what applications and settings should be migrated is to look back and work out what the 5 to 10 items that your users call about if their profile becomes corrupt and needs a reset. Typical items are:
  1. Microsoft Outlook Nicknames
  2. Microsoft Office Custom Dictionary
  3. Microsoft Outlook Signature
  4. Internet Explorer Favorites
  5. User Mapped Printers
  6. User Mapped Network Drives
  7. Microsoft Outlook Mail Profile
I am not claiming that this is a comprehensive list but these are the sort of things you should be thinking about. 

I've written a post about this previously... check it out here.

Check back for updates soon...