Inhoudsopgave

Invoering

Deze pagina bevat alle informatie die ontwikkelaars nodig hebben om bij te dragen aan het Hotmaps-platform of om te begrijpen hoe het werkt.

To Top

Dataset-integratie

De integratie van nieuwe openbare datasets wordt als volgt afgehandeld:

  1. datasets moeten naar een git-repository worden gepusht ( voeg uw datasets toe op GitLab )
  2. elke nacht integreert een script de nieuwe / bijgewerkte datasets met het DEV-platform
  3. als alles goed werkte, is de dataset nu beschikbaar op het DEV-platform en kunnen ontwikkelaars deze in hun code integreren
  4. Zodra het coderen is voltooid, worden de nieuwe functies via een nieuwe release aan het productieplatform toegevoegd

Gegevens integratie

Als een dataset tijdens de integratie mislukt, ontstaat er een probleem op Taiga (projectmanagementplatform). Het probleem toont de opgetreden fout en de ontwikkelaar moet het repareren en zijn werk opnieuw naar Git pushen, zodat het script kan proberen het de volgende avond opnieuw te integreren.

De broncode van het integratiescript is beschikbaar via deze link: Data-integratie

To Top

Voeg uw datasets toe op GitLab

Om datasets aan de lijst met openbare datasets toe te voegen, moeten ze naar een nieuwe Git-repository op GitLab worden gepusht. Hier is de GitLab-organisatie waar datasets naartoe moeten worden gepusht: Datasets op GitLab .

Eenmaal per dag worden de repositories gecontroleerd op nieuwe commits en zo ja, geïntegreerd. Het integratieproces controleert of de gegevens voldoen aan de specificatie of niet.

Hier is de specificatie: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lijst met de belangrijkste opslagplaatsen

De code van de applicatie bevindt zich op GitHub onder de Hotmaps-organisatie . Deze organisatie bezit verschillende repositories

  • Hotmaps-toolbox-client bevat de frontend van onze applicatie. Het is een Angular-project (JavaScript)
  • Hotmaps-toolbox-service bevat de API voor onze applicatie. Het is gebaseerd op Flask (Python)
  • base-berekening-module is de basis template die u kunt gebruiken om uw eigen berekening modules voor Hotmaps creëren
  • een lijst met rekenmodules

To Top

Hoe u code bijdraagt

Als je wat code aan Hotmaps wilt toevoegen, heb je twee mogelijkheden: als je de interface of de backend rechtstreeks wilt updaten, moet je de client of service repository van de toolbox aanpassen. Als u uw eigen rekenmodule wilt toevoegen, kunt u uw eigen repository aanmaken door de readme van de base_calculation_module repository te volgen

Als je wat werk aan de Git-repository wilt doen, werk dan niet rechtstreeks met de master branch. Maak een nieuwe branch aan vanuit de Develop branch, doe je werk aan deze branch en als je feature getest is, kun je je werk samenvoegen met de Develop branch zoals getoond in de volgende grafiek.

Git_workflow

Om iets naar een Hotmaps-repository te pushen, moet je lid zijn van het Hotmaps-team, als je dat niet bent, kun je nog steeds een fork van onze tool uitvoeren om je eigen tool te ontwikkelen.

In deze documenten vindt u meer informatie over het werken:

To Top

Beschrijving van IT-infrastructuur

ReverseProxy_architecture_latest

Alle services en componenten worden gebruikt via hun eigen Docker-container. Al deze containers worden gedefinieerd in een enkel docker-compose-bestand. De afbeelding hierboven geeft de IT-architectuur van Hotmaps weer.

Sommige partnerorganisaties hebben de communicatie beperkt tot poort 80. Om de problemen te vermijden die door deze beperking worden veroorzaakt, werd een reverse proxy gemaakt. Deze omgekeerde proxy biedt één toegangspunt en distribueert vervolgens het verzoek van de klant naar de betrokken dienst. De omgekeerde proxy bestaat uit drie componenten:

  1. Omgekeerde proxyserver: deze dient als een uniek toegangspunt en distribueert verzoeken naar de juiste services.
  2. Proxy-gen: het is een service die automatisch alle services in de reverse proxy in kaart brengt. Het is dus niet nodig om handmatig een nieuwe service aan de proxyconfiguratie toe te voegen
  3. lets-encrypt: het is een dienst die het gebruik van het SSL-protocol mogelijk maakt. Het is nodig om het https-protocol te activeren. De SSL-certificaten zijn ondertekend door een e-mailadres dat in deze service is geconfigureerd.

