Flexera logo
Image: Automate ‘Almost’ Every Packaging Step

The packaging process should always start with the end goal in mind. Let’s consider the following enterprise scenario where both Windows 7 and Microsoft App-V are being deployed, and System Center Configuration Manager is the deployment system. The packaging group’s preferred process would be to ensure the following logical steps:

  1. Test an application package to ensure that it is compatible with Windows 7
    • If the application is Win 7 compatible then run App-V tests, and if those are also compatible, convert into an App-V package
    • Once done, run static test on the App-V package to ensure that it meets enterprise best practices
    • Then publish it to a deployment system to be sent for QA and UAT
  2. If the application is compatible with Windows 7, but not with App-V
    • Do not virtualize it, rather leave it as an installer package (MSI)
    • Run best practice tests and then publish it to a deployment system for QA and UAT
  3. If the app is not Windows 7 compatible
    • Either remediate it first before continuing to the next steps OR
    • If not remediable, look for an updated version of the application that can replace it

The above process is well known and has been used for some time and is fairly manual in nature. There is nothing wrong with the process except:

  1. Packagers are scarce and expensive and it is not easy to find qualified experts
  2. It takes considerable time for a packager to run through these steps manually
  3. Any steps that involve manual intervention heighten the risk of error

Therefore, automation is the key to improving productivity as well as ensuring predictable results for the above process and many others similar to it. The enterprise application readiness process can easily be automated to a great extent using industry standard tools that expose automation API. Using technologies such as PowerShell, scripts can be setup to call these APIs, make decisions based on the output from each step, and complete the required packaging steps in an automated fashion. This leaves QA/UAT as the only manual steps. These manual steps are typically best performed by the application owner who knows how to use the application and can verify its functionality.

Most enterprises have to deal with thousands of applications when moving from one platform to another so it is essential to apply automation standards to reduce cycle time and ensure predictable results.