I wrote this when I was the Digital Library Applications Lead at the University of Notre Dame. It was archived from http://www3.nd.edu/~dbrubak1/ which no longer exists.

Service & Application Management

Our Goal

The software developers in the library will be building and deploying many applications of varying size and complexity on an ongoing basis. In order to ensure operational efficiency throughout the service life cycle of these applications we need to have consistency across development, staging, and production environments.

We need an infrastructure that will grow and change to meet our needs.

Application Deployment

We want to be able to deploy applications in two different ways:

  • As a VM
  • As a cluster service

Virtual Machines

Applications deployed as virtual machines will contain all the OS and supporting software alongside the application code. Multiple virtual machines will be run on a VM host. A VM must be able to be migrated from one host to another in order to ensure continuous service.

The following types of applications will be deployed in this manner:

Cluster Services

Cluster services run on a RHEL high-availability cluster. The OS and supporting software is managed separately across cluster nodes. In order to run an application as a cluster service it must be specially configured. An cluster service can migrate from one node to another to ensure continuous service.

The following types of applications will be deployed in this manner:

Application Environments

As web applications are being developed they will pass through 5 different environments:

Implementation Hurdles

  • Hardware for VM hosts has been ordered but we do not have a high-availability VM infrastructure in place.
  • Provisioning and maintaining virtual machines requires automated processes that are not yet in place.
  • A new high-availability cluster needs to be built with RHEL 6.
  • The CI environment must be configured to test software packaged as a VM.