Wikiup:Technik/Cloud/Infrastruktur
Infrastruktur der WikiMedia Cloud
Diese Projektseite stellt für technisch Interessierte und potenzielle Entwickler einige Informationen zusammen, die das Verständnis für die WikiMedia Cloud, deren Betriebsabläufe und den Einstieg in die Entwicklung erleichtern sollen.
Die hier verlinkten Seiten dürften in aller Regel englischsprachig sein. Die Angebote liefern nur erste Grundlagen; aktuelle und vertiefte Informationen sind den Dokumentationen der WMF zu entnehmen.
Betriebszustand
- aktueller Status der laufenden Bots und Dienste
- Für jeden einzelnen Account Status abfragbar.
- grafische Darstellung der Auslastung der Toolforge-Server
- replag – Verzögerungszeiten der Datenbankreplikation
Wikimedia-Tool-Ressourcen
- Startseite von Wikimedia Toolforge, mit Liste aller Konten (Werkzeuge, Bots; nicht notwendigerweise der Tools – es gibt Projektkonten ohne ein Tool und solche mit mehreren Tools)
- cdnjs – Ressourcen für alle Werkzeuge (CDN) – Datenschutz
- Browser für Dateien und Info über aktuelle Toolforge Ressourcen
Kommunikation
- Phabricator-Tags (Auswahl):
- Toolforge Infrastruktur
- Fehlermeldungen über bestimmte Tools (sofern kein eigener Tag, eigene Diskussionsseite, eigenes Ticket-System o.ä.)
- Mailingliste
cloud
und Mailinglistecloud-announce
– Cloud-Mailinglisten
Interwiki-Link
Eine Interwiki-artige Verlinkung ist im Prinzip möglich mit: [[toolforge:]]
(sowie den Vorgängern toollabs:
und nicht mehr wirksam labsconsole:
)
- Dieses löst jedoch auf zu
tools.wmflabs.org
. - Das ist wiederum eine Domain, die zukünftig Weiterleitungen nur noch ausführen wird,wenn sie von Werkzeugen stammen, die im Mai 2020 bereits registriert waren.
- Damit ist das nicht mehr universell einsetzbar, und auf ein Interwiki-Link sollte zukünftig verzichtet werden, um Verwirrung bei alten und neuen Werkzeugen zu vermeiden. Vielmehr sollten vollständige URL, soweit möglich für
toolforge.org
und mit explizitem Protokollhttps://
benutzt werden. - Interwiki-Links sind programmatisch darauf ausgelegt, dass nur der Pfad mittels
$1
variabel verlinkt werden kann; die Domain und auch Subdomains hingegen konstant sind. Beitoolforge.org
müsste jedoch die Subdomain vom Pseudo-Linkziel angesprochen werden, und selbst wenn hier$1
ersetzt würde, können aktueller Pfad und Query nicht mehr mit Wikilink-Syntax unabhängig vom Namen des Accounts die aktuellen Angaben tragen. Deshalb ist nicht mehr mit sinnvollen Interwiki-Links zu rechnen.
Vorlage:Toolforge kennt die erforderlichen unabhängigen Parameter für Subdomain und Pfad/Query.
Bots und Tools
In der WikiMedia Cloud („Toolforge“) sind die Bots und Tools einander gleichgestellt.
Der Unterschied liegt in der Art der Benutzung:
- Helferlein bieten eine Schnittstelle (in Form einer URL oder eines interaktiven Formulars) an, die jederzeit von jedem Internet-Benutzer aufgerufen werden kann und sofort ein Ergebnis liefert.
- Bots können nur von ihrem Betreiber gestartet werden und führen einmalig oder automatisch periodisch auf einem Wiki Aktivitäten aus, die dieses in der Regel verändern (Seitenbearbeitung).
- Dazu muss ein WMF-Benutzerkonto vorhanden sein, und es ist auch die Zustimmung der Gemeinschaft erforderlich, die das durch ein Botflag kennzeichnet.
Clean URL
Tools sollten als Clean URL angeboten werden, also keine Implementierungsdetails wie /cgi-bin/
oder .php
oder .py
usw. nach außen verraten.
Ein Ansatz, der außerdem die hierfür geeigneten Parameter in durch Schrägstriche getrennte Unterseiten-ähnliche Segmente gliedert, wird von whois verfolgt. In der .lighttpd.conf wird konfiguriert:
url.rewrite-once = ( "/w/([0-9A-Fa-f\:\.]*)/redirect/(\w*)/?$" => "/gateway.py?ip=$1&provider=$2", "/w/([^/%]+)/lookup/json/?$" => "/gateway.py?ip=$1&lookup=true&format=json", "/w/([^/%]+)/lookup/?$" => "/gateway.py?ip=$1&lookup=true", "/w/([0-9A-Fa-f\:\.]*)/?$" => "/gateway.py?ip=$1", "/$" => "/gateway.py" ) url.redirect = ( "/whois/gateway.py\?(.*)$" => "//whois.toolforge.org/gateway.py?$1", "/whois/(.*)$" => "//whois.toolforge.org/w/$1", "/w/(%20|%E2%80%8E)*([^/%]+)(%20|%E2%80%8E)*/(|lookup)/?$" => "//whois.toolforge.org/w/$2/$4", ) server.error-handler-404 = "/notfound.html"
Damit wird der Pfad des Zugriffs aus dem www umgeschrieben auf die verborgene interne Seitenstruktur, und die Parameterwerte werden getrimmt, die URL entsprechend reformatiert und das Werkzeug gestartet.