Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We have one Load balaner, two thiss-js servers, two MDQ thiss-mdq servers and one Medata Agreegator & Publisher server per site. They are all virtual machines managed by SUNET but have both geographic and network redundancy.

...

The servers also runs Apache in a docker container service called sunet-md_publisher to expose and publish the metadata JSON files on port 443 which are accisible only by the servers running MDQ thiss-mdq (md-*.seamlessaccess.org) belonging to the same site.

...

  • After commiting and bump-taging the changes, run cosmos in the concerned servers, better to do it one at a time & check that the service is working.
  • If PyFF is upgraded, run the aforementioned cronjob for PyFF to see that it doesn't show any error.
  • You have to restart sunet-md_publisher if you have upgraded the metdata publishing service. See GeneralTroubleshooting
  • Check https://monitor.seamlessaccess.org/nagios3/ for any alarms.
  • The MDQ thiss-mdq servers with the name md-*.seamlessaccess.org should be able to fetch the metadata from the Aggregator & Publisher servers. Make sure it is all 'green' for those servers too.
  • You can log in to the MDQ thiss-mdq servers and run /usr/local/bin/get_metadata.sh and see that they are able to fetch metadata files without any issues.
  • As a last & final check, visit any SP for example wiki.sunet.se and see that it is possible to login using SA discovery service or check the login using https://demo.seamlessaccess.org/ for production upgrades and https://demo.beta.seamlessaccess.org for Beta upgrades.

...

The servers with the name md-.*seamlessaccess.org run thiss-mdq in production environment. In Beta & Staging they are named md-*.thiss.io.

The code for thiss-mdq lives  lives here https://github.com/TheIdentitySelector/thiss-mdq.

The MDQ thiss-mdq is a REST-like API for requesting and receiving arbitrary metadata. It exposes the metadata in the URL https://md.seamlessaccess.org/entities. The URL for beta is https://md.thiss.io/entities.

The aggregator servers running PyFF expose their port 443 to MDQ thiss-mdq servers. The MDQ thiss-mdq servers run a cronjob that fetch metadata JSON files from Aggregator servers. Next the script checks to see if there are changes in the metadata JSON files by comparing to the local copies under /etc/thiss , if there is, it updates the files in the docker container running thiss-mdq mdq and restart it. The script also does a pre-check to see if the fetched metadata files are empty or not, if empty, it will exit. 

Code Block
# Puppet Name: thiss__mdq_prod_fetch_metadata
*/5 * * * * /usr/local/bin/scriptherder --mode wrap --syslog --name thiss__mdq_prod_fetch_metadata -- /usr/local/bin/get_metadata.sh

The servers run the MDQ thiss-mdq service on port 80 which is only open to the HAproxy load balancers with names md.*.seamlessaccess.org belonging to the same site.

...

We monitor the date when the metadata JSON files are last modified in both monitor.seamlessaccess.org and nagiosxi.nordu.net. The check warns if the metadata is 2 days old, it becomes critical if it is 5 days old.

We have this check on MDQ thiss-mdq servers, on HAproxy Load balancer servers connected to Fastly and on the top Fastly level which is https://md.seamlessaccess.org.

A simple check on the URLs on each level will show information about the metadata. The one on MDQ thiss-mdq server level can only be run locally from that server or from the HAproxy server belonging to the same site.

...

Seamless Access Software Deployment Guide#Frontend(use.thiss.io)

HAproxy Load Balancer for

...

thiss-mdq

Servers

NameLocationEnv
md.aws1.geant.eu.seamlessaccess.orgFrankfurt, AWSProduction
md.aws2.geant.eu.seamlessaccess.orgN. California, AWS
md.ntx.sunet.eu.seamlessaccess.orgNutanix, SUNET
md.se-east.sunet.eu.seamlessaccess.orgSTO1v2, Safespring
md-lb.thiss.ioSTO1v2, SafespringBeta

Descripton 

There is one load balancer server running HAproxy which is placed in front of the two MDQ thiss-mdq servers per site. These server have the names md.*.seamlessaccess.org. These HAproxy servers are added in Fastly for the service md.seamlessaccess.org. Fastly forwards the non-cached HTTPS GET requests invoked by the users to one of these HAproxy servers which in turn forwards them to one of the MDQ thiss-mdq servers using round robin algorithm. These HTTPS requests handle metadata queires.

...

Take help of GeneralTroubleshooting for fixing alarms. It may happen that MDQ thiss-mdq servers are unavailable which will cause alarm in HAproxy servers, then check the section for MDQ thiss-mdq servers to troubleshoot them.

...

HAproxy Load Balancer for thiss-js

Servers

NameLocationEnv
static.aws1.geant.eu.seamlessaccess.orgFrankfurt, AWSProduction
static.aws2.geant.eu.seamlessaccess.orgN. California, AWS
static.ntx.sunet.eu.seamlessaccess.orgNutanix, SUNET
static.se-east.sunet.eu.seamlessaccess.orgSTO1v2, Safespring
static.thiss.ioSTO1v2, SafespringBeta

Descripton & Troubleshooting

...