Category Archives: XenApp

How do I increase Delivery Group (Worker Group) capacity


As described in the blog How do I migrate a XenApp worker group structure, we saw how the use of Delivery groups, application groups and tags allow us to replicate XenApp 6.5 worker group capabilities to XenApp 7.x. There are some operational differences between Worker Groups and Delivery Groups, namely, how do increase the capacity of the delivery/worker group.

One of the more interesting capabilities of XenApp 6.5 worker groups was in the ways an admin could increase worker group capacity.  By adding a server into a worker group, the capacity of the worker group increased.

Many organizations took this approach a step further by basing worker group membership on Active Directory group membership or Active Directory OU membership.  In the XenApp console, each worker group was assigned to a single Active Directory group or OU. Any server in the Active Directory group or OU would be a member of that worker group.

To make this possible, you duplicate the worker group structure into Active Directory as groups or OUs.  If I have 3 worker groups, I have 3 Active Directory groups or OUs.  When a worker group requires additional capacity, the admin would add a XenApp computer object into the Active Directory group or OU.

Personally, I have a problem with the Active Directory methods.

  1. If you use the Active Directory OU approach, a XenApp server cannot belong to multiple worker groups.
  2. Using Active Directory for worker group membership requires the use of a second console (Active Directory Users and Computers).
  3. Using Active Directory for worker group membership requires the admin have rights to modify Active directory groups or OUs.
  4. Using Active Directory requires duplication of effort. You have to build your worker group structure in XenApp, then create a similar structure in Active Directory.

But for those who do use the Active Method, you might be wondering how you can create the same structure in XenApp 7.x.

As we know, worker groups in XenApp 7.x do not exist. Instead, we use delivery groups. The two most common ways to increase the capacity of a delivery group are to either

  1. Add Machines: Select the delivery group and add a machine. Studio then lets the admin select the machine catalog and number of machines to add. This approach simply takes the next available machine and adds it to the delivery group.
    add-machines
  2. Add to Delivery Group: In the search node, an admin can select a specific machine identity and add it to a particular delivery group.  This approach allows the admin to be specific about which machine ID should belong to which delivery group. This approach is similar to using Active Directory groups as it allows the admin to be specific about which machine belongs to which group.
    add-machines1

I tend to see the XenApp 7.x approach to be easier in that I can do it all from a single console, Studio.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

Advertisements

How do I migrate a XenApp worker group structure


In XenApp 6.5, there is the concept of a worker group.  Before that, we called them load managed groups or application silos.  Basically, it is  group of XenApp servers publishing the same set of applications.  If you publish an app on one server, that published app is also available across every other server in the worker group.

workergroup

In XenApp 7.x, you can think of a delivery group like a worker group.  A delivery group is associated to a machine catalog, which is a group of XenApp servers.  If I publish an app within the delivery group, all XenApp servers in that delivery group also publishes the application.

deliverygroupThis is basic functionality, which has been around for a very long time.

However, worker groups also had an interesting characteristic in that XenApp servers could belong to multiple worker groups at the same time.

This means I could have a group of XenApp servers hosting a set of applications.  A subset of those servers could also belong to another worker group publishing another group of applications. The list of resources a particular XenApp server delivers is the sum of the apps from all assigned worker groups.

wgadvBased on this example,

  • XenApp servers 1 and 2 deliver applications 1-4 and 5-6.
  • XenApp servers 3 and 4 deliver applications 1-4 and 7-8.

With XenApp 7.x, the rules for a delivery group are more strict.  A XenApp server can only belong to a single delivery group.  In order to create the same structure in XenApp 7.x that we had in XenApp 6.5, we have to change our approach.

In XenApp 7.x, we need to create a superset of published resources and assign at the Delivery Group layer.  We then use VM and app group tags to create subsets by limiting which applications can be hosted from which XenApp servers.

dgadvThe result is the same as XenApp 6.5.

  • XenApp servers 1 and 2 deliver applications 1-4 and 5-6.
  • XenApp servers 3 and 4 deliver applications 1-4 and 7-8.

Remember this:

  • In XenApp 6.5, you create subsets and merge into supersets
  • In XenApp 7.x, you create supersets and divide into subsets

And to make your move from XenApp 6.5 to XenApp 7.x easier, use your XenApp 6.5 worker group names as your XenApp 7.x app group tags and VM tags.

If you wish to learn more, tune in to Tech Talks To Go, with the first episode focusing on Worker Groups.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Videos

How Do I Create ICA Files


In older versions of XenApp (6.5 and earlier), we could create ICA files, which were essentially shortcuts, and email them to users or place them on a static web page.

With XenApp 7.x, ICA files are no longer available.  However, StoreFront provides an alternative with a little option called “Website Shortcuts”.

It is a feature I was unaware of until I needed it for a project.

After you setup your environment with StoreFront servers, Delivery controllers and VDI resources, you do the following:

  1. Launch the StoreFront console
  2. Select “Stores”
  3. Select your store
  4. Select “Manage Receiver for Websites”
  5. Select “Configure”
  6. Select “Website Shortcuts”