Er zijn drie netwerken:

  • hotmaps_nginx staat de reverse proxy toe om te communiceren met de API, de frontend en de GeoServer. Het maakt het voornamelijk mogelijk om een verzoek naar de juiste service onder de drie te verdelen.
  • hotmaps_backend maakt de communicatie mogelijk tussen alle componenten van de backend: API, frontend, GeoServer en de PostgreSQL-database.
  • hotmaps_cm-net maakt de communicatie mogelijk tussen elke rekenmodules en de API.

Elke rekenmodule heeft zijn eigen Docker-container.

To Top

Ren met Docker

Hotmaps gebruikt Docker- software en Docker-Compose- tool om containers te beheren. Een docker-compose.yml-bestand bevat de volledige configuratie van de Docker-architectuur (configuratie van containers, netwerken, koppelingen, ...). Hierdoor kunnen containers worden uitgevoerd met één simpele opdracht:

 docker-compose up

Er is meer over docker-compose op de website van Docker: Compose command-line reference en Compose file reference .

Er is maar één container die los van de andere wordt uitgevoerd: het is de database omdat deze altijd up-to-date moet blijven. Daarom staat het niet in het configuratiebestand docker-compose.

To Top

Serverinfrastructuur

Infrastructuur

Momenteel wordt de server gehost bij de HES-SO in Zwitserland. Er zijn 2 machines beschikbaar: één voor ontwikkeling (ontwikkeling en testen) en één voor productie (de eigenlijke toolbox, beschikbaar op www.hotmaps.eu ).

Beide machines hebben dezelfde specificatie:

  • CPU: Intel Xeon E5-2680 v4 (8) bij 2,4 GHz)
  • RAM: 16 GB
  • Harde schijf: 500 GB
  • Besturingssysteem: Ubutnu 16.04 LTS

Prestatie

We voeren regelmatig prestatietests uit op de ontwikkelserver om een bepaald aantal gelijktijdige gebruikers te garanderen.

Hieronder staan als voorbeeld de resultaten van de eerste bètaversie versus toekomstige releasetests. De nieuwe release bevat enkele prestatieverbeteringen.

Dit voorbeeld toont de prestatietests van gelijktijdige gebruikers die dezelfde functie gebruiken: "duurcurve voor hectareselectie". De vetgedrukte regel geeft de limiet aan waar de server fouten begint te genereren. Hectare-selectie is een goed voorbeeld, omdat het de zoekopdrachten laat zien waarvoor de meeste middelen nodig zijn.

Bètaversie van maart 2019

| Aantal gesimuleerde gebruikers | Gemiddelde tijd | Mediaan | Max tijd | Min tijd | Percentage fouten | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Definitieve release (augustus 2020)

| Aantal gesimuleerde gebruikers | Gemiddelde tijd | Mediaan | Max tijd | Min tijd | Percentage fouten | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

LEESMIJ

Leesmij

To Top

Hoe indicatoren te definiëren

Indicator Definitie

To Top

Hoe te citeren

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, in Hotmaps Wiki, sectie ontwikkelaars (september 2020)

To Top

Auteurs en recensenten

Deze pagina is geschreven door Daniel Hunacek, Lucien Zuber en Matthieu Dayer ( HES-SO ).

☑ Deze pagina is beoordeeld door Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licentie

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

Creative Commons Attribution 4.0 Internationale licentie

Dit werk is gelicentieerd onder een Creative Commons CC BY 4.0 internationale licentie.

SPDX-licentie-ID: CC-BY-4.0

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

To Top

Erkenning

We willen onze diepste waardering uitspreken voor het Horizon 2020 Hotmaps-project (subsidieovereenkomst nummer 723677), dat de financiering heeft verstrekt om het huidige onderzoek uit te voeren

To Top

This page was automatically translated. View in another language:

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

* machine translated