Development environments and data

A typical software development undertaking has multiple setups for validating a piece of software before it is released on the live environment. Typically you find a development, test, acceptance and production environment each designed to function as a gateway to the next environment.

When releasing software you take your code from a version control systems, build the source code into runnable code, make a bundle such as a war file, an assembly or a zip file. You make instructions on how to install the new software and preferably provide a roll back scenario.

However for solution where data is a critical piece of the solution you need a more complex setup, data is not managed from your version control system but instead managed in your production environment. So you end up with a reverse release cycle where data works its way back the chain.
DTAP street
To complicate things some products and solutions have code masqueraded as data. Content Management Systems are particularly good at this. You need to think upfront how to take this is into consideration when designing your release processes.

Advertisements

%d bloggers like this: