Application Packaging Workflow

1. What is an Installation Package?

An installation package is a program allowing to install an application with specific version, language, configuration…

To create an installation package, the following items are necessary:

  • AIP document
    The Application Installation Procedure is a document detailing step by step the installation and the configuration of the application.
  • Original Sources
    The original sources are all the files (executables, REG, scripts…) needed to install the application using the AIP document.

When the packager delivers an installation package, it must always be provided with a PRN document. The Packaging Release Note is a document detailing all the steps followed to create the package and all the specificities (additional script, custom action, MSI properties…)

 

2. Infrastructure

2.1 Packaging Repository

The “Packaging Repository” is the working repository of the packaging team.

It must contains at least the following folders:

AppPkgWF-1

These folders correspond to the different status of every projects.

The “Production” folder is very useful to check quickly what is the version currently distributed to the machines.

The “Packaging Repository” must also contains the “Packaging Log”, Excel file allowing to follow the history of all the packaging projects in progress, done or even canceled.

 

2.2 Packaging Log

The “Packaging Log” is a tool allowing to follow up the packaging activity.

processv2-01

 

2.2.1 Logging

Status

AppPkgWF-3

 

Information

AppPkgWF-4

  • Name of the package
  • Package Type (Local or Virtual)
  • Request Reference
  • Requestor / Application owner
  • Coordinator: Name of the coordinator of the packaging project
  • Packager: Name of the packager

 

History

AppPkgWF-5

  • Date of receipt of the request
  • Date of receipt of the source
  • Date of receipt of the AIP (Application Installation Procedure)
  • Date of the end of the “Assessment” phase
  • Date of the beginning of the “Testing” phase
  • Date of the delivery

 

Additional information can be added:

  • Location of the package in the distribution environment
  • Name of the package in the distribution environment
  • ProductCode

 

2.2.2 Reporting

The “Packaging Log” includes reporting (numbers, percentages…)

AppPkgWF-6

processv2-02

processv2-03

processv2-04

 

It includes also a graphical overview of the delivery.

processv2-05

 

2.3 SCCM Repository

The “SCCM Repository” is a share where the SCCM packages are stored.

It should contain at least 3 folders:

AppPkgWF-11

In the “Dev” folder, all the packages in the “Testing” phase

In the “Production” folder, all the packages currently in production

In the “Archive” folder, all the packages not in production anymore (updated by another package installing a newer version, decommissioned…)

It’s the basic location from where all SCCM distribution points copy the packages.

 

2.4 Virtual Lab

A lab containing several virtual machines (imaged with the corporate OSD) is needed for the assessment, the packaging and the testing (internal and UAT).

This lab should contain at least 10 virtual machines:

  • 2-3 for the assessment, the packaging and the internal testing
  • 7-8 for the User Acceptance Testing

 

3. Naming Convention

Let’s define a glossary and the according naming convention.

 

[PackageName]

The PackageName allows to name each installation package.

This PackageName will be then used for all other naming conventions.

Manufacturer_ApplicationForXXXX_Version_Language_PackageType_PackageVersion

  • “ApplicationForXXXX” if specific platform/settings or “Application” if generic
  • “Manufacturer” and “Application” must be without spaces
  • “Language”: MUI, EN, FR…
  • “PackageType”: L for Local and V for Virtual
  • “PackageVersion”: First version is R1, then R2, R3… (R for “Release”)

 

[ARPName]

The ARPName is the name of the application in Add/Remove Programs after been installed with the installation package. A prefix (for example, IT, the name of the department, the name of the organization…) is used to recognize the application has been installed using a corporate installation package.

IT_[PackageName]

 

[AIPName]

The Application Installation Procedure is a document detailing step by step the installation and the configuration of the application. The installation package must follow the same behavior as this procedure.

AIP_[PackageName]_v1.0

 

[PRNName]

The Packaging Release Note is a document detailing all the technical information regarding the creation of the installation package

PRN_[PackageName]_v1.0

 

4. Packaging Process Model

AppPkgWF-12

 

5. Process

5.1 Request Phase

The application owner, who is the responsible of the application (installation, behavior, technical details, licensing…) create a request to ask the creation of an installation package.

Such a request can be created using a ticketing software, or by email to the Packaging Team coordinator, or using a specific homemade tool…

This request must contains at least:

  • The Application Installation Procedure (AIP)
  • The original sources (or a link to download them)
  • Eventually the scope (specific country, entity…)

