We were recently approached by a large retailer who needed help with their application deployments. One of the options that came up was manifest application deployment, whereby the application would be paired with an XML manifest that describes the application resources, payload, and assemblies. Since this manifest is a kept in the companies source control all changes are tracked and version-ed. Various stake-holders of the application are responsible for keeping the manifest intact and valid, including parameters for data file locations, database queries that need to get executed during deployment, and services that need to get installed and updated. An example manifest would look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<ReleaseManifest Status="Approved" ManifestVersion="1.2" Region="UK">
<Applications>
<Application MsiPath="//storage/app/online-retail.msi" TargetServerType="App" Name="Online Retail" Version="1.5a"/>
<Application MsiPath="//storage/app/billing.msi" TargetServerType="App" Name="Billing" Version="2.0"/>
</Applications>
<Data>
<DataFiles Environment="DEV">
<File Target="/usr/local/retail" Location="//storage/data/retail.zip" Name="Retail Data" Type="zip" Version="1.5"/>
<File Target="/usr/local/billing" Location="//storage/data/billing.zip" Name="Billing Data" Type="zip" Version="1.5"/>
<File Target="String" Location="String" Name="String" Type="String" Version="text"/>
</DataFiles>
</Data>
<Databases>
<Database ScriptRootPath="//storage/app/scripts/db/retail-1.5" Version="1.5" DatabaseType="Oracle"/>
</Databases>
<Services>
<Service MsiPath="IIS" Name="Retail Web" Type="Tibco" Version="1.0"/>
<Service MsiPath="Apache" Name="Billing Web" Type="Tibco" Version="1.0"/>
</Services>
<TargetEnvironment>DEV</TargetEnvironment>
</ReleaseManifest>

Extract values from Application element
The first part of the application release process is accomplished by using Nolio ASAP’s built in XPath actions to extract and create arrays for the Applications, Databases, Data Files, and Services resources that are used during the deployment. Once the manifest XML has been parsed, Nolio ASAP is able to loop through the resources and obtain specific attributes that include values for file locations, versions, and other pieces of data that are needed for automated application deployment.
This method affords yet another separation of the application changes and payload to the logical workflow of the application release deployment. The implementation of manifest deployment enforces strict standardization of application architecture enabling zero-touch deployment to environments throughout the organization.



