Indholdsfortegnelse

Introduktion

Denne side indeholder alle de nødvendige oplysninger for udviklere til at bidrage til Hotmaps-platformen eller for at forstå, hvordan den fungerer.

To Top

Datasæt-integration

Integration af nye offentlige datasæt håndteres som følger:

  1. datasæt skal skubbes til et git-lager ( Tilføj dine datasæt på GitLab )
  2. hver aften integrerer et script de nye / opdaterede datasæt til DEV-platformen
  3. hvis alt fungerede godt, er datasættet nu tilgængeligt på DEV-platformen, og udviklere kan integrere det i deres kode
  4. Når kodningen er færdig, tilføjes de nye funktioner til produktionsplatformen gennem en ny udgivelse

dataintegration

Hvis et datasæt mislykkes under integration, oprettes et problem på Taiga (projektstyringsplatform). Problemet viser den rejste fejl, og udvikleren skal ordne den og igen skubbe sit arbejde til Git, så scriptet kan prøve at integrere det igen næste aften.

Kildekoden til integrationskriptet er tilgængelig på dette link: Dataintegration

To Top

Tilføj dine datasæt på GitLab

For at tilføje datasæt på listen over offentlige datasæt, skal de skubbes til et nyt Git-arkiv på GitLab. Her er GitLab-organisationen, hvor datasæt skal skubbes: Datasæt på GitLab .

Én gang om dagen kontrolleres depoterne for nye forpligtelser og integreres i bekræftende fald. Integrationsprocessen kontrollerer, om dataene er i overensstemmelse med specifikationen eller ej.

Her er specifikationen: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Liste over hovedlager

Applikationskoden findes på GitHub under Hotmaps-organisationen . Denne organisation ejer adskillige lagre

  • Hotmaps-toolbox-klient indeholder frontend af vores applikation. Det er et vinkelprojekt (JavaScript)
  • Hotmaps-toolbox-service indeholder API til vores applikation. Det er baseret på kolbe (Python)
  • Hotmaps-wiki er den Wiki, du læser i øjeblikket
  • base-beregningsmodul er den grundlæggende skabelon, du kan bruge til at oprette dine egne beregningsmoduler til Hotmaps
  • en liste over beregningsmoduler

To Top

Hvordan man bidrager med kode

Hvis du vil tilføje nogle kode til Hotmaps, har du to muligheder: Hvis du vil opdatere grænsefladen eller backend direkte, skal du ændre klientens eller servicelageret i værktøjskassen. Hvis du vil tilføje dit eget beregningsmodul, kan du oprette dit eget depot ved at følge readme i bas_calculation_module repository

Hvis du vil udføre noget arbejde på Git-arkivet, skal du ikke arbejde direkte med mastergrenen. Opret en ny gren fra udviklingsgrenen, udfør dit arbejde med denne gren, og når din funktion er testet, kan du flette dit arbejde med udviklingsgrenen som vist i følgende graf.

git_workflow

For at skubbe noget til noget Hotmaps-lager skal du være medlem af Hotmaps-teamet, hvis du ikke er det, er du stadig i stand til at udføre en gaffel af vores værktøj til at udvikle dit eget værktøj.

Du kan finde mere information om, hvordan du arbejder i disse dokumenter:

To Top

Beskrivelse af IT-infrastruktur

ReverseProxy_architecture_latest

Alle tjenester og komponenter bruges gennem deres egen Docker-container. Alle disse containere er defineret i en enkelt docker-komponere fil. Billedet ovenfor repræsenterer Hotmaps IT-arkitektur.

Nogle partnerorganisationer begrænsede kun kommunikation til port 80. For at undgå de problemer, der skyldes denne begrænsning, blev der oprettet en omvendt proxy. Denne omvendte proxy tilbyder et enkelt indgangspunkt og distribuerer derefter den anmodning, som kunden har sendt til den pågældende service. Den omvendte proxy består af tre komponenter:

  1. Omvendt proxyserver: den fungerer som et unikt indgangspunkt og distribuerer anmodninger til de rigtige tjenester.
  2. Proxy-gen: det er en service, der automatisk kortlægger alle tjenester i den omvendte proxy. Det er således ikke nødvendigt at tilføje en ny tjeneste manuelt til proxy-konfigurationen manuelt
  3. lets-encrypt: det er en tjeneste, der tillader brug af SSL-protokollen. Det er nødvendigt for at aktivere https-protokollen. SSL-certifikaterne underskrives af en e-mail-adresse, der er konfigureret i denne service.

