Introduction.
Services are possibly the most important things provided to end users on
networks. By and large, they are the main reasons that end users
decide to connect to a network, to gain additional services. For example,
some fundamental services are
- Printing -
printing to a higher quality printer than one has locally
- E-Mail -
sending messages across a network
- Authentication
- verifying passwords and access, possibly verifying credit cards
- Network Connectivity
- connectivity to a wider world
- Domain Name Service
- making web addresses more meaningful to the user
- Backup Services
- storing data from a particular hard drive or other source
- Internet Services
- connectivity to the internet
Providing a service requires much more than just
providing the hardware and the software. The service also needs to
be reliable, user friendly as reasonable, scalable to demand, monitored
and maintained. What are the customer's requirements and desires?
Several things need to be considered when developing
services at more general levels, such as
- customer requirements
- open protocols
- open architectures
- server class machines
- reliability
- speed of performance
Most services rely on other services, such as DNS.
Almost all web activity first needs to access a DNS server in order to
get IP address of the machine converted from the URL. In this
vein, it can also be very worthwhile to tie the service location to an
alias so that as the service evolves, users can still access the service
based on some typical name such as "mail" or "calendar".
Basic Requirements. What
are the fundamental requirements? Obviously a difficult question to
answer. Presently, we will focus on customer requirements and
operational requirements.
- Customer requirements
- what features do they want?
- what response times do they want?
- how do they intend to use the service?
- desired levels of support?
- desired levels of availability?
- develop an SLA - service level agreement
- Operational Requirements
- administrative interfaces with the services
- scalability
- upgrade path
- reliability
- network performance issues
- budget
More Operational
Issues. Now we want to take some time to
examine operational issues even further.
- Open Architecture
- better with open and well known protocols
- better with open and well known file formats
- improves interoperability
- most of the time proprietary approach is used
to try and close out competition
- larger pool of technically proficient service
personnel
- might also be able to decouple server and
client software selections
- Simplicity
- simplest solutions that satisfy requirements
are usually the best
- easier to maintain
- easier to expand
- easier to integrate into others
- usually most reliable
- complexity results in a lot of its own problems
- Machine Independence
- clients should be able to access a service
based on a generic name or alias that is based on the function of
the service
- the machine should never have a primary name
that is function based
- can make it much harder to upgrade
- can make it much harder to move
- Environment
- implementation in a data center environment can
have significant impact on service availability
- improved access for network and sys admins
- better network connections
- make the service independent of lower quality
and less reliable services
- Reliability
- make sure the servers themselves are reliable
- make effective use of redundancy
- develop an effective topology
- soft outages - diminishment of service level due
to interactive effects
- DNS service might be down
- hard outages -
- Single or Multiple Servers
- independent services should be on separate
machines as much as possible
- security
- performance
- scalability
- dependent services may have to be on the same
machines
More People Issues.
While it can be difficult to differentiate operational issues from more
people oriented issues, we make the following effort.
- Vendor Relations
- when selecting hardware and software you need
to be able to get very worthwhile advice from your vendors
- if there are fairly comparable providers you
may be able to get some price reductions due to competition
- where is the vendor taking the product in the
future?
- the impact of having to change essential
pieces of infrastructure can be huge
- Restricted Access
- customers shouldn't be able to directly log
into machines that are used to provide a major service
- might breach security
- might diminish computational capability
- might diminish reliability
- Centralization and Standards
- centralizing implies that greatest aspects of
providing service are implemented and managed by more qualified
sys admins
- some services need to be decentralized and
supported through a help desk
- some services need to be handled almost
exclusively by sys admins with help desk providing relatively
superficial support
- must make sure SA team understands the service
and its implementation
- must also consider issues of regional, national
or international centralization
- Performance
- does it work?
- is it fast?
- provide desired features?
- expectations always increase
- test to validate performance and requirements
- huge impact on customer impressions
- might be worthwhile to implement some sort of
clustering options that hide whether a particular service is
available only on a single machine or spread across a cluster
- Monitoring
- availability
- problems
- performance
- capacity planning
- bandwidth
- server performance
- transaction rates
- licenses
- physical device availability
- help desk must always be kept alert of problems
in a service
- Service Rollout
- the rollout and customer's initial experiences
with a service will have a very significant impact on how they
view the service in the future
- make sure documentation is available to those
who will make use of it
- help desk needs training
- develop support procedures
- one, some many approach is usually best
- may be able to make web browser the common user
interface
The Icing. In
general we have outlined many significant issues related to providing
computer related services. Now we want to go into a little depth on
how these can be enhanced even further.
- Dedicated Machines
- much more difficult to justify dedicated
machines for particular services at smaller sites
- smaller sites usually have just about
everything (e-mail, authentication, print service and whatever) on
one machine
- if the firm making use of the smaller site is
successful it is likely to need to split services from one machine
to others that are more focused
- using service based names can help growth and
splitting
- Full Redundancy
- this implies having a duplicate server or set
of servers that will be ready to take over from the primary in
case of failure
- this can also be configured as load sharing
so that loads can shift and servers aren't merely for support of
others
- rolling upgrades can be implemented in many
instances where there is redundancy, where each host is
disconnected, upgraded and tested and brought back into service.
|