Delivering Customization without the bits
Abstract
“Microsoft App-V 4.6SP1 offers a new opportunity for ISVs and Enterprise IT Administrators to create and use pre-customized application software as virtualized applications. This is a two sided benefit to the industry. ISVs can pre-virtualize their applications, transforming the end customers job of sequencing even the most complex applications into a task that can be as simple as executing an MSI. The end user community will also be able to create and share valuable custom configuration information without concern of violating software license agreements of the ISVs. It is about time that we stopped requiring everyone to figure this out all by themselves.”
This white paper describes the process and benefits of App-V Package Accelerators.
March 7, 2011,
Tim Mangan
The Kahuna at TMurgent Technologies
Introduction
The most challenging part of software applications is in getting them properly configured and deployed. You would think that by now we would be able to have simple ways to automate the configuration and deployment of standard software packages. How many copies of Microsoft Office are installed each day across the world? Or AutoCad? How much wasted time? Yes, we have many tools and methods available.
The Windows Installer format (MSI) opens the door for automation, allowing for scripted and silent installations. But customizing the installation from the MSI command line is not feasible except for the most simple of customizations. Instead, larger enterprises hire repackaging experts that break open MSI packages from ISVs and repackage them so that they cleanly install with their custom configuration.
And we aren’t talking about just whether to show a toolbar. Standard software packages from the software vendors are designed to include as many features and options as they can fit into the product in order to attract more customers. If the version number is over 4 there is a very good chance that the vendor’s feature list will be multiple pages long. But a well configured package gets adjusted to meet the needs of the enterprise/end-users instead of those of the ISV, removing those features not needed or wanted. A feature reduced package should break less often and produce fewer help-desk calls, preventing users from accessing those unneeded features that tend to cause problems. Ultimately, pruning these features increases productivity. In addition to this pruning, complex packages require customization to integrate with other systems, databases, middleware, and other local applications. Such integration is typically specific to the enterprise, so customization is necessary for many packages.
Application modifications are a key part of application sequencing with App-V, just as they are with re-packaging. Not only does the person sequencing need to know the skills required to customize applications, but also the skills to sequence. With the release of 4.6 SP1, Microsoft has lowered the bar on what it takes to sequence by making the art of sequencing more of a science, however, the skill requirements to customize applications remains high.
App-V was designed to help with software deployments by providing isolation (eliminating conflict), but it is also a packaging, and finally a delivery system. Much like Electronic Software Delivery (ESD) systems perform delivery of application software, App-V has its own delivery system (although it can also leverage existing ESDs). These tools help to automate the delivery of the customized packages once built.
For many applications, a good packager that possesses the skills for sequencing can handle them easily. Just like a chef needs to know how to separate the yolk from the egg-whites to make a soufflé, the basics of packaging and sequencing are skills that must be learned. The artistry is in the details making the end result. However, to gain the benefits of isolation (virtualization), sequencing also introduces new challenges to some applications. Sometimes an application that works reasonably with a native installation has an aspect that doesn’t play well with App-V. It might be a device driver that needs special treatment, or a COM registration that must be exposed. For these applications, either considerable effort must be given to create a masterpiece, or the chef goes to “plan-b”. Early on with App-V (or Softgrid before that) enterprises did not have good ESD practices in place. So they didn’t have a plan-b and would typically keep plugging away until they could find a way to virtualize the application. Today, most companies have a plan-b available, so they can opt out if an application becomes too difficult at times. But we shouldn’t get too comfortable, because we know that we will want ALL of the applications virtualized for the virtual desktop deployments we plan on doing in the future.
With this has a background, now Microsoft releases a service pack, 4.6 SP1, that is far from a service pack. 4.6 SP1 represents the greatest change to the sequencer since it was first release. While this paper will ignore many of the features to focus on the new Package Accelerators, the additional features are nonetheless worthy.
The Package Accelerator
If a word works once, everyone wants to reuse it. The words Virtual and Cloud come to mind right now. So Microsoft App-V is borrowing from the Microsoft Deployment Toolkit (MDT) folks and using the term Accelerator. It is a close fit, even if I don’t like the word.
In MDT, an accelerator is a pre-customized package of OS and application components, used to quickly and cleanly deploy a customized image. The App-V Package Accelerator is the essence of a pre-sequenced (and potentially pre-customized) package of a virtual application.
Delivered as a CAB file, it is in essence, a compressed version of a customized and successfully sequenced applications, with the actual executable bits extracted. Sort of like orange juice concentrate, but to reconstitute you don’t add water, you add access to the installer (or executable files).
Package Accelerators and the ISV
For the ISV, this offers an opportunity to support customers using App-V. If anyone should be an application expert, the ISV should be. They are the right people to be determining how their complex application package should be sequenced to achieve all of the features and be supportable.
ISVs have had the ability to do this for their customers – deliver in a choice of MSI or SFT format for nearly 10 years. Until recently, they didn’t really want to get involved with application virtualization and ignored it. Customers, already jaded from years of limited support for application deployment of these apps natively on terminal servers, typically tried to hide that they were using application virtualization because they expected no support. This further led the ISV to view App-V as a complication that only cropped up in the middle of problem escalations. This last year, we started to see a thaw in this thinking. While a number of independent consultants have release SFT packaged tools over the years, it was just this last year when the first major ISV, Attachmate, released in SFT format. The signs are there that ISVs are considering App-V deployments as more mainstream than in the past.
So we hope that ISVs will now create and release Package Accelerators. This is especially important for applications that are complex and do not sequence easily. A well designed sequence, created by the best application expert there can possibly be, will create more satisfied customers and fewer trouble tickets from those customers. By knocking down one of the roadblocks to customer implementation of their product, the ISV also gains a substantial leg up on their competitors.
Microsoft’s Package Accelerators allow the ISV to post a pre-customized sequence publicly. The CAB file has no use without access to the actual installation media in order to obtain the executable files. It is a great way to knock down the greatest barrier for your customer to adopt your product, or upgrade to the latest version.
Of course, there is a reason we write this white paper. So here is our small commercial.The ISV might just want a little help with the art part of sequencing, and TMurgent Technologies can help with a private consultation or training. Enterprises already know TMurgent for our quarterly public “Masters Level App-V Training” classes, private classes, and on-site consulting engagements.. Contact Mary Jane for more.. murjur@tmurgent.com. (+1) 781.535.4954 |
Package Accelerators for the Enterprise Community – Part 1
We don’t have to wait for the ISVs. Sure, it is better if they develop the initial Package Accelerator, but if they don’t step up (and fast) we can instead.
For years we have had several communities that exist to share practices and information related to application virtualization and re-packaging. In these forums, community members have routinely shared experiences (both good and bad) and tricks. In the App-V world, have long used the term “Recipe” to describe a collection of information on how to sequence an application. While not everyone contributes to posting recipes, enough do that we have a vibrant source of information to help everyone.
There is an opportunity for us to improve upon the recipe sharing we do today. And it is LESS work to produce a Package Accelerator than to produce a recipe. Furthermore, using a recipe requires significant skill (artistry) to succeed in producing a fully sequenced and deployable package than will using a Package Accelerator. I will explain.
To produce a recipe, you must not only successfully figure out how to sequence the application, but you must then document the steps. Creating the Package Accelerator is far less work. It is this easy. On the sequencer, after you save the package you do the following:
- Go to the Tools Menu of the sequencer, and select Create Package Accelerator.
- Point to the saved SPRJ file.
- Point back to the installation source to enable the component extraction from the SFT
- Enter documentation in a textbox.
- Save
The documentation you are entering in the textbox is not how you sequenced, but is to document the product installer and version used for the package. That textbox will appear to the person using the Package Accelerator to know what version of media to supply.
Package Accelerators for the Enterprise Community – Part 2
From the perspective of the person using the Package Accelerator, the process is very simple. Even if they know nothing about sequencing, using the new simplified defaults of the 4.6 SP1 sequencer with the Package Accelerator, an untrained person should be able to produce a good enough package for a Proof of Concept test.
Using the Package Accelerator, complications of sequencing may be avoided, but that doesn’t mean that you are stuck with the ISVs customizations. You will still have the ability to go into monitoring mode to add additional plug-ins, or to fully re-configure the package to your needs.
To use the Package Accelerator, it will be more like updating a package your buddy sitting in the desk next to you created last year. Here is an example:
-
Start the Sequencer. Select “Create a new Virtual Application Package”, which will start the new sequencing wizard.
-
On the Packaging Method page of the wizard, select the new option to create using a Package Accelerator, then click the next button.
-
Browse to the Package Accelerator CAB file, and then click the next button.
-
Even though there are no executable components in the CAB, Microsoft supports signing of the CAB file using digital signature verification. Since this was a home grown application and I produced this Package Accelerator myself, I didn’t bother with applying a signature to the CAB. You can work with signed or unsigned CABs, but if it is unsigned you will get a dialog box like this to remind you. Since I produced the CAB, I feel quite comfortable in clicking the Run button.
-
Review the notes. If pre-requisites were missing I might have to start over, but at least I would know this early on. This application didn’t use an installer, so I don’t need an MSI but I do need to find the correct version files used when the Package Accelerator was created. Click Next.
-
At this prompt, you will specify the location of the needed components. In this example I’ll use a folder I already created on the desktop, but I could point to a CD or share. After specifying the location, click the next button.
-
You are now prompted for the install media or files required to reconstitute the package. Place these things in the source folder you specified, check the “I have copied all files”, and click next.
-
Provide your Package Name. In 4.6 SP1 you no longer need to specify the Asset folder. Click Next.
-
Select a location to save your package and if you want compression. Then click Create.
-
If you didn’t supply the right version, or all of the files, you will now see a report that details what is missing. If this happens, click on the report for details, fix, and use the previous button to retry. Otherwise, you see a completion dialog. Click the next button.
-
At this point, you may perform additional customization and configuration of the package, or skip the details and save off the package. In either case, the sequencer supports entering of license keys if they are normally entered when running the installer, or leaving the licensing entry for “first use” by each user.
The remaining steps are similar to regular packages in the new sequencer, so I won’t show those steps.
Other Package Accelerator Notes
I should mention that Package Accelerators work best with MSI based installers. Package Accelerators can also be created using with other types of installers, including InstallShield based installers, or (as in the previous example) with a package that used no installer. When creating Package Accelerators packages, the wizard can open up the supplied MSI to locate the files that should be removed from the SFT. If an MSI is not available, the wizard cannot peer into other exe based installers. For those installers, and apps without an installer, you will probably want to create a folder containing all of the components to be extracted, although you can also install the application traditionally and let the sequencer grab the installation files straight out of the installation directory. While this is a little more work, it is simple to do.
Summary
Microsoft App-V 4.6SP1 offers a new opportunity for ISVs and Enterprise IT Administrators to create and use pre-customized application software as virtualized applications. This is a two sided benefit to the industry. ISVs can pre-virtualize their applications, transforming the end customers job of sequencing even the most complex applications into a task that can be as simple as executing an MSI. The end user community will also be able to create and share valuable custom configuration information without concern of violating software license agreements of the ISVs.
It is about time that we stopped requiring everyone to figure this out all by themselves.
Hi,
I don’t know anything about Accelerators, I have read your blog, it is quite intresting in knowing about accelerators. I got Microsoft Project Professional 2010 Accelerator from,
http://gallery.technet.microsoft.com/App-V-Package-Accelerator-3ad78a04.
It is a cab file. Should I browse this cab file before I start sequencing Project Professional 2010, using Appv 4.6 SP1. If so what is the benefit I get, because of using this accelerator given by microsoft.
You might open the cab file to look at the readme.rtf file that documents how to use the cab. The benefit of using the Package Accelerator is that the bulk of the work of sequencing is already complete. You can “rehydrate” to a full package by sequencing with the 46SP1 sequencer, install media, and of course you own Project license.
I’d just like to point out something that you included in this post about digital signatures in accelerators. You state:
“Even though there are no executable components in the CAB, Microsoft supports signing of the CAB file using digital signature verification”
I agree that the CAB itself doesn’t execute anything but…. If i was a malicious accelerator author, I could create an accelerator for an application. I then add to my accelerator some malware executable, agreed at this point it can’t be launched. But i also add some registry keys that for instance modify the ImageExecutionOptions so that any call to that application is rediverted to my malware, my malware silently causes damage and spreads around the network and then launches the correct application. You as a sequencer then create a sequence from this accelerator. When that sequence is run, that’s when the damage is caused. Also worryingly, as a sequence author, you most possibly have some good rights to the system, the network and the internet.
Therefore i would warn your readers about the dangers and understand the origins of their accelerators
I think as a side line to this comment, I believe that the current sequencer doesn’t ‘easily’ help identify changes from the original media to the person that was sequencing the application so at least the user does not blindly make changes to their sequences they do not understand
Great post by the way! 🙂
Some Fellow MVPs are also blogging about the release:
Kevin Kaminski (Also on Package Accelerators) http://myitforum.com/cs2/blogs/kkaminski/default.aspx
Ment Van Der Plas (on the new built in diagnostics)
http://www.softgridblog.com/?p=171
Alaa Ajweh (on sequencing .Net 4 and DSC)
http://ajweh.com/blog/
Aaron Parker (on newly included best practices)
http://blog.stealthpuppy.com/virtualisation/appv-46-sp1-sequencer-helps-you-implement-best-practices/