Der findes tre netværk:

  • hotmaps_nginx tillader den omvendte proxy at kommunikere med api, frontend og geoserver. Det giver hovedsageligt mulighed for at distribuere en anmodning til den rigtige service blandt de tre.
  • hotmaps_backend tillader kommunikation mellem alle komponenter i backend: api, frontend, geoserver og PostgreSQL-databasen.
  • hotmaps_cm-net tillader kommunikation mellem hvert beregningsmodul og api.

Hvert beregningsmodul har sin egen Docker-container.

Kør med Docker

Hotmaps bruger Docker- software og Docker-Compose- værktøj til at administrere containere. En docker-compose.yml-fil indeholder hele konfigurationen af Docker-arkitekturen (konfiguration af containere, netværk, links, ...). Dette gør det muligt at køre containere med en enkel kommando:

 docker-compose up 

Der er mere om docker-compose på webisten til Docker: Compose kommandolinjereference og Compose file reference .

Der er kun en beholder, der køres separat fra andre: det er databasen, fordi den skal være op hele tiden. Derfor er det ikke i docker-komponere konfigurationsfilen.

Serverinfrastruktur

Infrastruktur

For øjeblikket er serveren vært hos HES-SO i Schweiz. Der er 2 maskiner tilgængelige: en til udvikling (udvikling og test) og en til produktion (den faktiske værktøjskasse, tilgængelig på www.hotmaps.eu ).

Begge maskiner har samme specifikation:

  • CPU: Intel Xeon E5-2680 v4 (8) @ 2,4 GHz)
  • RAM: 16 GB
  • HDD: 500 GB
  • OS: Ubutnu 16.04 LTS

Ydeevne

Vi kører ofte performancetests på udviklingsserveren for at garantere en vis mængde samtidige brugere.

Som et eksempel er nedenunder resultaterne af den første betaversion kontra de fremtidige frigivelsestest. Den nye udgivelse inkluderer nogle ydelsesforbedringer.

Dette eksempel viser ydelsestestene for samtidige brugere, der bruger den samme funktion: "varighedskurve for hektarudvælgelse". Den fed linie viser grænsen, hvor serveren begynder at rejse fejl. Valg af hektare er et godt eksempel, da det viser de forespørgsler, der kræver mest ressourcer.

Beta-udgivelse af marts 2019

| Nb af simulerede brugere | Gennemsnitstid | Median | Maks tid | Min tid | Procentdel af fejl | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 | 2936 | 2936 | 2936 | 0 | | 20 | 9329 | 9503 | 11778 | 6901 | 0 | | 50 | 22922 | 22713 | 33401 | 8661 | 0 | | 100 | 33302 | 32875 | 58257 | 4929 | 16 | | 200 | na | na | na | na | na | | 300 | na | na | na | na | na |

Fremtidig frigivelse på DEV (marts 2019)

| Nb af simulerede brugere | Gennemsnitstid | Median | Maks tid | Min tid | Procentdel af fejl | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 | 1802 | 1802 | 1802 | 0 | | 20 | 5289 | 2677 | 6873 | 2149 | 0 | | 50 | 10775 | 11274 | 17081 | 2577 | 0 | | 100 | 19807 | 20280 | 35142 | 3156 | 0 | | 200 | 37302 | 37575 | 69930 | 3381 | 0 | | 300 | 49091 | 57536 | 83578 | 2447 | 26 |

To Top

Sådan defineres indikatorer

Indikator Definiton

To Top

Referencer

To Top

Sådan citeres

To Top

Forfattere og korrekturlæsere

Forfattere:

  • Daniel Hunacek
  • Lucien Zuber
  • Matthieu Dayer

anmeldere:

To Top

Anerkendelse

Vi vil gerne overbringe vores dybeste forståelse til Horizon 2020 Hotmaps-projektet (tilskudsaftale nr. 723677), som gav finansieringen til at gennemføre den nuværende undersøgelse

To Top

This page was automatically translated. View in another language:

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

*: machine translated