Services

 

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
      • latency
      • bandwidth
    • 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 -
      • lack of power
  • 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.