Cuprins

Introducere

Această pagină conține toate informațiile necesare dezvoltatorilor pentru a contribui la Platforma Hotmaps sau pentru a înțelege cum funcționează.

To Top

Integrarea setului de date

Integrarea noilor seturi de date publice este gestionată după cum urmează:

  1. seturile de date trebuie împinse într-un depozit git ( Adăugați seturile de date pe GitLab )
  2. în fiecare seară, un script integrează seturile de date noi / actualizate pe platforma DEV
  3. dacă totul a funcționat bine, setul de date este acum disponibil pe platforma DEV, iar dezvoltatorii îl pot integra în codul lor
  4. Odată ce codarea este terminată, noile caracteristici sunt adăugate pe platforma de producție printr-o nouă versiune

Integrarea datelor

Dacă un set de date nu reușește în timpul integrării, se creează o problemă pe Taiga (platforma de gestionare a proiectelor). Problema arată eroarea apărută, iar dezvoltatorul ar trebui să o remedieze și să-și împingă din nou lucrarea către Git, astfel încât scriptul să poată încerca să-l integreze din nou în seara următoare.

Codul sursă al scriptului de integrare este disponibil la acest link: Integrare date

To Top

Adăugați seturile de date pe GitLab

Pentru a adăuga seturi de date pe lista de seturi de date publice, acestea trebuie să fie împinse într-un nou depozit Git pe GitLab. Iată organizația GitLab în care seturile de date ar trebui împinse: Seturi de date pe GitLab .

O dată pe zi, depozitele sunt verificate pentru confirmări noi și integrate, dacă da. Procesul de integrare verifică dacă datele sunt conforme cu specificația sau nu.

Iată specificația: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lista principalelor depozite

Codul aplicației se află pe GitHub în cadrul organizației Hotmaps . Această organizație deține mai multe depozite

  • Hotmaps-toolbox-client conține frontendul aplicației noastre. Este un proiect Angular (JavaScript)
  • Hotmaps-toolbox-service conține API-ul pentru aplicația noastră. Se bazează pe Flask (Python)
  • modulul de calcul de bază este șablonul de bază pe care îl puteți utiliza pentru a crea propriile module de calcul pentru Hotmaps
  • o listă de module de calcule

To Top

Cum să contribuiți la cod

Dacă doriți să adăugați un cod la Hotmaps aveți două posibilități: dacă doriți să actualizați interfața sau backend-ul direct, trebuie să modificați clientul sau depozitul de servicii al casetei de instrumente. Dacă doriți să adăugați propriul modul de calcul, vă puteți crea propriul depozit urmând readme-ul depozitului base_calculation_module

Dacă doriți să efectuați unele lucrări pe depozitul Git, vă rugăm să nu lucrați direct cu filiala principală. Creați o ramură nouă din ramura de dezvoltare, faceți-vă munca pe această ramură și când caracteristica dvs. este testată, puteți îmbina munca cu ramura de dezvoltare așa cum se arată în graficul următor.

Git_workflow

Pentru a trimite ceva către un depozit Hotmaps, trebuie să fiți membru al echipei Hotmaps, dacă nu sunteți, puteți efectua un instrument al instrumentului nostru pentru a vă dezvolta propriul instrument.

Puteți găsi mai multe informații despre cum să lucrați în aceste documente:

To Top

Descrierea infrastructurii IT

ReverseProxy_architecture_latest

Toate serviciile și componentele sunt utilizate prin propriul container Docker. Toate aceste containere sunt definite într-un singur fișier docker-compose. Imaginea de mai sus reprezintă arhitectura IT a Hotmaps.

