Equipment Sharing¶
[Team : Johnson Team] [Tech Lead : TBC] [Service Owner : TBC] [Service Manager : TBC] [Product Manager : TBC]
This page gives an overview of Equipment Sharing, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.
Service Description¶
This is the University of Cambridge research facilities and equipment searchable database. This allows University members to search entries in the Research Facilities and Equipment Database
Service Status¶
Equipment Sharing is currently live.
Contact¶
Technical queries and support should be directed to development team 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 development team 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 application repository.
Environments¶
The Equipment Sharing is currently deployed to the following environments:
Name | URL | Supporting VMs |
---|---|---|
Production | admin app: https://www.equipment.admin.cam.ac.uk/esd-admin/ web front-end: https://www.equipment.admin.cam.ac.uk/ |
equipment-sharing-live1.internal.admin.cam.ac.uk equipment-sharing-live2.internal.admin.cam.ac.uk |
Staging | admin app: http://equipment-sharing-staging1.internal.admin.cam.ac.uk:8080/esd-admin/ (Not accessible) web front-end: http://equipment-sharing-staging1.internal.admin.cam.ac.uk |
equipment-sharing-staging1.internal.admin.cam.ac.uk |
Source code¶
The source code for the Equipment sharing is can be found in the following Gitlab repositories:
Repository | Description |
---|---|
Java backend | https://gitlab.developers.cam.ac.uk/uis/devops/research/equipment-sharing/equipsharenew |
PHP frontend | https://gitlab.developers.cam.ac.uk/uis/devops/research/equipment-sharing/equipment-sharing-ui |
Technologies used¶
The following gives an overview of the technologies the Equipment Sharing is built on.
Category | Language | Technologies |
---|---|---|
Web | Java | Spring, Tomcat |
Frontend | PHP | Symfony, Guzzle, Capifony Composer |
Database | N/A | MariaDB |
Operational documentation¶
The following gives an overview of how the Equipment Sharing is deployed and maintained.
Service locations on hosts¶
esd-admin
(admin console) and equipshare
(batch job and REST services) are deployed to /opt/tomcat/webapps
.
The PHP service (public-facing) is in /var/www/
and logs are in /var/www/equipment-sharing-live1.internal.admin.cam.ac.uk/releases/<release-timestamp>/app/logs
Export of public data¶
equipshare has a 'hidden' feature to publish an export of all public resources, which is made available at https://www.equipment.admin.cam.ac.uk/equipshare/export/ (this currently does not seem to be available)
How and where the Equipment Sharing is deployed¶
To deploy the web service, copy equipshare.war
file to tomcat installation location: /opt/tomcat/webapps
restart tomcat : systemctl restart tomcat.service
Other operation issues¶
As the Research Facilities and Equipment Database web service is a bit broken, there are some workarounds in the code:
- When something doesn’t exist a 200 response is returned with an empty body, BrokenResponseListener converts this in a 404.
- A load of data in the database is broken (eg phone numbers like 00000 000000, email addresses like
unknown@cam.ac.uk), so the
MisdEquipmentSharingDataCleaningBundle
tries to tidy it up. - There is a yet-to-be-fully-diagnosed issue whereby the tomcat app will start returning 404 responses. More details on this issue.
Load-balancing¶
As described above, the service consists of two components:
- A PHP front-end service, listening on port 80 via Apache
- Java services, deployed as two separate webapps (
equipshare
andesd-admin
) on tomcat listening on port 8080. These supply a backend to the PHP front-end service, but also provide services directly to users.
This configuration is achieved through the traffic managers, which define 4 pools:
equipshare-live1:80
(PHP master pool)equipshare-live2:80
`(PHP failure pool)equipshare-live1:8080
(Tomcat master pool)equipshare-live2:8080
(Tomcat failure pool)
A trafficscript rule on the www.equipment.admin.cam.ac.uk
port 80/443 virtual servers proxies all
requests to the appropriate PHP master pool unless it corresponds to the /equipshare
or
/esd-admin
directories, in which case the requests will be forwarded to the Tomcat master pool.
Additionally, within the front-end PHP application, requests are made to
http://localhost:8080/equipshare/...
. This provides an interface to the local MariaDB database
(replicated across the two instances).
Further historical details¶
Historical insight into the service can be found on Confluence
Service Management¶
The Team responsible for this service is Johnson Team.
The Tech Lead for this service is TBC.
The Service Owner for this service is TBC.
The Service Manager for this service is TBC.
The Product Manager for this service is TBC.
The following engineers have operational experience with this service and are able to respond to support requests or incidents:
Contact Johnson Team about any issues.