Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

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

Upfront Presumptions:

  • Implementers of this package will be "interested parties", to include ministries of Health, large implementing partners, and other country stakeholders.
  • The OpenHIE DATIM distro will include functionality to support 1.0 OpenHIE workflows, plus additional pre-release versions of metadata synchronization and aggregate data exchange workflows
  • All reference OpenHIE components will be included in the package
  • Implementation site requirements include:
    • Single server-level computer (specs to be determined) with a Linux-based OS installed
    • Working, active internet connection
    • Expertise in the installation of Linux-based software, modification of configuration files

Approach being considered:

  • Two-pronged packaging approach:
    • Installer packaging process for those with a machine available at the location of the implementation
    • Cloud-hosted images through 1 or 2 service providers for those who want to work with a remotely hosted service

Upfront Clarifications Needed:

  • Who will be supported by the distribution?   
    • Implementing partners, the "glactic" instance and/or the ministries of health?
  • What workflow(s) will the distribution support?  
  • What components are actually included in the package(s)?
    • Base software components
    • Customized configurations
    • Metadata
  • What are the implementation site requirements (if any)?
    • Operating system
    • Network connectivity
    • Minimum hardware requirement
    • Level of implementer expertise
  • How often will the contents of the distribution need to change?

Different Types of Packaging

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. 

...

  • May require extra software dependencies.
  • Packages are specific to OS.
  • Installation Requires may require internet Accessaccess.

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. 

...

  • Requires docker and base os it be installed before running image.
  • Requires Hardware support on non linux OS.
  • Host OS and image OS must match. (e.g. Linux os will run only linux images.)
  • Requires internet access to get base image

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

  • Easy to setup when using Amazon EC2.
  • Performance is good with the option to scale up using EC2.
  • Easy to upgrade after initial install. *(If updating packages in the vm.)

Cons

  • Requires internet access for installation AND operation.
  • Cost of running EC2 instances.

 

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

...

  • You need an easy to install method.
  • Using a non linux OS and do not meet the hardware virtualization requirements.
  • No internet access during install and do not have docker and all images needed to run the application

Cloud Host Image

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

  • You do not have reliable internet access.  
  • You need your data on site.
  • Cloud provider is too expensive.