Obsah

Úvod

Tato stránka obsahuje všechny informace, které vývojáři potřebují, aby přispěli k platformě Hotmaps nebo aby pochopili, jak funguje.

To Top

Integrace datové sady

Integrace nových veřejných datových sad se zpracovává následovně:

  1. datové sady musí být přeneseny do úložiště git ( přidejte své datové sady na GitLab )
  2. každou noc skript integruje nové / aktualizované datové sady do platformy DEV
  3. pokud vše fungovalo dobře, datová sada je nyní k dispozici na platformě DEV a vývojáři ji mohou integrovat do svého kódu
  4. Jakmile je kódování dokončeno, nové funkce jsou přidány do produkční platformy prostřednictvím nového vydání

Integrace dat

Pokud během integrace selže datová sada, vytvoří se problém na platformě Taiga (platforma pro správu projektů). Problém ukazuje vzniklou chybu a vývojář by ji měl opravit a znovu zasunout svou práci na Git, aby se ji skript mohl příští večer pokusit znovu integrovat.

Zdrojový kód integračního skriptu je k dispozici na tomto odkazu: Integrace dat

To Top

Přidejte své datové sady na GitLab

Chcete-li přidat datové sady do seznamu veřejných datových sad, musí být přeneseny do nového úložiště Git na GitLabu. Tady je organizace GitLab, kam by se měly datové sady posílat : Datové sady na GitLabu .

Jednou denně jsou úložiště zkontrolována, zda neobsahují nové závazky, a pokud ano, jsou integrována. Proces integrace kontroluje, zda data odpovídají specifikaci nebo ne.

Zde je specifikace: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Seznam hlavních úložišť

Kód aplikace je umístěn na GitHub pod organizací Hotmaps . Tato organizace vlastní několik úložišť

  • Hotmaps-toolbox-client obsahuje rozhraní naší aplikace. Jedná se o úhlový projekt (JavaScript)
  • Hotmaps-toolbox-service obsahuje API pro naši aplikaci. Je založen na Flask (Python)
  • base-kalkulační modul je základní šablona, kterou můžete použít k vytvoření vlastních výpočtových modulů pro hotmapy
  • seznam modulů výpočtů

To Top

Jak přispět kódem

Pokud chcete přidat nějaký kód do Hotmaps, máte dvě možnosti: pokud chcete přímo aktualizovat rozhraní nebo back-end, musíte upravit klientské nebo servisní úložiště panelu nástrojů. Chcete-li přidat svůj vlastní výpočetní modul, můžete si vytvořit vlastní úložiště podle readme repozitáře base_calculation_module

Pokud chcete provést nějakou práci v úložišti Git, nepracujte přímo s hlavní větví. Vytvořte novou větev z vývojové větve, proveďte svou práci na této větvi a při testování vaší funkce můžete sloučit svou práci s vývojovou větví, jak je znázorněno v následujícím grafu.

Git_workflow

Aby bylo možné něco poslat do nějakého úložiště Hotmaps, musíte být členem týmu Hotmaps, pokud nejste, stále můžete provést vidličku našeho nástroje pro vývoj vlastního nástroje.

Další informace o tom, jak pracovat, najdete v těchto dokumentech:

To Top

Popis IT infrastruktury

ReverseProxy_architecture_latest

Všechny služby a komponenty se používají prostřednictvím vlastního kontejneru Docker. Všechny tyto kontejnery jsou definovány v jediném souboru ukotvitelného skládání. Obrázek výše představuje IT architekturu Hotmaps.

