A few years ago, I needed to get a demo environment of PRPC configured for a sales call. At the time, my delivery team was fully engaged, so I decided to run through the deployment myself. It took two days to get the configuration right, and that only happened after I dropped SQL Server in favor of Oracle – I had some port configuration issue that was preventing the SQL connection from being established correctly.
Ideally, I wanted to bring up an environment within an hour – but this was unlikely with the manual configuration required to get PRPC, the database and the app server all working correctly together. In addition, the prototyping environment should include local mail and directory management as leveraging corporate production services introduces delays and incurs some risk while establishing a stable environment.
In the end, considering options available today, the simplest solution to the challenge of creating a clean development environment is to build it out as a VM image. To this end, I started working on an Ubuntu / Debian based mechanism to create a touchless PRPC installation package using the debian packaging mechanism. This installer enforces a dependency on the correct version of Oracle and Java, and further configures Tomcat to run PRPC. Leveraging this installer package, the script creates a custom Ubuntu install ISO that eliminates default installation of non-essential packages for a server configuration such as X-Windows and all graphics packages. As an added bonus, the installer can create and run an Ubuntu VM as a raw image using QEMU on a Linux based environment.
Why QEMU? QEMU does not require an OS based install – it runs as a redistributable executable and can theoretically allow the environment to run as a VM from an external harddrive against any OS. VirtualBox and VMWare tend to require an application install to function correctly, adding another step to getting the development environment operational.