This page documents our decision process for initial DATIM / OpenHIE packaging strategy in 2015.

Upfront Presumptions:

Approach being considered:

Binary / Standalone

A binary or standalone package usually consists of a .zip or .tar.gz file that will first need to extracted.  After extraction, a binary or script is executed to run the application. 

Pros

Cons

Installer Packages

Installer packages consist of platform specific packages that, when executed, install the application to a specific directory and also can run some post installation configuration.  File extensions typically are .exe or .msi for Windows and .deb or .rpm for linux. 

Pros

Cons

Virtual Machine Image

Virtual machine images consist of a base operating system with the application preinstalled and preconfigured.  This is then distributed as a .ova or .vmdk files. 

Pros

Cons

Docker image

A docker images consists of virtual container containing a minimal OS and the application pre installed and preconfigured.  The most common form of distribution is in a source repository, or through Docker Hub.

Pros

Cons

Cloud Host Image

A cloud host image is a pre made virtual machine image built to run on a specific cloud hosting provider.  The most common format is Amazon's Amazon Machine Image(ami). 

Pros

Cons

 

Packaging SolutionRequires Additional SoftwareRequires Hardware SupportRequires Operating System SupportRequires Internet AccessPerformance(1-5)Ease of Install(1-5)Easy to update
Standalone BinaryNoNoStandalone is specific to OSNo55No
Installer PackagesYes, dependenciesNoPackages are specific to OSYes54Yes
Virtual Machine ImagesYes, VM softwareYes, AMD-V or VT-xNoNo34Yes*
Docker ImagesYes, docker and OS imgYes, if using boot2dockerHost os and docker OS must matchYes4.52Yes
Cloud Host ImagesN/AN/AN/AYes, even for operation.55*Yes*

Blockers for each packaging method

Standalone Binary

You should not use the standalone binary if any of these are true.

Installer Packages

You should not use the installer packages if any of the following are true.

Virtual Machine Images

You should not use the virtual machine images if any of the following are true.

Docker Image

You should not use the Docker image if any of the following are true.

Cloud Host Image

You should not use the Cloud hosting image if any of the following are true.