Förderanträge/Valhalla-Routingserver

Aus FOSSGIS Wiki
Zur Navigation springenZur Suche springen

Förderantrag[Bearbeiten | Quelltext bearbeiten]

Wer stellt den Antrag?[Bearbeiten | Quelltext bearbeiten]

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?[Bearbeiten | Quelltext bearbeiten]

Ä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?[Bearbeiten | Quelltext bearbeiten]

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?[Bearbeiten | Quelltext bearbeiten]

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"?[Bearbeiten | Quelltext bearbeiten]

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?[Bearbeiten | Quelltext bearbeiten]

https://github.com/valhalla/valhalla

Unter welcher Lizenz steht der Quellcode?[Bearbeiten | Quelltext bearbeiten]

MIT-Lizenz

Wird der Server von anderer Seite gefördert?[Bearbeiten | Quelltext bearbeiten]

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?[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Frage 1[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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 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 von einer diversen Community. Mit größerer Reichweite steigt idR auch die Zahl der Contributor. Außerdem wollen wir die Vorzüge von Valhalla hervorheben, z.Bsp. das flexible Costing Framework. 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.

Frage 2[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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.

Antwort 3[Bearbeiten | Quelltext bearbeiten]

Mapbox ist lediglich eine Firma die (dankenswerterweise, wohl auch mit Profit) Valhalla aktiv nutzt, vertreibt und ein paar Entwickler beschäftigt die Valhalla weiter entwickeln. Es arbeiten schon lange nicht mehr alle ursprünglichen Valhalla Autoren bei Mapbox (und einige haben es auch noch nie). Valhalla gehört rechtlich den Autoren wie in Github zu sehen ist in AUTHORS. Der Hauptautor und derzeitige “technische Lead” Kevin Kreiser, auch nicht mehr bei Mapbox, gehört zum Team der Antragsteller (und kann sogar sehr gut Deutsch), sowie Nils Nolde der ebenfalls zum engsten Maintainer Kreis gehört.

Frage 4[Bearbeiten | Quelltext bearbeiten]

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...

Antwort 4[Bearbeiten | Quelltext bearbeiten]

Tatsächlich war der Abschnitt nur dazu gedacht die (für FOSS) einzigartige Kombination von wichtigen Features hervorzuheben. Traffic (egal welche Form) wird vorerst nicht berücksichtigt werden können aus dem Grund den du genannt hast (nur proprietäre Datenquellen, OpenTraffic ist quasi nicht existent). Multimodalität ist zur Zeit leider noch an transit.land gebunden, welches wir nicht lokal hosten wollen. Wir sind aber dabei nativen GTFS Support zu integrieren in Valhalla (branch gibt es bereits). Wenn das implementiert ist, wäre es auch möglich für z.Bsp., zumindest manche, deutsche Ballungsräume Multimodalität über die beantragten Server bereitzustellen (ohne Server Upgrades versteht sich). Bike-sharing Daten sind bereits in OSM enthalten und benötigt keine zusätzlichen Datensätze in Valhalla.

Entscheidung[Bearbeiten | Quelltext bearbeiten]

Die Förderung wurde auf der FOSSGIS-Vorstandssitzung vom 19.10.2021 unter TOP 2 in abgewandelter Form beschlossen.

Der Vorstand beschließt die Förderung von zwei AX 41 Servern für ein Jahr.