These days all we hear about is virtualization and application streaming. Now, thanks to Microsoft’s intention to acquire Softricity, (if you do not know them, do not worry; just keep reading) the whole streaming thing is now even hotter than before. In this article I will try to give all the newbies in this somewhat new technology what it is all about and how it can help you a LOT in a TS/Citrix world.
I must clarify I worked quite a bit with Softgrid (from Softricity, http://www.softricity.com) and only it. I have not tried/tested any other tool that is similar and that claims to be similar/superior to it and therefore cannot comment on them.
Some basic concepts
I am not going to write a whole book here with all the technical details on what application streaming is and the guts on how it works; all these are available on the web on sites like Doug’s (http://www.dabcc.com) or Brian’s (http://www.brianmadden.com). But some basic ideas and information I can give you.
The way the whole thing works is relatively simple. On one PC running a basic Windows OS (2000 or XP for example) you will install something called a sequencer. This is responsible for monitoring the system while you install and run the application you want to SEQUENCE.
For example if you want to sequence Microsoft Office, you launch the sequencer and then the Microsoft Office installer. After installing Office locally on this PC you will launch a couple apps like Word, Excel and PowerPoint. You are then finished.
The sequencer will record all that information (files created, files needed to run an application, registry entries, etc) in a couple packages. If you want to sequence another application you should restore the sequencing PC to a pristine state (with no apps) and start again. It is very similar (the process I mean) to Citrix Installation Manager or even Altiris RDP when creating installation packages.
This package (the sequenced application) is then copied to the server that will actually deliver it to the clients (this is the Softgrid Server). On the clients all you need is the Softgrid client (there are specific ones for Win32 and for TS/Citrix).
Once you launch the application on the client (you will see shortcuts – if the administrator configured the system to put the shortcuts there for you) the Softgrid server streams (yes, like streaming video or audio) the application files to your PC and the application launches.
But there are two key points here: first of all, not ALL files are sent to the PC; only what is REQUIRED to run that particular application is streamed (so if you are launching Excel only you do NOT get the whole 300MB office!); secondly all this happens in a ‘virtual environment’. This means if you look for C:\Program Files\Microsoft Office or registry keys like HKLM\Software\Microsoft\Office on the PC you will not find them! And the best part, each application can get its own ‘virtual environment’. Sounds crazy? Yep.
I think by now we can all see the benefits here, especially in a TS/Citrix environment. How come? Well, one of the main problems with TS/Citrix is simple to understand and is not really a TS fault. TS is in a simple way a multi-user workstation; you install all the software you need there and your users use them. Simple.
But as you know, sometimes these will conflict with each other. This means you may not be able to install Office 2000 and Office 2003 with all their components on the same PC and expect all the applications to work properly. And in some cases after you install something on the machine it breaks something else as the applications cannot coexist under the same PC!
In a TS/Citrix world the approach taken so far is what we call ‘Siloing’. I am sure most of you already heard the term somewhere, especially if you read the mailing list THIN.NET. The idea is simple: if you have an application that does not like any other application, you will install it on a separate server (on two probably for redundancy purposes) and when your users need it, they get it from that specific set of servers. Sounds like a good idea. Well if you have only one application like that, it is not a very big deal. But if you have hundreds of applications you may end up with multiple silos and then, management becomes a huge issue. You may need multiple different builds for each type of server you have on each silo; not to mention managing how you publish these applications. Resuming it is a LOT of work.
With a solution like Softgrid, as the applications live in this ‘virtual environment’ they do not conflict! Their files, registry keys, etc all remain completely separated and the whole DLL/Registry hell is over!
Can you imagine Office 97, Office 2000, Office XP and Office 2003 all running on the same box? All JVMs ever developed living happily together? Sounds like magic, does it not?
Now all your servers can share a common building process (I do hope you have some automated way to add terminal servers to your TS farm!) that has nothing else other than the barebone OS and the Softgrid client! No need to install applications of ANY sort. No need for siloing! That is way too cool.
Well the bad news is, like anything else in life, every single thing has its PROs and CONS and application streaming with Softgrid is no different. So what is wrong?
Well I wish I could be here writing this and could not find anything wrong. That is not the case. Some problems do exist in this type of solution and I will briefly discuss some of them.
First of all, applications that run as services or use drivers do not work under Softgrid as of today. Ok there may not be that many applications like that out there. But unfortunately if one of your most critical applications is like that, you are out of luck.
Secondly, sometimes certain applications will interact or even rely on other application's components that you did not even realize. For example, some document management solutions like DOCS Open will intercept Word file open requests and will show their own dialog window, to retrieve the word document from a central database. It may even add buttons, macros, files etc to Office to make this interaction happen.
This may require you to sequence this application WITH Office, all together in one BIG piece. Although only what is required is streamed back to the client, in some cases this may mean the whole thing. A 600MB file, even if streamed over the LAN, is not that fast.
So resuming, not all applications will work and in some cases you may end up with some big things on your servers (which, to be honest, is not that much of a problem as Softgrid is smart enough to cache all that when you use the application). Plus deep knowledge of your applications (especially the in-house ones you have no clue who developed!) is a must for sure.
Even if some applications do not work, you may be able to install these locally and still get all the other ones from the Softgrid server! Ok, it is not as clean and elegant as having all the applications streamed but you can still greatly reduce the amount of silos you have which will directly reduce the management tasks and the server recovery process.
So you still get the benefits of avoiding conflicts and having to install all applications locally. For companies where more than one language is a requirement, application streaming may help a lot as you may be able to deliver the same application but in different languages to any servers without any conflicts.
Although the whole idea/technology is not really new, it is now mature and with Microsoft getting behind the wheel, I do expect things to start moving at a much faster pace in this area.
If you have application conflicts and are now dealing with multiple silos, I do recommend taking a serious look at SoftGrid. As I wrote, it will probably work just great with most applications and if it does, it will save you a LOT of time and effort deploying and managing servers in your farm.
One thing I forgot to mention is pricing. Well unfortunately it is not cheap at all. But now that Microsoft is going to acquire Softricity, we may end up seeing this built-in on Windows 3000!