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.

Glossary of Terms

Continuous Integration
DEFINE ME
Internal Service
An internal service is a program that provides data to other programs and is restricted from public access e.g. Fedora, Solr, Redis.
Module
A module is shared application code packaged as a library. We will be creating a number of modules that will be released publicly. We may also create private modules. Since the bulk of our work is in Ruby and ruby modules are called gems we may use “gem” and “module” interchangeably.
Production
Production should be as stable, reliable, and robust as possible.
Pre-Production
The pre-production environment software should be precisely the same as production. The only time when software versions should differ from production is while testing a new configuration before immediate deployment to production. Data in pre-production may lag behind and/or diverge from production data. As such, the pre-production environment is not a fail-over mirror of the production environment.
Sandboxed
A sandboxed environment doesn’t rely on any external services to run. It has it’s own copy of the application data.
Staging
The staging environment is a sandboxed, publicly accessible application environment used for prototyping new features and experimenting with new software. The goal of this environment is to be able to demonstrate software under active development to stakeholders as quickly as possible.
Web Application
A web application is a program which dynamically generates web pages for public use. It may also provide information in other formats than HTML e.g. JSON, XML.
Web Service
A web service is a program which provides data to external programs, but not web pages. It may serve some HTML but it’s primary purpose is to serve as a data API rather than provide curated a user experience.