Information Technology Reference
In-Depth Information
which includes the settings that all servers must have. Another definition might be for a
“web server,” which inherits all the attributes of a “generic server” but adds web serving
software and other attributes. A “blog server” may inherit the “web server” definition and
add blogging software. In contrast, an “image server” may inherit the “web server” attrib-
utes but create a machine that accesses an image database and serves the images, perhaps
tuning the web server with settings that are more appropriate for serving static images.
Bybuildingupthesedefinitionsor“classes,”youcanbuildupalibrarythatisveryflex-
ible and efficient. For example, a change to the “server” definition automatically affects all
the definitions that inherit it.
The key advantages of a CM system are that SAs can define things concisely at a high
level, and that it is easy to enshrine best practices in shared definitions and processes. The
primary disadvantage is the steep learning curve for the domain-specific language and the
need to initially create all the necessary definitions.
12.7 Software Engineering Tools and Techniques
Automation is just like any other software development project, so it needs the facilities
that benefit all modern software development projects. You are probably familiar with the
tools that are used for automation. Even so, we constantly find operations teams not using
them or not using them to their fullest potential.
The automation tools and their support tools such as bug trackers and source code re-
positories should be a centralized, shared service used by all involved in software devel-
opment. Such an approach makes it easier to collaborate. For example, moving bugs and
other issues between projects is easier if all teams use the same bug tracking system.
The service delivery platform and related issues such as the need for continuous test,
build, and deploy capabilities were discussed in Chapters 9 and 10 . In this section, we dis-
cuss issue tracking systems, version control systems, packaging, and techniques such as
test-driven development.
12.7.1 Issue Tracking Systems
Issue tracking systems are for recording and managing bug reports and feature requests.
Every bug report and feature request should go through the system. This raises the issue's
visibility, ensures the related work is recognized in statistics generated by management,
and potentially allows someone else to get around to working on the issue before you do.
Managingallworkthroughonesystemalsomakesiteasiertopreventoverlappingwork.It
allows members of the team to understand what the others are working on, and it makes it
easier to hand off tasks to others (this last point is especially valuable when you won't be
available to work on these tasks).
Search WWH ::




Custom Search