This page provides a brief overview of Server-side Rendering Service.
- Grafana dashboard for termbox service
- Grafana dashboard for envoy proxy, filtered for termbox
- Logstash TBA
The service was introduced in 2019, to initially serve server-side rendered content of the Wikidata/Wikibase "term box", i.e. the part of item/property page UI where labels, descriptions and aliases are shown and could be edited.
The service is used as part of generating the HTML output sent from MediaWiki to user's browser.
There is a server-side and the client-side variant of the code, which are distributions of the same implementation.
The client-side variant is deployed into wikibase on a file system level through git sub modules.
In case of no configured server-side rendering service or a malfunctioning of it, the client-side code will act as a fallback.
The service uses Vue.js as the UI framework.
The service is deployed on the WMF services Kubernetes cluster using helm. This means that the service is packaged as a docker image. The docker image is built by the Deployment pipeline.
The images that are used in production can be found on the WMF docker registry which is missing a nice UI; the easiest way to see current images is this tool. New images are built, after code is merged to the master branch, automatically by the deployment pipeline.
The production clusters used on wikidata.org are managed using kubernetes and helm. These are also used for a staging instance as well as an instance for test.wikidata.org. The configuration for these can be found in the operations/deployment-charts repo. Details for applying those adjustments to the production clusters can be found here.
The instance used for beta is just run by docker. The configuration for this can be found in the git repo in the infrastructure folder. The instructions for applying those changes can also be found there.
Some useful metrics for monitoring the deployment can be found shown in grafana.
Sequence diagram "source code".
Initial deployment & load details
The initial responsibility of this service will be the rendering of the term box for wikidata items and properties for mobile web views.
Currently wikidata.org gets no more that 80k mobile web requests per day (including cached pages, and non item/property pages).
If we were to assume all of these requests were actually to item and property pages that were not cached this would result in this SSR service being hit 55 times per minute.
(In reality some of these page views are not to item or property pages, and some will be cached) so we are looking at no more than 1 call per second.
Debugging and Testing Production
To connect to the production services for testing use ssh port forwarding as follows:
ssh -4 -L 3030:termbox.svc.codfw.wmnet:3030 <username>@bast1002.wikimedia.org
You can alter the bastion host as needed. You can also alter the service e.g. eqiad vs codfw.