This short rebuild of the Screenshot service was undertaken by my team. Pantheon dashboards show a grid of the user’s sites with a recent screenshot of the site appearing as an image for each one.
On the backend, we replaced the ageing bash scripts with a Python service running in Kubernetes. The platform publishes events to a Google PubSub topic every time a site might be changing, and the screenshotter service (running in multiple pods) pulls these messages and takes new screenshots of the sites.
It’s configured to autoscale horizontally based on the depth of the PubSub queue, ensuring we don’t waste resources in Kube.