Page MenuHomePhabricator

Spike: Investigate using Anubis
Closed, ResolvedPublic

Description

Try out https://github.com/TecharoHQ/anubis on staging.

Please take some notes particularly on:

  • how hard it is to deploy?
    • this question was attempted to be answered with the Staging PoC
  • how configurable are the rules?
  • is it all proof of work? if so how much does it impact the low resource users?
  • how would we monitor it? Prometheus?

PRs:

Event Timeline

Ollie.Shotton_WMDE subscribed.

Thanks, @Andrew-WMDE, for looking into this and creating the PRs. This has been deployed to staging and production and so far seems to be working well.

image.png (330×1 px, 36 KB)

As mentioned in the PRs, we had a few questions during review that it would be good to have answered, so I'm moving this back to Doing.

  1. How come the ingress path type changed from Prefix in ingress.yaml#L14 to ImplementationSpecific in anubis.values.yaml.gotmpl#L36?
  2. Not really an issue, more curious, how come all the compatibility checks for older k8s versions in ingress.yaml?
  3. Is there anything else we need to do related to the Anubis deployment (e.g. monitoring)?

Thanks, @Andrew-WMDE, for looking into this and creating the PRs. This has been deployed to staging and production and so far seems to be working well.

image.png (330×1 px, 36 KB)

As mentioned in the PRs, we had a few questions during review that it would be good to have answered, so I'm moving this back to Doing.

  1. How come the ingress path type changed from Prefix in ingress.yaml#L14 to ImplementationSpecific in anubis.values.yaml.gotmpl#L36?

Just out of an abundance of caution, we can also configure Anubis to use Prefix: https://github.com/wmde/wbaas-deploy/pull/2206

  1. Not really an issue, more curious, how come all the compatibility checks for older k8s versions in ingress.yaml?

This is default scaffolding provided by helm create.

  1. Is there anything else we need to do related to the Anubis deployment (e.g. monitoring)?

We're already collecting any metrics that Anubis emits using Prometheus on Google Cloud, so they can be viewed using the Metrics Explorer.

Just out of an abundance of caution, we can also configure Anubis to use Prefix: https://github.com/wmde/wbaas-deploy/pull/2206

Thanks, PR approved.

We're already collecting any metrics that Anubis emits using Prometheus on Google Cloud, so they can be viewed using the Metrics Explorer.

Great, I have added a widget to the Incoming Traffic dashboard to help us keep an eye on the useful metrics.

I think the only thing left to do around this spike is to add some documentation. Adding something to doc/handling-high-traffic.md would be useful, and anything that you learnt about configuring Anubis inc. what settings we might want to tweak and monitor.

I did some experimenting last week, and seemingly this might not be working for custom domains?
Navigating to https://potato.wikibase.cloud/ in an incognito window, I see Anubis right away
Navigating to https://wikibase.world/ I do not