Database Continuous Integration - Chapter 1 - The SDLC

In this chapter: defining a database lifecycle, a flow of code and environmental differences.    
 

Power of SDLC

 
In small startups and big corporations, the software development process follows internal lifecycle adopted by the company. It can be one or two step process, it can be manual,  it might be evolving. The benefits of SDLC are hard to underestimate since they provide standard guidelines, minimize risk, improve quality, provide consistency and play a significant role in safeguarding actual business and its products.   
 

Flow of code  

 
Everything starts in the development camp. Here is where changes are made, queries are written, tables created, and databases designed.  Very Simple DB SDLC Flow
All changes, no matter how big or small, eventually flow to a testing, staging, or other non-production environments. Over there those changes are reviewed by someone other than the original inventor, tested, checked for compliance, verified, documented, accepted and scheduled for a production release. 
 
Scheduled releases are double checked, triple checked and eventually deployed to a production environment. 
 
In production, the newly introduced changes are confirmed, checked, rolled back when necessary, documented and left to be forgotten. 
 
As database projects mature, development priorities slowly overtaken by an invisible support and operation priorities; changes to the database design might still happen, but they  are  happening  on very limited scale. Many new changes tend to follow SDLC process, but that does not happen all the time. 
 

The life of a production database 

 
Life of Production DBLife turns into a real adventure in a production environment. Here, a new code released and updates installed. Hardware changed. Performance tuned.  Backups configured.  Recovery exercised to verify a backup process. Availability insured. New data loaded. Hardware-software-network issue resolved; configuration changed; security and permissions updated.  
 
After database becomes live, the flow of requests never stop. 
 
For many organizations, the changes to production databases might follow different SDLC (formal or informal) and never trickle back to the development environment. After a while, number of differences grow between development and production environments.
 

Development environments 

 
Oh yes, those development environments…  
 
The Development - is an environment where changes are happening. Regardless of the importance this environment has very little love. It is not favorite environment for developers, neither it is the preferred environment for testers nor it is an ideal environment for administrators. So why do we have this absence of love?  
 
Here is why:  
 
  • This environment refreshed with production data only once in a while; 
  • It is most likely underpowered and useless for query tuning;  
  • Developers can delete each other’s code and data at any time, well, mostly unintentionally;  
  • It is unreliable - too many changes in data and logic, too many contentions; 
  • It has bugs and unfinished features at all the time; 
  • Testing activities leave too much rubbish behind. 
 
Competition for database resources is one of the primary causes that hold development teams back. Competing needs affect the quality, stretch timeline, pose multiple limitations and consume a mountain of team’s time to sort out all unintentional impact.  
 
The Testing - environment gets a little more love. It updated more often; it is where developers would like to go to make sure that testers do not find their bugs. Continuous impact from testing efforts anticipated, but it is mitigated by frequent refreshes. 
 
The Pre-Production - or a User Acceptance Environment (because that is where users can try all new changes) is also an environment where developers and testers want to be. Pre-production environment is a favorite of DBAs because it is as close to production as it can get. From hardware standpoint, it is a sandbox for performance tuning and a final resort before delivering new changes to a live production database. 
 

See Also:

 

Monday, January 12, 2015 6:25:00 PM
Comments are closed on this post.
  • RSS
  • Add To My MSN
  • Add To Windows Live
  • Add To My Yahoo
  • Add To Google

Statistics

  • Entries (13)
  • Comments (0)