Information Technology Reference
In-Depth Information
The Risky 14-Day Build
A San Francisco software company with which most system administrators are fa-
miliar had a build process that was manual and took two weeks to complete. Its
software releases happened on the first day of each quarter. Two weeks before-
hand,anengineerwouldstartdoingthebuild.Ifthedeveloperswerelate,thebuild
would have even less time. The software was built for three Windows releases and
a dozen Linux/UNIX variations. Some ofthe build steps were sounreliable and ad
hoc that it put the entire process at risk. Bugs found along the way would be hot
patched for that particular OS so as to not put the schedule at risk by starting over.
Each quarter the company was at risk of shipping late, which would be highly vis-
ible and embarrassing.
Anewlyhiredbuildengineerwasshockedattheprocessandinformedthechief
technology officer (CTO) that automating it would be a top priority. The CTO dis-
agreed and explained that it didn't need to be automated: “I hired you to do it!”
The engineer automated it anyway. Within a few months the entire process was
automated for all operating systems. Later it was put into a build console and CI
was achieved.
This transformed the development organization. Developers were now more
productive andproducedbetter software. Therelease engineer couldthenfocuson
more important and more interesting work.
In this situation, defying the CTO was the right thing to do. This person is a
hero.
9.6 Packages as Handoff Interface
Beforewemoveontothedeploymentphase,weneedtopauseanddiscussthehandoffthat
happens between phases.
The handoff step between the build phase and the deployment phase involves the deliv-
ery of an installation package. Using packages makes it easier to ensure that the same bits
are used in testing as well as deployment. Deployment may happen hours or weeks after
testing and it is important that the same files be used for other deployments. Otherwise,
untested changes can slip in.
It is easier to manage a package than the individual files. Packages are usually crypto-
graphically hashed or digitally signed so that the receiving end can verify that the file was
notalteredalongtheway.Itissafertouploadasinglefilethanahierarchyoffiles.Because
Search WWH ::




Custom Search