This should give you a screen like the following

websiteshortcutIf you plan to host the resource links from an internal web site, you want to add the website’s URL into the websites section. This will trust launches from that location only.  (note: A URL must be entered or the resource will not start)

Once the trusted websites are defined, selecting the “Get Shortcuts” link will send the admin to StoreFront, where each resource will contain a unique shortcut.  Those shortcuts can be added into the web site.

appshortcuts

But what if you want to email the link to users?

Those same links can be used, but because they are not on the trusted list of websites, users will receive a warning message they must acknowledge.

untrusted

This prompt can be disabled by going to “Advanced Settings” and deselecting “Prompt for untrusted shortcuts”.  (Note: A URL must still be added to the list of websites or else the resource will not launch.  Any URL can be used).

trustconfigAdditional options:

  1. Pass through authentication: If users must use their domain credentials to launch the resource, it might be worthwhile to setup pass through authentication so the users are not subjected to authentication challenges.
  2. Unauthenticated users: If the application incorporates its own authentication, it might be worthwhile to enable unauthenticated user access to the resource.

Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 LTSR Handbook
XenApp Best Practices
XenApp Videos

Skype for Business – Three-way calling


Based on the questions I’ve received, it seems like Skype for Business is a pretty big deal.  So, let’s take a look at another question I recently received with regard to the Citrix RealTime Optimization Pack for Skype for Business:

How does this work with 3-way calling?

With Skype for Business, in order to do a 3-way (or more) conference call, you need to have the Skype for Business Audio-Video Conferencing Server implemented within your Skype deployment. After initiating a call by communicating over SIP to the Skype Server, all parties within the call have their voice/video (SRTP) pass through the Conferencing Server.

In a Native RDS/VDI deployment that does NOT include the Citrix RealTime Optimization Pack for Skype for Business, the media must traverse additional network hops (For simplicity, I removed the Skype for Business server that is still required for initializing the session.)

without

As you can see, for those users accessing the environment with a virtual desktop, the Skype for Business client gets installed within the virtual desktop (VDA).  Although this deployment model works, it does put more strain on your RDS/VDI infrastructure as we explained in the previous blog.

Now, compare the SRTP path when we implement the Citrix RealTime Optimization Pack for Skype for Business.

Opt3way

From the user perspective, the voice and video data follows a much more direct route, mimicking that of the traditional PC experience. And the impact to the RDS/VDI infrastructure is significantly reduced as the media is processed on the end points.

Skype for Business Blogs

Daniel (Follow on Twitter @djfeller)
XenApp Best Practices
XenApp Videos

XenApp Best Practice #4: The Right User Experience


20160216_100707Over the years, I’ve done quite a few wood working projects, like building a coffee table, end table, entertainment center, mudroom lockers, etc. Every project results in leftover pieces of wood. I dislike throwing perfectly good wood away, especially if it is large enough to make something.

Last year, my wife asked me if I could build her a large desk. A desk where she could help the kids with art projects, wrap presents and work on photo albums. Lo and behold, I was able to build the desk with 100% scrap wood. Of course, using scraps meant that this desk was built with at least 5 different types of wood (pine, birch, oak, masonite and medium density fiberboard).

You wouldn’t do something like this if you planned to stain and varnish the finished product as it would look a little Frankenstein-ish, but because I was painting the desk, I was able to reuse without impacting the end product. Even the paint was left over from other projects!

This desk cost me $0.00 instead of over $500. I was able to provide a great product without spending money!

Being able to reuse resources is a great way to save money. In just about everything, you can find ways to reduce costs, but there is a balance between saving money and delivering something that works well and looks good.

Look at XenApp and XenDesktop. Where can we reduce costs through reuse but still provide users with something that works and works well?

What about the Citrix Desktop Lock?

With desktop lock, we can effectively turn a traditional endpoint into a thin client. The user will no longer be able to interact with the local desktop, which is perfectly acceptable if the user will always connect to a virtual desktop. Why throw out a perfectly good piece of hardware if we can reuse it for a particular use case?

What about the different ways XenApp can encode and compress the data stream?  Do we opt for the one that gives us the greatest server density in order to keep costs down?  Or do we focus on user experience? As you saw in the Windows 7 and Windows 10 analysis blogs, there is a significant difference in server density between the different Citrix-based policies.

This leads us to our next XenApp best practice

XenApp Best Practice #4: To manage costs, focus on the right user experience instead of the best user experience.

 

Daniel (Follow on Twitter @djfeller)
XenApp Best Practices
XenApp Videos

 

Windows 10 Optimization: Part 8 – The Results


Statistics are fun. It is amazing what interesting insights you can get from statistics. For example

  1. About 20% of workers would work harder if their employer offered a $1,000 shopping spree at the store of their choice – You hear that Citrix!
  2. About 20% of the people who watch the Super Bowl do so for football, the rest watch commercials
  3. About 20% of copy machine issues worldwide are caused by people sitting on them – That is awesome
  4. Over the past year, my blogs are 20% funnier

