Home > Blogs > VMware Consulting Blog

Complex Apps

Jeremy WheelerBy Jeremy Wheeler

From time to time we all come across that extremely complicated application that an organization needs packaged – and of course, it has a lot of moving parts. In this blog entry I will walk through a proven process that has worked successfully, unlike the typical packaging style where, if you make a mistake, you are back at square one. An important key to keep in mind in this blog is the “disposable virtual machine.” I consider a disposable virtual machine an App Volumes Provisioning that will eventually become contaminated, and you will not be able to revert to a clean-state using a snapshot.

Note: Not utilizing a ‘disposable’ provisioning machine will place your normal provisioning machine at risk. The very end of this process involves removing ALL snapshots from the virtual machine.

JWheeler Complex Apps Stage 1


1. Prepare a ‘disposable’ provisioning machine. This virtual machine will lose all its snapshots once you finish this process, so it’s best not to use your typical provisioning machine.

2. Point the App Volumes Manager to the Provisioning virtual machine to start the provisioning process.

JWheeler Complex App Stage 2

3. Install any prerequisite applications such as Java, etc.

4. Power down the Provisioning virtual machine and take a snapshot, using this as more of a bookmark in case you need to go back. The snapshot process will capture all the virtual machine elements including the attached App Volume VMDK file as long as you are still in provisioning mode when you powered down the virtual machine.

5. Power on the virtual machine and continue installing any core applications, or your target application. One step my application required was an installation of SQL Express with an imported database, so I installed SQL Express during this step.

6. Power down the Provisioning machine once SQL is cleanly installed and has created another snapshot.

JWheeler Complex Apps Stage 3

7. Power on the provisioning virtual machine, and create any custom databases, accounts, etc.

8. Power down the virtual machine once you have completed all your installs and are ready to complete the App Volumes capture process.

9. Edit the virtual machine’s snapshots (VM > Snapshot > Snapshot Manager) and then ‘Remove All Snapshots.

10. Once the virtual machine’s snapshots have all been removed, you need to consolidate the redo logs. (VM > Snapshot > Consolidate)

11. Once consolidation has completed, power on the virtual machine

12. Select ‘OK’ on the App Volumes dialog box to complete the provisioning process and let the virtual machine reboot.

13. Login to the virtual machine and you should have the message that provisioning has finished successfully. Select ‘OK’

14. Provisioning is now complete and the VMDK should successfully detach from the virtual machine.

Once you complete these steps I recommend a lot of testing to validate the application is performing as expected.

Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

One thought on “Complex Apps

Leave a Reply

Your email address will not be published. Required fields are marked *