Förderanträge/Valhalla-Routingserver: Unterschied zwischen den Versionen

Aus FOSSGIS Wiki
Zur Navigation springenZur Suche springen
Zeile 51: Zeile 51:
== Frage 2 ==
== Frage 2 ==
Damit einher geht auch die Frage, warum gerade drei Server? Im Antrag steht "Die Hardwareausstattung ist im Vergleich zu OSRM deutlich weniger anspruchsvoll". Reicht dann nicht einer? Die Darstellung im Antrag, warum es 3 Server braucht, ist mir etwas zu vage.
Damit einher geht auch die Frage, warum gerade drei Server? Im Antrag steht "Die Hardwareausstattung ist im Vergleich zu OSRM deutlich weniger anspruchsvoll". Reicht dann nicht einer? Die Darstellung im Antrag, warum es 3 Server braucht, ist mir etwas zu vage.
== Antwort 2 ==
Die Server sind im Vergleich günstiger, weil Valhalla weniger Ressourcen benötigt (vor allem Speicher). Das liegt daran, dass es sich um einen gekachelten Graphen handelt, nicht um einen Monolithen der im RAM liegt: es werden nur die Kacheln in RAM geladen die für das Routing benötigt werden (mit einstellbarem RAM cache, ähnlich wie Map Tiles). Wir könnten auch nur mit 2 Server operieren - einer um ständig Graphen neu zu bauen und nur einer der Requests beantwortet; alles auf einem Server wäre eher wenig sinnvoll. Allerdings sollte der dann nochmal größer sein als was wir jetzt angegeben haben um auch eine gewisse Last an gleichzeitigen Requests auszuhalten. Wir können auch noch mehr auf Skalierung eingehen wenn gewünscht, Kevin und sein früheres Mapbox Team haben die Mapbox Valhalla API aufgestellt, daher sehr gute Erfahrungswerte mit globalen Valhalla Instanzen; Tim Ellersiek und Nils Nolde haben für Jahre die globale OpenRouteService Infrastruktur an der Uni Heidelberg aufgebaut und betrieben. Daher besteht da aus unserer Sicht genug DevOps Erfahrung um das gut einschätzen zu können. Nicht ganz so wichtig, aber im Fall eines einzigen Request Servers wäre Valhalla dann auch nicht ausfallsicher.


== Frage 3 ==
== Frage 3 ==

Version vom 30. September 2021, 08:03 Uhr

Förderantrag

Wer stellt den Antrag?

