SCM Design Patterns: Build and Deployment

[article]
Part 3

SCM system functions as a repository for the Application. You can always create the Application's run time version from these CIs. The run-time CIs (which are the output of the Build process) are more transient since you can create them whenever you want using the standard Build process.

Deployment is the process of taking your run-time Application and moving it to an environment where it will be executed and Stakeholders can access it. In this Stand Alone PC Application it may be as simple as copying the run time CIs to a run-time Server. Once your Build and Deployment is complete it is important to do some cleanup. You do not want the run-time code generated by the Build process to hang around the SCM server, so they should be deleted. If they are not deleted it might cause errors the next time you execute a Build. If there are intermediary deployment files on the target run-time server you will want to delete those as well. Your Build and Deploy script should execute these actions.

In the development area we have two sets of build environments: the build environment that is present in the developers' IDE and the build environment in the Development State itself. These builds are usually defined and executed by individual developers on an as-needed basis. They may contain variations in how the Build is executed due to a lack of a complete infrastructure with components such as Databases, as well as other developers' code.

The Integration through Production States must use a standardized Build process that will be executed by aManager. A manager makes the decision when a compile is needed based on input from a CCB or other stakeholders. A standardized build process is a key component of maintaining the consistency and quality of the Application as CIs move through the States. Once the Application has been Built, you have two sets of CIs to deal with - the source code and other CIs in the SCM system, and the Runtime CIs on the SCM Server.

The source CIs are the elements that you are going to keep and maintain in your SCM system. From this perspective the SCM system functions as a repository for the Application. You can always create the Application's run time version from these CIs. The run-time CIs (which are the output of the Build process) are more transient since you can create them whenever you want using the standard Build process.

Deployment is the process of taking your run-time Application and moving it to an environment where it will be executed and Stakeholders can access it. In this Stand Alone PC Application it may be as simple as copying the run time CIs to a run-time Server.

Once your Build and Deployment is complete it is important to do some cleanup. You do not want the run-time code generated by the Build process to hang around the SCM server, so they should be deleted. If they are not deleted it might cause errors the next time you execute a Build. If there are intermediary deployment files on the target run-time server you will want to delete those as well. Your Build and Deploy script should execute these actions.

Once all the CIs that comprise the Application have been promoted to the Production State they need one final deployment to the Production Targets. Two types of packages are required are required to accomplish this:

    1. Create an install package such as a MCI that contains all the run-time components for the Application and how to install them and electronically push the Application

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Oct 12
Oct 15
Nov 09
Nov 09