Once the request approved by the packaging coordinator, create a new entry in the Packaging Log:

  • Status: Requested
  • Package Name (a generic name can be used, it will be formatted correctly during the assessment phase)
  • Package Type
  • Request reference (if any)
  • Requestor (generally the Application Owner)
  • Coordinator: Person in charge of the packaging project
  • Request Date

AppPkgWF-13

 

5.2 Assessment Phase

During the “Assessment” phase, an assessment of the packaging request will be done using the AIP and the sources provided.

Modify the Packaging Log:

  • Status: Assessment
  • Source: Date when source has been provided (usually the same as the request date)
  • Application Installation Procedure: Date when AIP has been provided (usually the same as the request date)

AppPkgWF-14

 

In the Packaging Repository:

  • Create a new folder in “1-Assessment
  • Create 3 sub-folders “Documentation“, “Package” and “Source
  • Copy the AIP in “Documentation” and the sources in “Source”

AppPkgWF-15

 

On a clean virtual machine:

  • Install the application using the source and the AIP

 

Define the [PackageName]

Manufacturer_ApplicationForXXXX_Version_Language_PackageType_PackageVersion

  • “ApplicationForXXXX” if specific platform/settings or “Application” if generic
  • “Manufacturer” and “Application” must be without spaces
  • “Language”: MUI, EN, FR…
  • “PackageType”: L for Local and V for Virtual
  • “PackageVersion”: First version is R1, then R2, R3… (R for “Release”)

 

Back in the Packaging Repository :

  • Rename the folder: [PackageName]
  • Rename the AIP: AIP_[PackageName]_v1.0.docx
  • Create a version 1.1 of the AIP
  • Apply modification if needed (additional information, clarification…)

processv2-06

 

5.3 Packaging Phase

Let’s now creating the package.

In the Packaging Repository:

  • Move the packaging project in “2-Packaging

processv2-07

 

Modify the entry in the Packaging Log:

  • Status: Packaging
  • Application: [PackageName]
  • Packager: Name of the packager
  • Assessment Completed: Current Date

AppPkgWF-18

 

Create the package using the guidelines of the company, for example:

  • If possible, the package must use a MSI (snapshot capture, MST…), and if not possible a silent install.
  • Auto-updates must be disabled
  • No shortcut on desktop by default
  • Cloud features must be disabled
  • [ARPName] must be used in Programs and Features control panel

Once created, copy the package in the “Package” folder.

Create a Packaging Release Note with the details of the package (modification applied by the MST, snapshot capture steps, commands, additional scripts…) and copy it in the “Documentation” folder.

 

5.4 Testing Phase

In the Packaging Repository:

  • Move the packaging project in “3-Testing

processv2-08

 

Modify the entry in the Packaging Log:

  • Status: Testing
  • Package Completed: Current Date
  • SCCM Repository / Source Location: Package location in SCCM repository

AppPkgWF-20

 

The first test to do is an internal test.

 

On a clean virtual machine:

  • Test the installation scenario
    • Check the log files of the package
    • Check the installation according to the AIP
    • Appy the test case according to the AIP
    • Check if the policy is applied (name in Add/Remove Programs, shortcuts, auto-updates…)
  • Test the update scenari
  • Test the uninstallation scenario

 

In the SCCM Repository:

  • If all is ok, copy the package in the SCCM repository in the folder “1-Dev

processv2-09

 

In SCCM:

  • Create the package
  • Create a test collection
  • Create a deployment The User Acceptance Test starts…
  • Distribute the package on a test VM, then ask the Application Owner to test it.

 

5.5 Delivery Phase

Once validated by the Application Owner, the package can be delivered.

 

In the Packaging Repository:

  • Move the packaging project in “4-Production

processv2-10

 

In the SCCM repository:

  • Move the package to “2-Production

processv2-11

 

Modify the entry in the Packaging Log:

  • Status: Delivered
  • Actual (End): Current Date

AppPkgWF-24

 

Then close the request.

 

5.6 Recycling Phase

Now that the new version is in production, the previous package can be decommissioned.

 

In the Packaging Repository:

  • Move the previous packaging project in “5-Archives

processv2-12

 

In the SCCM repository:

  • Move the previous package to “3-Archive

processv2-13

 

In SCCM:

  • Delete or archive the previous package.