Der Antrag wird gestellt von der GIS-Software-Schmiede GIS-OPS aus Berlin/Bonn (Nils Nolde & Timothy Ellersiek) sowie Valhalla Routing Contributors (z.B. Lead Engineer Kevin Kreiser & Nils Nolde) und vielen Interessierten seitens der Valhalla Community. Zum Hintergrund: Mapzen, ähnlich zu Mapbox, hat vor ihrer Schließung, eine globale Valhalla Routing API für jedermann angeboten. Das Valhalla Repository auf Github (https://github.com/valhalla/valhalla) ist bis heute eine stark benutzte und gepflegte Codebase und seit 2019 Teil der Linux Foundation. Wir von GIS-OPS.com stellen einen Teil der aktiven Contributor und würden es durchaus begrüßen Valhalla als hoch-flexible Routing-API der Öffentlichkeit wieder zugänglich zu machen. Wir sind uns bewusst, dass das OSRM-Routing Backend bereits von der FossGIS finanziert wird. Mit dieser Initiative möchten wir hervorheben, dass die Flexibilität von Valhalla andere Anwendungen bedienen kann, die auf dynamische Costing-Modelle angewiesen sind, die innerhalb von Routing, Isochronen sowie Matrizen genutzt werden können.

Was soll gefördert werden?

Ähnlich zum OSRM-Routingserver sollen 3 Hetzner Instanzen gefördert werden. Dabei wird eine Instanz die OSM-Updates sowie Graphen-Generierung übernehmen während die beiden anderen Instanzen eine Fülle von Valhalla APIs und Profile (Fußgänger, HGV, Auto und Fahrrad) bereitstellen. Nutzungsbedingungen sowie Proxy-Settings können vom OSRM Setup übernommen werden. Wir würden uns die Server-Administration sowie OSM-Updates kümmern und ein geeignetes Monitoring implementieren. Dazu können wir uns auch gerne mit Michael und Robert (OSRM Routing Server) in Verbindung setzen.

Angebotene Services mit globaler Abdeckung:

  • Routing, detailreiche Isochronen sowie Distanzmatrizen
  • 4 bike Profile, motor scooter, pedestrian, car, motorbike, HGV, bus, taxi, HOV
  • Elevation-sensitives Routing

Welche Hardware Ausstattung benötigt der Server?

Die Hardwareausstattung ist im Vergleich zu OSRM deutlich weniger anspruchsvoll, da Valhalla nur einen Graphen für alle Profile verwendet. Es wird zwischen 32-64GB RAM mit 8 Kernen pro Server benötigt.

Welche Kosten entstehen?

EUR 195/Monat (plus einmalig EUR 195 Setup Kosten, gerade allerdings läuft ein Hetzner Setup Special, es fallen die Setup Kosten somit weg), gemäß Sonderbestimmungen Serverkostenförderung zunächst für 1 Jahr, danach Review. https://www.hetzner.com/dedicated-rootserver/ax51-nvme

Welchen Bezug hat das Projekt zu "Freier Software im Bereich GIS" und/oder "Freier Geodaten"?

Valhalla nutzt als Haupt-Datenquelle OpenStreetMap, um ein flexibles Routing anzubieten. Um Kanten mit Höheninformation anzureichern wird das Mapzen/Tilezen composite DEM genutzt das seit ein paar Jahren über Amazon’s Open Data Initiative verfügbar ist: https://registry.opendata.aws/terrain-tiles/. Valhalla bringt viele Features die in dem Umfang einzigartig sind unter FOSS Routern:

  • sehr ressourcenschonendes Framework, kann auf Mobiltelefonen & Infotainment Systemen laufen (z.Bsp. eingesetzt bei Tesla)
  • Berücksichtigung von live und historical traffic
  • Zeitabhängiges Routing berücksichtigt temporäre OSM Eigenschaften wie “restricted access”
  • Multimodalität mit ÖPNV & bike-sharing

Wo befindet sich das Repository des Quellcodes? Unter welcher URL kann man es klonen/auschecken?

https://github.com/valhalla/valhalla

Unter welcher Lizenz steht der Quellcode?

MIT-Lizenz

Wird der Server von anderer Seite gefördert?

Nein, allerdings wird Setup sowie Maintenance nachhaltig von uns übernommen. Darüberhinaus möchten wir die Website https://routing.openstreetmap.de/ (Quellcode: https://github.com/fossgis-routing-server/osrm-frontend) um die Valhalla-Logik erweitern, damit das Frontend mit beiden API’s (OSRM + Valhalla) kommunizieren kann.

Welche Konsequenzen hat eine Förderung/Nichtförderung?

Eine Förderung würde helfen Valhalla als starkes Open Source Produkt weiterhin zu verbessern. Wir erhoffen uns es für neue Nutzer attraktiv zu machen, um somit auch Feedback auf GitHub zu gewinnen, die Schnittstellen weiterhin zu verbessern und eine lebhafte Community zu wahren.

Fragen und Antworten zum Antrag

Frage 1

Mir ist nicht ganz klar, wozu diese Server dienen sollen. Geht es um Hilfe bei der Entwicklung (Dev/Test-System), ist das mehr als Demo gedacht, oder geht es darum das wirklich als Produktivsystem zu nutzen?

Antwort 1

Die Valhalla API soll als öffentlicher Dienst zur Verfügung gestellt werden. Ähnlich zu Nominatim oder andere freie Geodienste, kann die Schnittstelle auch in Produktivsystemen eingesetzt werden. Wir würden dabei, ähnlich wie der OSRM-Routing Server, ein Ratelimiting implementieren. Es geht hierbei nicht um die Entwicklung eines Dev- oder Testsystems. Wir möchten mit diesem Vorhaben möchten wir hervorheben, dass Valhalla ein flexibles Costing Framework besitzt. Im Vergleich zu Routing Frameworks, die auf Contraction Hierarchies bauen (wie beispielsweise OSRM) und aus Preprocessing Gründen keine dynamischen Faktoren bei der Routenfindung erlauben (dafür sehr gut skalieren), erlaubt Valhalla dynamische Anpassungen, weil der Graph alle benötigten OSM-Attribute auf den Kanten abspeichert. Dies bedeutet letztendlich, dass in der runtime durch Mitgabe von bestimmten Argumenten im HTTP POST Request Einfluss auf die Route genommen werden kann. Als klassisches Beispiel bietet Valhalla die Möglichkeit Grenzübertritte zu vermeiden (z.Bsp. aus Visa Gründen), oder alle möglichen Penalties für bestimmte Attribute zu setzen wie zum Beispiel “tolls”, siehe https://github.com/valhalla/valhalla/blob/master/docs/api/turn-by-turn/api-reference.md#automobile-and-bus-costing-options. Wir möchten mit dieser Initiative auch den Bekanntheitsgrad erhöhen damit dieses, unserer Meinung nach sehr schützenswürdige, Projekt auch in Zukunft kräftig weiterentwickelt werden kann. Mit größerer Reichweite steigt idR auch die Zahl der Contributor.

Frage 2

Damit einher geht auch die Frage, warum gerade drei Server? Im Antrag steht "Die Hardwareausstattung ist im Vergleich zu OSRM deutlich weniger anspruchsvoll". Reicht dann nicht einer? Die Darstellung im Antrag, warum es 3 Server braucht, ist mir etwas zu vage.

Antwort 2

Die Server sind im Vergleich günstiger, weil Valhalla weniger Ressourcen benötigt (vor allem Speicher). Das liegt daran, dass es sich um einen gekachelten Graphen handelt, nicht um einen Monolithen der im RAM liegt: es werden nur die Kacheln in RAM geladen die für das Routing benötigt werden (mit einstellbarem RAM cache, ähnlich wie Map Tiles). Wir könnten auch nur mit 2 Server operieren - einer um ständig Graphen neu zu bauen und nur einer der Requests beantwortet; alles auf einem Server wäre eher wenig sinnvoll. Allerdings sollte der dann nochmal größer sein als was wir jetzt angegeben haben um auch eine gewisse Last an gleichzeitigen Requests auszuhalten. Wir können auch noch mehr auf Skalierung eingehen wenn gewünscht, Kevin und sein früheres Mapbox Team haben die Mapbox Valhalla API aufgestellt, daher sehr gute Erfahrungswerte mit globalen Valhalla Instanzen; Tim Ellersiek und Nils Nolde haben für Jahre die globale OpenRouteService Infrastruktur an der Uni Heidelberg aufgebaut und betrieben. Daher besteht da aus unserer Sicht genug DevOps Erfahrung um das gut einschätzen zu können. Nicht ganz so wichtig, aber im Fall eines einzigen Request Servers wäre Valhalla dann auch nicht ausfallsicher.

Frage 3

Wer führt dieses Projekt und wie stehen die Antragsteller zu diesem Projekt? Das war ja mal ein Mapzen-Projekt, dann hat Mapbox die Entwickler alle übernommen. Sollte dann nicht Mapbox solche Server betreiben? Oder die Linux Foundation, die das Projekt ja angeblich "übernommen" hat, was auch immer das bedeuten soll. Da hätte ich gerne schon etwas mehr Infos zur Struktur des Projekts.

Frage 4

Im Antrag stehen als Features "Berücksichtigung von live und historical traffic" und "Multimodalität mit ÖPNV & bike-sharing" als Features. Woher kommen die Daten dazu? Aus OSM ja nun sicher nicht...

Entscheidung