Unele organizații partenere au limitat comunicarea doar la portul 80. Pentru a evita problemele cauzate de această limitare, s-a făcut crearea unui proxy invers. Acest proxy invers oferă un singur punct de intrare și apoi distribuie cererea trimisă de client către serviciul în cauză. Proxy-ul invers este compus din trei componente:

  1. Server proxy invers: servește ca punct de intrare unic și distribuie cererile către serviciile potrivite.
  2. Proxy-gen: este un serviciu care mapează automat toate serviciile în proxy invers. Astfel, nu este necesar să adăugați manual un serviciu nou la configurația proxy
  3. permite-criptare: este un serviciu care permite utilizarea protocolului SSL. Este necesar pentru a activa protocolul https. Certificatele SSL sunt semnate de o adresă de e-mail configurată în acest serviciu.

Există trei rețele:

  • hotmaps_nginx permite ca proxy-ul invers să comunice cu API-ul, frontend-ul și GeoServer-ul. Permite în principal distribuirea unei cereri către serviciul corect între cele trei.
  • hotmaps_backend permite comunicarea între toate componentele backend-ului: API, frontend, GeoServer și baza de date PostgreSQL.
  • hotmaps_cm-net permite comunicarea între fiecare modul de calcul și API.

Fiecare modul de calcul are propriul container Docker.

To Top

Aleargă cu Docker

Hotmaps utilizează Docker software și Docker-Compose instrument pentru a gestiona containere. Un fișier docker-compose.yml conține întreaga configurație a arhitecturii Docker (configurarea containerelor, rețelelor, linkurilor, ...). Acest lucru permite rularea containerelor cu o singură comandă simplă:

 docker-compose up

Există mai multe despre docker-compose pe site-ul Docker: compunere referință linie de comandă și compunere referință fișier .

Există un singur container care este rulat separat de altele: este baza de date, deoarece trebuie să rămână activ tot timpul. De aceea nu se află în fișierul de configurare docker-compose.

To Top

Infrastructura serverului

Infrastructură

Pentru moment, serverul este găzduit la HES-SO din Elveția. Există 2 mașini disponibile: una pentru dezvoltare (dezvoltare și testare) și una pentru producție (cutia de instrumente propriu-zisă, disponibilă la www.hotmaps.eu ).

Ambele mașini au aceeași specificație:

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

Performanţă

Rulăm frecvent teste de performanță pe serverul de dezvoltare pentru a garanta o anumită cantitate de utilizatori concurenți.

De exemplu, mai jos sunt rezultatele primei versiuni beta comparativ cu testele de lansare viitoare. Noua versiune include unele îmbunătățiri ale performanței.

Acest exemplu arată testele de performanță ale utilizatorilor concurenți care utilizează aceeași funcție: „curba duratei pentru selectarea hectarului”. Linia aldinată arată limita în care serverul începe să ridice erori. Selecția hectarului este un bun exemplu, deoarece arată interogările care necesită cele mai multe resurse.

Lansare beta din martie 2019

| Număr de utilizatori simulati | Timp mediu | Median | Timp maxim | Timp minim | Procentul de erori | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Lansare finală (august 2020)

| Număr de utilizatori simulati | Timp mediu | Median | Timp maxim | Timp minim | Procentul de erori | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

CITEȘTE-MĂ

Citește-mă

To Top

Cum se definesc indicatorii

Definiția indicatorului

To Top

Cum se citează

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, în Hotmaps Wiki, Secțiunea pentru dezvoltatori (septembrie 2020)

To Top

Autori și recenzori

Această pagină a fost scrisă de Daniel Hunacek, Lucien Zuber și Matthieu Dayer ( HES-SO ).

☑ Această pagină a fost revizuită de Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licență

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

Licență internațională Creative Commons Attribution 4.0

Această lucrare este licențiată sub o licență internațională Creative Commons CC BY 4.0.

Identificator licență SPDX: CC-BY-4.0

Text-licență: https://spdx.org/licenses/CC-BY-4.0.html

To Top

Confirmare

Dorim să transmitem cea mai profundă apreciere pentru Proiectul Hotmaps Horizon 2020 (Acordul de subvenționare numărul 723677), care a furnizat finanțarea pentru realizarea prezentei investigații

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)* Slovak* Slovenian* Swedish*

* machine translated