Jump to content

SLO/ipoid

From Wikitech
< SLO

Status: draft

Organizational

Service

IPoid provides an API for retrieving reputation data for individual IP addresses, as well as retrieving lists of IP addresses matching a particular set of labels (e.g. list of IP addresses that are associated with VPNs).

The service has two parts:

  • A web application for serving requests to access the data
  • A data pipeline for downloading data from an external data source (spur.us), and loading it into a MariaDB database

Teams

  • Trust and Safety Product
  • DBA
  • Service ops

Architectural

Environmental dependencies

WikiKube cluster

Service dependencies

Hard dependencies

Soft dependencies

  • Spur.us API availability. If Spur.us is offline or we are unable to access, it means we don't update the data in the application's database. If we are unable to access the data source at Spur.us for more than N days, then the service is less useful, as the data is out of date.

Client-facing

Clients

  • MediaWiki
    • via the IPInfo extension
    • via CentralAuth PreSecondaryAuthenticationProvider (to be moved to Extension:IPReputation)
  • ...

Request Classes

  • Primary use case is look up for a single IP address
  • Endpoints exist for looking up all IPs for a particular risk type (e.g. all VPNs)

There are no write requests.

Service Level Indicators (SLIs)

The percentage of all requests that complete within [fill in] milliseconds and receive a non-error response, defined as percentage of requests that receive a non-5xx response.

Operational

Instructions

Monitoring

How is the service monitored?

Troubleshooting

How complex is the service to troubleshoot?

Deployment

How is the service deployed?

Service Level Objectives

Instructions

Realistic targets

What are the realistic targets for each SLI? Why?

Ideal targets

What are the ideal targets for each SLI? Why?

Reconciliation

Reconcile the realistic vs. ideal targets, documenting any decisions made along the way.

Once the SLO is final, consider collapsing the above three sections.

What are the agreed-upon SLOs, for each SLI and each request class?