Education Space Scheduling and Modelling Sync¶
[Team | Hamilton Team] [Tech Lead | rjg21] [Service Owner | TBC] [Service Manager | nik22] [Product Manager | TBC]
This page gives an overview of the Education Space Scheduling and Modelling synchronisation service, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.
Service Description¶
Student Registry procured a room scheduling application called TermTime from Semestry. Room Booking is currently handled by Booker from EventMap. A synchronisation process was required where the activities scheduled in TermTime would become room bookings in Booker. Also, for consistency the room and building definitions in Booker would need to be synchronised to TermTime.
Service Status¶
The ESSM Sync is currently alpha
.
Currently, which databases and discrepancies between Booker and TermTime are being ironed out.
Following this, a testing stage using a combination of Booker live and staging and a TermTime training database, will confirm that the synchronised works as expected.
Finally, this will become live using a production TermTime database and Booker live.
Contact¶
Technical queries and support should be directed to uis-devops-division@lists.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 uis-devops-division@lists.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 in the administration project or sync-tool repository, if a sync tool specific issue or you lack permission to the administration project.
Environments¶
The ESSM Sync is currently deployed as Gitlab CI and Scheduled Pipelines in the Gitlab Synchronisation Tasks project.
There is no additional infrastructure other than Gitlab itself and the DevOps Gitlab CI runners.
Source code¶
The source code for the ESSM Sync is spread over the following repositories:
Repository | Description |
---|---|
Sync Tool | The source code for the synchronisation processing |
Sync Tasks | The Gitlab CI and Terraform infrastructure code for creating the Scheduled Pipelines |
Administration | General project wide issue tracking and documentation |
Technologies used¶
The following gives an overview of the ESSM Sync is built on.
Category | Language | Framework(s) |
---|---|---|
Sync Tool | python | requests, PyYAML and dpath |
Sync Tasks - Infrastructure | terraform | gitlab provider |
Sync Tasks - Gitlab CI | bash | docker |
Operational documentation¶
The following gives an overview of how the ESSM Sync is deployed and maintained
How and where the ESSM Sync is deployed¶
See Sync Tasks Gitlab project.
Deploying a new release¶
Updates to the sync-tool will be used automatically by next schedule pipeline.
Monitoring¶
Gitlab CI pipeline failures will cause automatic notification to the schedule owner (UIS DevOps Division Robot).
Debugging¶
A local setup can be created by:
- installing the sync tool
pip install https://gitlab.developers.cam.ac.uk/uis/devops/essm/sync-tool
- creating configuration files from the templates used in the Sync Tasks repository, containing Booker and TermTime API credentials from ESSM 1password vault
- running
essmsync -c <configuration> <operation>
as described in sync tool README
Testing should be initially done against Booker staging instance and TermTime CambTest database.
Further Documentation¶
Detailed investigation of API usage and the synchronised processes may be found in the Administration Wiki.
Service Management¶
The Team responsible for this service is Hamilton Team.
The Tech Lead for this service is rjg21.
The Service Owner for this service is TBC.
The Service Manager for this service is nik22.
The Product Manager for this service is TBC.