Obsah

Úvod

Táto stránka obsahuje všetky informácie potrebné pre vývojárov, aby prispeli k platforme Hotmaps alebo aby pochopili, ako funguje.

To Top

Integrácia datasetu

Integrácia nových verejných súborov údajov sa rieši nasledovne:

  1. množiny údajov musia byť vložené do úložiska git ( pridajte svoje množiny údajov na GitLab )
  2. každú noc skript integruje nové / aktualizované súbory údajov do platformy DEV
  3. ak všetko fungovalo dobre, dátový súbor je teraz k dispozícii na platforme DEV a vývojári ho môžu integrovať do svojho kódu
  4. Po dokončení kódovania sú nové funkcie pridané na produkčnú platformu prostredníctvom nového vydania

Integrácia údajov

Ak počas integrácie zlyhá súbor údajov, vytvorí sa problém na platforme Taiga (platforma na správu projektov). Tento problém ukazuje vzniknutú chybu a vývojár by ju mal opraviť a znova tlačiť svoju prácu na Git, aby sa ju nasledujúci večer mohol skript pokúsiť znova integrovať.

Zdrojový kód integračného skriptu je k dispozícii na tomto odkaze: Integrácia údajov

To Top

Pridajte svoje súbory údajov na GitLab

Ak chcete pridať súbory údajov do zoznamu verejných súborov údajov, musia sa presunúť do nového úložiska Git na GitLab. Tu je organizácia GitLab, do ktorej by sa mali tlačiť súbory údajov: sady údajov na GitLabe .

Raz za deň sa v úložiskách skontroluje prítomnosť nových záväzkov a ak je to tak, integrujú sa. Proces integrácie kontroluje, či údaje zodpovedajú špecifikácii alebo nie.

Tu je špecifikácia: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Zoznam hlavných úložísk

Kód aplikácie sa nachádza na GitHub pod organizáciou Hotmaps . Táto organizácia vlastní niekoľko úložísk

To Top

Ako prispieť kódom

Ak chcete pridať nejaký kód do Hotmaps, máte dve možnosti: ak chcete priamo aktualizovať rozhranie alebo back-end, musíte upraviť klientske alebo servisné úložisko súboru nástrojov. Ak chcete pridať svoj vlastný výpočtový modul, môžete si vytvoriť svoje vlastné úložisko podľa readme úložiska base_calculation_module

Ak chcete vykonať nejaké práce v úložisku Git, nepracujte priamo s hlavnou vetvou. Vytvorte novú vetvu z vývojovej vetvy, urobte svoju prácu na tejto vetve a keď je vaša funkcia otestovaná, môžete zlúčiť svoju prácu s vývojovou vetvou, ako je znázornené v nasledujúcom grafe.

Git_workflow

Aby ste niečo posunuli do nejakého úložiska Hotmaps, musíte byť členom tímu Hotmaps, ak nie ste, stále môžete vykonať rozvetvenie nášho nástroja na vývoj vlastného nástroja.

Ďalšie informácie o tom, ako pracovať, nájdete v týchto dokumentoch:

To Top

Opis IT infraštruktúry

ReverseProxy_architecture_latest

Všetky služby a komponenty sa používajú prostredníctvom vlastného kontajnera Docker. Všetky tieto kontajnery sú definované v jednom súbore pre docker-compose. Obrázok vyššie predstavuje IT architektúru Hotmaps.

Niektoré partnerské organizácie obmedzili komunikáciu iba na port 80. Aby sa zabránilo problémom spôsobeným týmto obmedzením, bolo urobené vytvorenie reverzného proxy. Tento reverzný proxy server ponúka jediný vstupný bod a potom distribuuje požiadavku odoslanú zákazníkom príslušnej službe. Reverzný proxy sa skladá z troch zložiek:

  1. Reverzný proxy server: slúži ako jedinečný vstupný bod a distribuuje požiadavky do správnych služieb.
  2. Proxy-gen: je to služba, ktorá automaticky mapuje všetky služby v reverznom proxy. Nie je teda potrebné manuálne pridávať novú službu do konfigurácie proxy
  3. lets-encrypt: je to služba, ktorá umožňuje použitie protokolu SSL. Je to nevyhnutné na aktiváciu protokolu https. Certifikáty SSL sú podpísané e-mailovou adresou nakonfigurovanou v tejto službe.