Některé partnerské organizace omezily komunikaci pouze na port 80. Aby se předešlo problémům způsobeným tímto omezením, bylo vytvořeno reverzní proxy. Tento reverzní proxy nabízí jediný vstupní bod a poté distribuuje požadavek zaslaný zákazníkem na příslušnou službu. Reverzní proxy se skládá ze tří složek:

  1. Reverzní proxy server: slouží jako jedinečný vstupní bod a distribuuje požadavky správným službám.
  2. Proxy-gen: je to služba, která automaticky mapuje všechny služby v reverzním proxy. Není tedy nutné ručně přidávat novou službu do konfigurace proxy serveru
  3. lets-encrypt: jedná se o službu, která umožňuje použití protokolu SSL. Je to nutné pro aktivaci protokolu https. Certifikáty SSL jsou podepsány e-mailovou adresou nakonfigurovanou v této službě.

Existují tři sítě:

  • hotmaps_nginx umožňuje reverznímu proxy komunikovat s API, frontendem a GeoServerem. Umožňuje hlavně distribuovat požadavek na správnou službu mezi tři.
  • hotmaps_backend umožňuje komunikaci mezi všemi komponenty backendu: API, frontend, GeoServer a databází PostgreSQL.
  • hotmaps_cm-net umožňuje komunikaci mezi jednotlivými výpočetními moduly a API.

Každý výpočetní modul má svůj vlastní Docker kontejner.

To Top

Běh s Dockerem

Hotmaps používá Docker software a Docker-Compose nástroj pro správu kontejnerů. Soubor docker-compose.yml obsahuje celou konfiguraci architektury Docker (konfigurace kontejnerů, sítí, odkazů, ...). To umožňuje spouštění kontejnerů jedním jednoduchým příkazem:

 docker-compose up

Na webu Dockeru je více o docker-compose: Compose reference na příkazový řádek a Compose file reference .

Existuje pouze jeden kontejner, který je spuštěn odděleně od ostatních: je to databáze, protože musí zůstat neustále vzhůru. Proto to není v konfiguračním souboru docker-compose.

To Top

Infrastruktura serveru

Infrastruktura

V tuto chvíli je server hostován na HES-SO ve Švýcarsku. K dispozici jsou 2 stroje: jeden pro vývoj (vývoj a testování) a jeden pro produkci (aktuální sada nástrojů, která je k dispozici na www.hotmaps.eu ).

Oba stroje mají stejnou specifikaci:

  • 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ývojovém serveru často provádíme testy výkonu, abychom zaručili určité množství souběžných uživatelů.

Níže uvádíme příklad výsledků první verze beta oproti testům budoucích verzí. Nové vydání obsahuje některá vylepšení výkonu.

Tento příklad ukazuje výkonnostní testy souběžných uživatelů používajících stejnou funkci: „křivka trvání pro výběr hektaru“. Tučný řádek ukazuje limit, kde server začíná zvyšovat chyby. Dobrým příkladem je výběr hektarů, který zobrazuje dotazy, které vyžadují nejvíce zdrojů.

Beta verze z března 2019

| Počet simulovaných uživatelů | Průměrná doba | Medián | Maximální čas | Minimální čas | Procento chyb | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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é vydání (srpen 2020)

| Počet simulovaných uživatelů | Průměrná doba | Medián | Maximální čas | Minimální čas | Procento chyb | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

PŘEČTĚTE SI

Číst. ME

To Top

Jak definovat ukazatele

Definice indikátoru

To Top

Jak citovat

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, v Hotmaps Wiki, sekce vývojářů (září 2020)

To Top

Autoři a recenzenti

Tuto stránku napsali Daniel Hunacek, Lucien Zuber a Matthieu Dayer ( HES-SO ).

☑ Tuto stránku zkontroloval Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licence

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

Mezinárodní licence Creative Commons Attribution 4.0

Tato práce podléhá licenci na základě mezinárodní licence Creative Commons CC BY 4.0.

SPDX-identifikátor licence: CC-BY-4.0

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

To Top

Potvrzení

Rádi bychom vyjádřili své nejhlubší uznání projektu Horizont 2020 Hotmaps (Grant Agreement number 723677), který poskytl finanční prostředky na provedení tohoto šetření

To Top

This page was automatically translated. View in another language:

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

* machine translated