development, testing and production environments

Primary tabs

the Colossus computer

introduction

Putting the development lifecycle into action means creating development, testing and production environments. One LIC (Larg's Internet Cluster) provides the infrastructure for each environment.

There are several types of environment used by a development lifecycle. An enterprise may run these five environments, but the number varies depending on the size of a business budget.

  1. development
  2. integration
  3. customer test
  4. operation test
  5. production

All can be managed by the support team.

what it is

The LIC doesn't really make sense in isolation. It can only really be understood in context. The area in which an LIC exists is its environment. This includes all the factors that form the online marketplace and affect its performance.

When someone talks about the environment they are talking about what the LIC is used for, such as a test environment used by programmers and a production environment used by real live customers. The idea of an environment is too abstract to include anything about the computer components that make it up, such as the hardware, network, operating systems, applications and so on described in this guide.

One organisation may have several e-commerce environments. Each environment is a complete collection of hardware and software necessary for running e-commerce websites. Several environments are necessary to allow different users to do different jobs without interfering with each other. Developers make and break programs, customers spend money, support staff test new products and so on. The most important consideration is to make sure the environment that the customer uses does not break in any way.

Another common way of referring to a collection of hardware and software that serves one purpose is to call it a platform. We don't use the terms "environment" and "platform" interchangeably. We tend to say "platform" to describe the minimum set of things needed to do one job. To run a web site, we don't just need an application like "apache web server" or "Sun web server". A web server platform is a computer, operating system and web server application.

common environments

Almost all e-commerce work can be carried out using four types of environment: development, user test, pre-production and production. The development, user test and pre-production websites are used to create and test a new website, before it is copied to the production environment where end-users can use it.

LIC table: common environment types
type description
development This environment is used to create business applications. Developers are up to their knees in broken code and working components.
integration Developers bring all the components together to assemble the application. Small teams don't need an integration environment. They use a drink-tea-and-get-on-with-it methodology called cowboy coding - the quickest and most efficient way for a small team of experienced technicians to work on small projects.
customer test This environment is used to unit test business applications. This is where we make sure the customer gets what they requested. The common name is user test
operation test Make sure the application runs on our computers. This environment is the last staging area for any software changes before they are moved into production. It is sometimes called pre-production. This area is used for integration testing.
production The Production Environment provides the resources for efficient and reliable processing of business information. It is a critical and highly available environment.

An LIC is useful to have in all of these environments but only necessary for two of them: pre-production and production.

what happens in these environments

Different types of activities that occur in each environment. This table lists the activities that take place in the four common environments. It also lists which discipline is needed to perform each activity. A discipline is an area of expertise. The disciplines are listed in abbreviated form: SA is short for Systems Administrator. The support team page tells you what all the abbreviations stand for and explains the disciplines.

LIC table: who uses each environment
activity development customer test operation test production
System Software
Install system software/modify environment

SA

SA

SA

SA

Test/certify system software

DBA, SA

DBA, Dev, SA

DBA, Dev, SA, C

--

Test/certify network software and security

Net, SA

Net, SA

Net,SA

--

DBMS Software
Install DBMS software/modify environment

DBA

DBA

DBA

DBA

Test/certify DBMS software

DBA

DBA, Dev

DBA, Dev, C

--

Business Applications
Modify source code

--

Dev

--

--

Compile source code

--

DBA, Dev

DBA, Dev

--

Build/link application

--

DBA, Dev

DBA, Dev

--

Test/certify business applications

--

DBA, Dev

DBA, Dev

--

Install business applications

--

DBA, Dev

DBA, Dev

--

Run business applications

--

--

--

C

Business Application Data
Migrate tables through environments

--

DBA

DBA

DBA

Build data

--

DBA

DBA

DBA

Security/Scheduling/Escalation
Grant user access/change security privileges

SA

Sec

Sec

Sec

Modify and test job scheduling

--

Dev,SA

Ops, SA

Ops, SA

Problem resolution/escalation

--

Dev, Ops, SA

Dev, Ops, SA

Dev, Ops, SA

less common environments

Everyone has their own opinion on what works best. Different organisations have different environments. Some call the same environment different things. A few are described in this table.

LIC table: less common environments
name description
production support A seperate environment used to analyze, code and test emergency bug fixes to production systems.
systems test Maybe an operational testing area, or maybe a synonym for user test
disaster recovery This one is not really part of the development lifecycle. DR is a duplicate of the production environment, which only gets used if production bursts into flames. Idle, expensive and resented.
crash and burn This stand-alone environment is used to perform unit, integration, regression and feasibility testing of software, such as DBMS, third-party tools and new OS patch software. May be called fix-on-fail.
user development a synonym for development

what it isn't

A computer environment. This is the state of a computer, usually determined by which programs are running and basic hardware and software characteristics. For example, when one speaks of running a program in a UNIX environment, it means running a program on a computer that has the UNIX operating system.

where it is

The production environment has to be located between an enterprise and the Internet so customers and employees can use it. The development and user test environments are usually within an enterprise to keep it safe from the Internet. The pre-production environment is usually in a similar position to the production environment.