Existujú tri siete:

  • hotmaps_nginx umožňuje spätnému proxy komunikovať s API, frontendom a GeoServerom. Umožňuje hlavne rozdeliť požiadavku na správnu službu medzi tieto tri.
  • hotmaps_backend umožňuje komunikáciu medzi všetkými komponentmi backendu: API, frontend, GeoServer a databázou PostgreSQL.
  • hotmaps_cm-net umožňuje komunikáciu medzi každým výpočtovým modulom a API.

Každý výpočtový modul má svoj vlastný kontajner Docker.

To Top

Behajte s Dockerom

Hotmaps používa Docker softvér a Docker-Compose nástroj pre správu kontajnerov. Súbor docker-compose.yml obsahuje celú konfiguráciu architektúry Docker (konfigurácia kontajnerov, sietí, odkazov, ...). Toto umožňuje spúšťanie kontajnerov jedným jednoduchým príkazom:

 docker-compose up

Na webe Dockeru sa nachádza viac informácií o docker-compose: Compose reference-line reference and Compose file reference .

Existuje iba jeden kontajner, ktorý je spustený oddelene od ostatných: je to databáza, pretože musí zostať neustále hore. Preto sa nenachádza v konfiguračnom súbore docker-compose.

To Top

Serverová infraštruktúra

Infraštruktúra

Momentálne je server hostený na serveri HES-SO vo Švajčiarsku. K dispozícii sú 2 stroje: jeden pre vývoj (vývoj a testovanie) a jeden pre produkciu (aktuálny súbor nástrojov, ktorý je k dispozícii na www.hotmaps.eu ).

Oba stroje majú rovnakú špecifikáciu:

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

Výkon

Na vývojovom serveri často prevádzkujeme testy výkonu, aby sme zaručili určité množstvo súbežných používateľov.

Ako príklad uvádzame nižšie výsledky prvého vydania beta verzie v porovnaní s testami budúcich vydaní. Nové vydanie obsahuje niektoré vylepšenia výkonu.

Tento príklad ukazuje výkonnostné testy súbežných používateľov používajúcich rovnakú funkciu: „krivka trvania pre výber hektárov“. Tučný riadok zobrazuje limit, kde server začína zvyšovať chyby. Dobrým príkladom je výber hektárov, ktorý zobrazuje dotazy, ktoré vyžadujú najviac zdrojov.

Beta vydanie z marca 2019

| Počet simulovaných používateľov Priemerný čas | Medián | Maximálny čas | Minimálny čas | Percento chýb | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Konečné vydanie (august 2020)

| Počet simulovaných používateľov Priemerný čas | Medián | Maximálny čas | Minimálny čas | Percento chýb | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

PREČÍTAJ MA

Prečítaj ma

To Top

Ako definovať ukazovatele

Definícia indikátora

To Top

Ako citovať

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, Hotmaps Wiki, sekcia vývojárov (september 2020)

To Top

Autori a recenzenti

Túto stránku napísali Daniel Hunacek, Lucien Zuber a Matthieu Dayer ( HES-SO ).

☑ Túto stránku skontroloval Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licencia

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

Medzinárodná licencia Creative Commons Attribution 4.0

Toto dielo je licencované podľa medzinárodnej licencie Creative Commons CC BY 4.0.

Identifikátor licencie SPDX: CC-BY-4.0

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

To Top

Poďakovanie

Chceli by sme najhlbšie oceniť projekt Horizont 2020 Hotmaps (dohoda o grante č. 723677), ktorý poskytol finančné prostriedky na uskutočnenie tohto vyšetrovania.

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* Dutch* Polish* Portuguese (Portugal, Brazil)* Romanian* Slovenian* Swedish*

* machine translated