Information Technology Reference
In-Depth Information
the metadata is encoded inside the package, there is no worry that it will be accidentally
changed along the way.
Other mechanisms for passing files between phases should be avoided. We've seen in-
dividual files emailed between teams, losing any permissions and ownership metadata.
We've seen organizations that do their handoff by placing all the individual files in a par-
ticular subdirectory on a file server. There was no easy way to tell if the files had changed
between test and deploy. The person maintaining the directory could not prepare the next
release until we were done with the current files. In this system there was no way to access
older releases. Even worse, we've seen this process involve a subdirectory in a particular
person'shomedirectory,whichmeantifthatindividualleftthecompany,theentireprocess
would break.
Also avoid using the source code repository as the handoff mechanism. Source repos-
itories usually have a feature that lets you label, or tag , all files at a particular moment in
time. The tag name is then given to the deployment phase as the handoff. This approach
may create many problems. For example, it is difficult to verify the integrity of all the files
and the metadata. Permissions may be accidentally changed. File ownership, by design, is
changed. If this technique is used and binaries are checked into the repository, the reposit-
orywillgrowquitelargeandunwieldy.Ifbinariesarenotcheckedin,itmeansdeployment
will have to build them. This is a duplication of effort and risks introducing subtle changes
that will have bypassed testing.
9.7 Summary
This chapter was an overview of service delivery and a detailed examination of the build
phase. The next chapter will examine the deployment phase in detail.
Service delivery comprises the technical processes involved in turning source code into
a running service. The service delivery platform is the software and automation that drives
the process.
Service delivery has two phases: build and deploy. Build turns source code into pack-
ages. Deploy takes the packages and deploys them in an environment. There are different
environments for different purposes. The test environment is used to test the service. The
live environment is where the service runs to provide service for customers. The two en-
vironments should be engineered and built the same way to make testing as meaningful as
possible. The test environment typically differs only in its size and the fact that it stores
fictional data instead ofreal userdata. There aremanyotherenvironments, including some
used for exploratory testing, performance testing, beta testing, and so on.
Search WWH ::




Custom Search