Inhaltsverzeichnis

Einführung

Diese Seite enthält alle Informationen, die Entwickler benötigen, um zur Hotmaps-Plattform beizutragen oder um zu verstehen, wie sie funktioniert.

To Top

Datensatzintegration

Die Integration neuer öffentlicher Datensätze erfolgt wie folgt:

  1. Datensätze müssen in ein Git-Repository verschoben werden ( Fügen Sie Ihre Datensätze auf GitLab hinzu )
  2. Jede Nacht integriert ein Skript die neuen / aktualisierten Datensätze in die DEV-Plattform
  3. Wenn alles gut funktioniert hat, ist der Datensatz jetzt auf der DEV-Plattform verfügbar und kann von Entwicklern in ihren Code integriert werden
  4. Sobald die Codierung abgeschlossen ist, werden die neuen Funktionen durch eine neue Version zur Produktionsplattform hinzugefügt

Datenintegration

Wenn ein Datensatz während der Integration fehlschlägt, wird auf Taiga (Projektmanagementplattform) ein Problem erstellt. Das Problem zeigt den Fehler an und der Entwickler sollte ihn beheben und seine Arbeit erneut an Git senden, damit das Skript versuchen kann, ihn am nächsten Abend erneut zu integrieren.

Der Quellcode des Integrationsskripts ist unter folgendem Link verfügbar: Datenintegration

To Top

Fügen Sie Ihre Datensätze in GitLab hinzu

Um Datensätze zur Liste der öffentlichen Datensätze hinzuzufügen, müssen sie in ein neues Git-Repository in GitLab verschoben werden. Hier ist die GitLab-Organisation, in die Datensätze übertragen werden sollen: Datensätze in GitLab .

Einmal am Tag werden die Repositorys auf neue Commits überprüft und gegebenenfalls integriert. Der Integrationsprozess prüft, ob die Daten der Spezifikation entsprechen oder nicht.

Hier ist die Spezifikation: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Liste der Haupt-Repositorys

Der Code der Anwendung befindet sich auf GitHub unter der Hotmaps-Organisation . Diese Organisation besitzt mehrere Repositorys

To Top

Wie man Code beisteuert

Wenn Sie Hotmaps Code hinzufügen möchten, haben Sie zwei Möglichkeiten: Wenn Sie die Benutzeroberfläche oder das Backend direkt aktualisieren möchten, müssen Sie das Client- oder Service-Repository der Toolbox ändern. Wenn Sie Ihr eigenes Berechnungsmodul hinzufügen möchten, können Sie Ihr eigenes Repository erstellen, indem Sie der Readme-Datei des Repositorys base_calculation_module folgen

Wenn Sie Arbeiten am Git-Repository ausführen möchten, arbeiten Sie bitte nicht direkt mit dem Hauptzweig. Erstellen Sie einen neuen Zweig aus dem Entwicklungszweig, arbeiten Sie an diesem Zweig. Wenn Ihre Funktion getestet wurde, können Sie Ihre Arbeit mit dem Entwicklungszweig zusammenführen, wie in der folgenden Grafik dargestellt.

Git_workflow

Um etwas in ein Hotmaps-Repository zu verschieben, müssen Sie Mitglied des Hotmaps-Teams sein. Wenn dies nicht der Fall ist, können Sie dennoch einen Teil unseres Tools ausführen, um Ihr eigenes Tool zu entwickeln.

Weitere Informationen zur Arbeitsweise finden Sie in diesen Dokumenten:

To Top

Beschreibung der IT-Infrastruktur

ReverseProxy_architecture_latest

Alle Dienste und Komponenten werden über einen eigenen Docker-Container verwendet. Alle diese Container werden in einer einzigen Docker-Compose-Datei definiert. Das obige Bild zeigt die IT-Architektur von Hotmaps.

Einige Partnerorganisationen beschränkten die Kommunikation nur auf Port 80. Um die durch diese Einschränkung verursachten Probleme zu vermeiden, wurde ein Reverse-Proxy erstellt. Dieser Reverse-Proxy bietet einen einzigen Einstiegspunkt und verteilt dann die vom Kunden gesendete Anfrage an den betreffenden Dienst. Der Reverse Proxy besteht aus drei Komponenten:

  1. Reverse-Proxy-Server: Er dient als eindeutiger Einstiegspunkt und verteilt Anforderungen an die richtigen Dienste.
  2. Proxy-Gen: Dies ist ein Dienst, der automatisch alle Dienste im Reverse-Proxy zuordnet. Daher ist es nicht erforderlich, der Proxy-Konfiguration manuell einen neuen Dienst hinzuzufügen
  3. Lets-Encrypt: Dies ist ein Dienst, der die Verwendung des SSL-Protokolls ermöglicht. Dies ist erforderlich, um das https-Protokoll zu aktivieren. Die SSL-Zertifikate werden von einer in diesem Dienst konfigurierten E-Mail-Adresse signiert.

Es gibt drei Netzwerke:

  • Mit hotmaps_nginx kann der Reverse-Proxy mit der API, dem Frontend und dem GeoServer kommunizieren. Es ermöglicht hauptsächlich das Verteilen einer Anfrage an den richtigen Dienst unter den drei.
  • hotmaps_backend ermöglicht die Kommunikation zwischen allen Komponenten des Backends: API, Frontend, GeoServer und der PostgreSQL-Datenbank.
  • hotmaps_cm-net ermöglicht die Kommunikation zwischen den einzelnen Berechnungsmodulen und der API.

