Information Technology Reference
In-Depth Information
If a programmer's computer is compiling only 5% of the time, 20 programmers
could share one computer if they took turns compiling. Of course, that is not
an ideal situation, and would likely reduce productivity while each programmer
waited for a turn to compile his or her programs. Several optimizations can be
made to that model, but these problems must still be solved:
Programmers must not be able to harm another programmer's activities.
Some programmers will need specific versions of the operating system and its
components, including development tools and test environments.
Software development that modifies the operating system must be tested on
a non-shared operating system.
In other words, the activities of each programmer must be isolated from the activi-
ties of the others. Each programmer needs an instance of an operating system for
each target operating system. In many cases, each programmer needs an operat-
ing system instance for code development as well. However, for many types of
programming, multiple developers can share an operating system instance.
Consolidation allows multiple programmers to use the same hardware re-
sources. Virtualization provides the necessary isolation if application separation
is needed.
Although this use case has been described as “software development,” the con-
cepts apply equally well to any large set of workloads that are characterized by
frequent bursts of activity and have loose response time requirements.
1.1.6.4 Testing and Staging
Many test environments are configured for a specific testing purpose but are
under-utilized because testing is not performed every day. It may not make sense
to reinstall an operating system and configure it each time a different test is
to be run, leading to a proliferation of test servers—which is a waste of capital
investment.
Most functional testing can be performed in a virtualized environment without
affecting the outcome of the tests. This allows consolidation of many testing envi-
ronments, with one test per VE. A VE runs only while its test is being performed.
Normally, only one of the VEs is running.
Other factors must be considered as well. In particular, this model is best applied
to functional testing rather than performance or scalability tests. For example,
one test might require exclusive access to all of the storage bandwidth of the sys-
tem's I/O bus to produce meaningful results. It may not be possible to provide suf-
ficient isolation, so tests must be scheduled at different times. Fortunately, most
virtualization technologies allow VEs to be turned off individually, leaving just
 
Search WWH ::




Custom Search