Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Info added to Problems section

Purpose of the document

GÉANT presents a large number of services which are used by the community and internally.  These publicly exposed services have, in most cases, further dependencies on hidden services such as authentication systems and databases.  The expectation is that these services should be available 100% but in actuality they occasionally fail. Given this, duplicate copies of some services exist to provide redundancy, and while they are designed to protect from loss of data, failing-over the user interface requires manual intervention, which incurs a delay until carried out by an operator (this can sometime extend to a day or two if the outage occurs at the weekend, for instance). A further problem exists in that even where a service provides redundancy at the data and user-interface level, dependent service upon which they rely often are not redundant which means that there is nothing to fail over to and the underlying service needs to be repaired before the service is fully restored.

The following describes structures and facilities that will be introduced to improve service resilience and reliability in GÉANT.

Problems being addressed

A couple or examples of specific problems which have occurred in the recent past, which the work proposed in this document would hope to address, are listed here.

Dashboard

Two productions dashboard servers exist but users access a specific dashboard via a DNS CNAME dashboard-primary.geant.net.  If the server to which this CNAME refers fails for any reason, an operator needs to manually adjust the value of the CNAME to refer the the other dashboard. 

Crowd authentication

Two Crowd servers exists (prod-crowd, and uat-crowd) and contain identical information, but systems (such as Dashboard, JIRA, and others) are configured to use one or the other for authentication.  


As outlined above, a number of services hosted by GÉANT have suffered from time to time with poor availability  

...

Generally, all service deployment can be done in the context of redundant services providing to provide high availability.  The impact to SWD is very low. Services should be deployed such that they are essentially the primary in every case.  

Design goals

Provide an infrastructure which supports automatic service failover.  Service failover should be invisible to users of a service.

...

Follow-up work: identify and document remaining single points of failure.

Structure

Each server will run the consul agent and include a config listing the services it runs and how to monitor them (to test if they are serviceable).  This should be maintained in puppet.

...