And my absolute favorite statistic is from Homer Simpson (who else):

  1. People can come up with statistics to prove anything Kent, forty percent of all people know that.

As you’ve seen, we’ve been creating a Windows 10 optimization guide. The Windows 10 optimization guide was focused on identifying, for VDI, as many of the extra components that would negatively impact server density, while focusing on balancing the user experience, as stated in the XenApp Best Practice: For the best combination of user experience and resource consumption, optimize appropriately.

Over the course of several blogs, we looked at optimizing the following items:

  1. Default apps
  2. Services
  3. Scheduled tasks
  4. User Interface
  5. Runtime
  6. Release
  7. ICA

Now the big question is

“What impact did these modifications have?”

First, it gave me something to blog about (This is a big deal. After 5+ years of blogging, I’m running out of ideas).

But most of you probably care about the second part… What was the impact on server density? And for this, my minions, I mean the Citrix Solutions Lab, took over. (We joke that the Citrix Solutions Lab should rename themselves to Feller’s Lab because it seems like they do a lot of testing for me – pity them).

For the series of tests, we had two different policies, one would simply turn on the Citrix “High Server Scalability” policy setting. This corresponded to Part 7 of the Windows 10 optimization blog.

The second policy we applied were all of the Windows 10 optimizations we discussed in Parts 1, 2, 3, 4, 5 and 6 of the Windows 10 optimization blog series.

Turning the Citrix Scalability policy on, gave us a 10% bump in user density.

Turning on the custom OS optimization policy gave us almost another 10% bump in density.

Turning both of these options on equaled roughly 20% more users on our physical host.

Definitely, not a bad start

Daniel ()
XenApp Best Practices
XenApp Videos

Windows 10 Optimization – Part 7: ICA


MowerWere you planning to buy that? Nope.

Of course, as you saw in my previous blog, my stupid lawn mower wheel snapped off with only 30 minutes left in the season! D’oh!

Figured I would just head to the local hardware store and buy a new one. Guess what? Hardware stores in Minnesota don’t sell lawn mowers in late October. I guess no one wants to mow snow, although it might look cool. I went home, got online and eventually ordered a new mower, which happened to be battery-powered. I still can’t believe I did it, but here is why:

Pros Cons
Lightweight
(Wonder when kids can start mowing)
Can’t mow all day on single charge
(I wouldn’t do this with gas anyways)
No more gas & oil messes Doesn’t look very manly
No more winterizing mower Doesn’t look very manly
Quiet
(No more ear protection)
Doesn’t look very manly

So in the end,

  1.     I wasn’t planning to buy a lawn mower
  2.     I definitely wasn’t planning to buy a battery-powered lawn mower
  3.     I wasn’t planning to write another portion for the Windows 10 optimization series

This portion of the optimization series was not in my original plan because it was not a specific change to the underlying operating system, but should that matter? Originally, I thought yes it does matter, which is why I wasn’t going to include it in the series. But remember, the entire time we talked about different optimizations, we always came back to the

XenApp best practice of:

For the best combination of user experience and resource consumption, optimize appropriately

We followed this for

  1.     Default apps
  2.     Services
  3.     Scheduled tasks
  4.     User Interface
  5.     Runtime
  6.     Release

So, why not look at ICA?

First, take a look at Mayunk Jain’s blog on Why you should care about HDX.

Ok, I’m sold. So let’s do it.

Optimization Description
High Server Scalability This template balances user experience and server scalability. It offers a good user experience while increasing the number of users you can host on a single server. This template does not use video codec for compression of graphics and prevents server side multimedia rendering.

That’s all I have to do? That’s too easy for me. If you look into this policy template, you see the following being done to ICA (Full list of changes are contained in the HDX Policy Template paper)

Policy Setting
Use video codec for compression Do not use
Target frame rate 16
Target minimum frame rate 8
Visual quality Medium
Desktop Wallpaper Prohibited
Menu animations Prohibited
Optimization for Windows Media multimedia redirection over WAN Prohibited
Windows media fallback prevention Play all content only on client
Flash video fallback prevention Only small content
Multimedia conferencing Prohibited
Audio quality Medium-Optimized for speech
Auto-create client printers Auto-create the client’s default printer only
Universal print driver usage Use universal printing only
Universal printing optimization defaults Image compression = Standard quality

Based on this, we optimize server density by slightly reducing the quality of the experience. Seems like a fair trade-off (although not having my favorite background picture on my desktop would upset me).

Note: Some of these Citrix policy settings can be drastic if your users are on the WAN.  For example, the “Optimization for Windows Media multimedia redirection over WAN” will degrade the user experience for WAN users.  If users will access resources via the WAN, use the “Optimized for WAN” Citrix Policy as the starting point.

BTW, I’m open for suggestions on how to make my mower more manly looking. I’m thinking a beer holder or racing stripes might help.

Note: The complete Windows 10 optimization blog series