Skip to content

Graduate Admissions Course Database (GAOBase)

This page gives an overview of the Graduate Admissions Course Database (GAOBase) system, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.

Service Description

GAOBase maintains the course data used for the Postgraduate Study website. Once data has been through a review process, static site data is published by GAOBase into the Postgraduate Study system which is powered by the Drupal web content management system. The Drupal system interacts with GAOBase via API's for searches and course / department listings.

Also see:

Service Status

GAOBase is currently under development as a GCP Cloud based product.

The current GAOBase is live as an on-prem service, but is being migrated by the DevOps team to run in GCP.

Contact

Technical queries and support should be directed to servicedesk@uis.cam.ac.uk and will be picked up by a member of the team working on the service. To ensure that you receive a response, always direct requests to servicedesk@uis.cam.ac.uk rather than reaching out to team members directly.

Issues discovered in the service or new feature requests should be opened as GitLab issues here.

Environments

GAOBASE is currently deployed to the following environments:

Name Main Application URL Django Admin URL
Production https://gaobase.admin.cam.ac.uk/ https://gaobase.admin.cam.ac.uk/admin
Staging https://webapp.test.gaobase.gcp.uis.cam.ac.uk/ https://webapp.test.gaobase.gcp.uis.cam.ac.uk/admin
Development https://webapp.devel.gaobase.gcp.uis.cam.ac.uk/ https://webapp.devel.gaobase.gcp.uis.cam.ac.uk/admin

The GCP console pages for managing the infrastructure of each component of the deployment are:

Name Main Application Hosting Database
Production GCP Cloud Run GCP Cloud SQL (Postgres)
Staging GCP Cloud Run GCP Cloud SQL (Postgres)
Development GCP Cloud Run GCP Cloud SQL (Postgres)

All environments share access to a set of secrets stored in the meta-project Secret Manager.

Notification channel(s) for environments

Environment Display name Email
Production Graduate Admissions - Lovelace DevOps team email channel devops-lovelace@uis.cam.ac.uk

Source code

Source code for GAOBase is spread over the following repositories:

Repository Description
GAOBase¹ The source code for the application
Cloud Infrastructure¹ Terraform configuration for infrastructure and deployment

¹ DevOps only

Technologies used

The following gives an overview of the technologies that GAOBase is built on.

Category Language Framework(s)
Server Python 3.8 Django 3.2
Client Javascript/jQuery
DB PostgreSQL 13
GCP deployment Terraform

Operational documentation

The following gives an overview of how GAOBase is deployed and maintained.

How and where GAOBase is deployed

  • The Database for Postgraduate course data is a PostgreSQL database hosted by GCP Cloud SQL.
  • The main web application is a Django application hosted by GCP Cloud Run.
  • There are a number of asynchronous processes which rely on a GCP Cloud Tasks queue. The application submits jobs to the queue that callback the application's application's cloud_tasks/ endpoint.

Deploying a new release

The README.md file in the Infrastructure Deployment repository explains how to deploy GAOBase.

Monitoring

  • GCP Cloud Monitoring for tracking the health of applications in the environments and sending alert emails when problems are detected.
  • Cloud Logs for tracking individual requests/responses to/from the web application and the synchronisation job application.

Debugging

The README.md files in each of the source code repositories provide information about debugging both local and deployed instances of the applications.

Service Management and tech lead

The service owner for GAOBase is Abraham Martin.

The service manager and tech lead for GAOBase is Adam Deacon.

The following engineers have operational experience with GAOBase and are able to respond to support requests or incidents: