Thursday, July 12, 2007

Application Streaming on Linux

On the weekend before July 4th, I wanted to needed to install a Perl module so I could play with RSS feeds - just a little "left brain" side project. Other programs that parse RSS feeds would use the same module. Over the next several days, I unraveled some ugly details...

- Because FOSS developers only test on their own machines, they make some grand assumptions about what the base system has and thus don't list out *all* of their dependencies, just the ones that they noticed. These assumptions are often wrong on other distributions or slightly older distributions.

- The step from large FOSS projects like Apache to the next rung down is a doozy. They have a significant number of dependencies including numerous small projects. These small projects are not nearly as well tested, thus while the top line project may work well enough, the dependencies are a crap shoot.

- It's not hard to hit an "artery of dependencies". If one library/module/app depends on a major package being updated, it's possible to end up with a slew of large system level upgrades. E.g., Updating perl requires a new version of FreeType which breaks older versions of ImageMagick (depended on by countless web apps). New versions of ImageMagick needs a specific feature of the latest X-Windows which needs updated text processing tools to build its documentation files. The updated docs text processing tools need an updated version of gcc/g++ and XML libraries. The XML libraries need a newer version of libtools, etc. In short, it takes "DLL Hell" to a whole new level.

- While this specific experience was on FreeBSD 4.9, the issues clearly apply to anything where a new distro comes out and not everyone upgrades. Friends who use Linux as a desktop confirmed that they regularly run into these things. While they don't get grumpy about a lost hour hitting the apt-get utility, I believe that the same task thrown to an enterprise IT administrator would be a frustrating day+ ordeal. Take one of the many CMS implementations available that are largely written in either Perl or PHP. New version of the CMS which fixes a critical bug? You may find that it needs a new module to go with it.... Rinse and Repeat.

On the Microsoft side of the world, application streaming is coming of age. Microsoft's acquisition of Softricity and Citrix's Presentation Server 4.5 are the leading contenders with a number of similar plays from startups like AppStream and Ardence. The market is completely open for Linux. Right now, virtual machines are being used in a similar way, but it will not be long before IT administrators realize that they don't want a virtual machine on a per-application basis, especially if they need two applications on the same machine to work with one another.


Blogger bronson said...

App streaming is awfully complex; I doubt it'll see much uptake on Linux. Personally, I think containers are the sweet spot between full virtualization and DLL/RPM hell. They are also the solution for users who want to run comet cursor or weatherbug without giving up the entire farm (contacts, personal files, etc).

Alas, it will be two years before containers will start to become useful. Hopefully in ten years I'll be able to launch a process on my laptop, transfer it to my PDA, then dump it on my TV at home, and all the while I can use the process interactively. Strong containerization will offer that.

I hope. :)

10:58 AM  

Post a Comment

<< Home