Jedes Berechnungsmodul verfügt über einen eigenen Docker-Container.

To Top

Mit Docker ausführen

Hotmaps verwendet die Docker- Software und das Docker-Compose- Tool zum Verwalten von Containern. Eine docker-compose.yml-Datei enthält die gesamte Konfiguration der Docker-Architektur (Konfiguration von Containern, Netzwerken, Links, ...). Dies ermöglicht die Ausführung von Containern mit einem einfachen Befehl:

 docker-compose up 

Weitere Informationen zu Docker-Compose finden Sie auf der Website von Docker: Compose-Befehlszeilenreferenz und Compose-Dateireferenz .

Es gibt nur einen Container, der getrennt von anderen ausgeführt wird: Es handelt sich um die Datenbank, da sie ständig aktiv bleiben muss. Aus diesem Grund befindet es sich nicht in der Docker-Compose-Konfigurationsdatei.

To Top

Serverinfrastruktur

Infrastruktur

Derzeit wird der Server auf der HES-SO in der Schweiz gehostet. Es stehen 2 Maschinen zur Verfügung: eine für die Entwicklung (Entwicklung und Test) und eine für die Produktion (die eigentliche Toolbox, verfügbar unter www.hotmaps.eu ).

Beide Maschinen haben die gleiche Spezifikation:

  • CPU: Intel Xeon E5-2680 v4 (8) bei 2,4 GHz)
  • RAM: 16 GB
  • Festplatte: 500 GB
  • Betriebssystem: Ubutnu 16.04 LTS

Performance

Wir führen häufig Leistungstests auf dem Entwicklungsserver durch, um eine bestimmte Anzahl gleichzeitiger Benutzer zu gewährleisten.

Im Folgenden finden Sie als Beispiel die Ergebnisse der ersten Beta-Version im Vergleich zu zukünftigen Release-Tests. Die neue Version enthält einige Leistungsverbesserungen.

Dieses Beispiel zeigt die Leistungstests von gleichzeitigen Benutzern mit derselben Funktion: "Dauer-Kurve für die Hektarauswahl". Die fette Linie zeigt die Grenze, an der der Server Fehler auslöst. Die Hektarauswahl ist ein gutes Beispiel, da sie die Abfragen zeigt, die die meisten Ressourcen erfordern.

Beta-Version vom März 2019

| Anzahl simulierter Benutzer Durchschnittliche Zeit | Median | Maximale Zeit | Min. Zeit | Prozentsatz der Fehler | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1042 | 1042 | 1042 | 1042 | 0 | | 20 | 3608 | 3858 | 4475 | 2156 | 0 | | 50 | 7337 | 7595 | 11791 | 1568 | 0 | | 100 | 13897 | 13644 | 24492 | 1875 | 0 | | 200 | 27135 | 26380 | 51967 | 3045 | 0 | | 300 | 41237 | 43083 | 73245 | 3223 | 10,67 |

Endgültige Veröffentlichung (August 2020)

| Anzahl simulierter Benutzer Durchschnittliche Zeit | Median | Maximale Zeit | Min. Zeit | Prozentsatz der Fehler | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1025 | 970 | 1151 | 956 | 0 | | 20 | 1671 | 1732 | 2085 | 1113 | 0 | | 50 | 3527 | 3622 | 5593 | 982 | 0 | | 100 | 6648 | 6764 | 11854 | 1118 | 0 | | 200 | 12904 | 12801 | 24163 | 1192 | 0 | | 300 | 19521 | 19382 | 38116 | 1060 | 0 |

To Top

LIESMICH

Liesmich

To Top

So definieren Sie Indikatoren

Indikator Definition

To Top

Wie zu zitieren

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, im Hotmaps-Wiki, Entwicklerbereich (September 2020)

To Top

Autoren und Rezensenten

Diese Seite wurde von Daniel Hunacek, Lucien Zuber und Matthieu Dayer ( HES-SO ) geschrieben.

☑ Diese Seite wurde von Mostafa Fallahnejad ( EEG - TU Wien ) überprüft.

To Top

Lizenz

Copyright © 2016-2020: Daniel Hunacek, Lucien Zuber und Matthieu Dayer

Creative Commons Namensnennung 4.0 Internationale Lizenz

Diese Arbeit unterliegt den Bestimmungen einer Creative Commons CC BY 4.0 International License.

SPDX-Lizenz-ID: CC-BY-4.0

Lizenztext: https://spdx.org/licenses/CC-BY-4.0.html

To Top

Wissen

Wir möchten dem Horizon 2020 Hotmaps-Projekt (Finanzhilfevereinbarung Nr. 723677), das die Mittel für die Durchführung der vorliegenden Untersuchung bereitstellte , unsere tiefste Anerkennung aussprechen

To Top

This page was automatically translated. View in another language:

English (original) Bulgarian* Czech* Danish* Greek* Spanish* Estonian* Finnish* French* Irish* Croatian* Hungarian* Italian* Lithuanian* Latvian* Maltese* Dutch* Polish* Portuguese (Portugal, Brazil)* Romanian* Slovak* Slovenian* Swedish*

* machine translated