5.1 The Basics
Building a solid, reliable service is a key role of an SA, who needs to consider
many basics when performing that task. The most important thing to consider
at all stages of design and deployment is the customers’ requirements. Talk
to the customers and find out what their needs and expectations are for
the service.2 Then build a list of other requirements, such as administrative
requirements, that are visible only to the SA team. Focus on the what rather
than the how. It’s easy to get bogged down in implementation details and lose
sight of the purpose and goals.
We have found great success through the use of open protocols and open
architectures. You may not always be able to achieve this, but it should be
considered in the design.
Services should be built on server-class machines that are kept in a suitable
environment and should reach reasonable levels of reliability and performance.
The service and the machines that it relies on should be monitored,
and failures should generate alarms or trouble tickets, as appropriate.
Most services rely on other services. Understanding in detail how a service
works will give you insight into the services on which it relies. For example,
almost every service relies on DNS. If machine names or domain names are
configured into the service, it relies on DNS; if its log files contain the names of
hosts that used the service or were accessed by the service, it uses DNS; if the
people accessing it are trying to contact other machines through the service,
it uses DNS. Likewise, almost every service relies on the network, which is
also a service. DNS relies on the network; therefore, anything that relies on
DNS also relies on the network. Some services rely on email, which relies on
DNS and the network; others rely on being able to access shared files on other