Sadržaj

Uvod

Ova stranica sadrži sve informacije potrebne programerima da doprinesu Hotmaps platformi ili da razumiju kako ona funkcionira.

To Top

Integracija skupa podataka

Integracija novih javnih skupova podataka obrađuje se na sljedeći način:

  1. skupovi podataka moraju se gurnuti u git spremište ( dodajte svoje skupove podataka na GitLab )
  2. svake večeri skripta integrira nove / ažurirane skupove podataka u DEV platformu
  3. ako je sve funkcioniralo dobro, skup podataka sada je dostupan na DEV platformi i programeri ga mogu integrirati u svoj kod
  4. Nakon što je kodiranje završeno, nove značajke dodaju se na produkcijsku platformu kroz novo izdanje

Integracija podataka

Ako skup podataka zakaže tijekom integracije, na Taigi (platforma za upravljanje projektima) stvara se problem. Problem prikazuje pogrešku koja se pojavila i programer bi je trebao ispraviti i ponovno poslati svoj rad u Git kako bi ga skripta pokušala integrirati sljedeće večeri.

Izvorni kod integracijske skripte dostupan je na ovoj poveznici: Integracija podataka

To Top

Dodajte svoje skupove podataka na GitLab

Da biste dodali skupove podataka na popis javnih skupova podataka, moraju se gurnuti u novo Git spremište na GitLabu. Evo GitLab organizacije u koju treba gurnuti skupove podataka : Skupovi podataka na GitLabu .

Jednom dnevno spremišta provjeravaju se ima li novih predavanja i integriraju se ako jesu. Proces integracije provjerava odgovaraju li podaci specifikaciji ili ne.

Evo specifikacije: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Popis glavnih spremišta

Kôd aplikacije nalazi se na GitHubu pod organizacijom Hotmaps . Ova organizacija posjeduje nekoliko spremišta

To Top

Kako dodati kôd

Ako želite dodati neki kôd na Hotmaps, imate dvije mogućnosti: ako želite izravno ažurirati sučelje ili pozadinu, morate izmijeniti spremište klijenta ili usluge alata. Ako želite dodati vlastiti modul za izračun, možete stvoriti vlastito spremište slijedeći readme spremišta base_calculation_module

Ako želite obaviti neki posao na Git spremištu, nemojte raditi izravno s glavnom granom. Stvorite novu granu od grane razvijanja, obavite svoj posao na ovoj grani i kada se testira vaša značajka, možete spojiti svoj rad s granom razvijanja, kao što je prikazano na sljedećem grafikonu.

Git_workflow

Da biste nešto gurnuli u neko spremište Hotmaps, morate biti član Hotmaps tima, ako niste, još uvijek možete izvršiti račvanje našeg alata za razvoj vlastitog alata.

Više informacija o načinu rada možete pronaći u ovim dokumentima:

To Top

Opis IT infrastrukture

ReverseProxy_architecture_latest

Sve usluge i komponente koriste se kroz vlastiti Docker spremnik. Svi su ti spremnici definirani u jednoj datoteci za sastavljanje dokerskih datoteka. Gornja slika predstavlja IT arhitekturu Hotmapsa.

Neke partnerske organizacije ograničile su komunikaciju samo na priključak 80. Da bi se izbjegli problemi uzrokovani ovim ograničenjem, napravljeno je stvaranje obrnutog proxyja. Ovaj obrnuti proxy nudi jednu ulaznu točku, a zatim distribuira zahtjev koji je kupac poslao dotičnoj usluzi. Obrnuti proxy sastoji se od tri komponente:

  1. Obrnuti proxy poslužitelj: služi kao jedinstvena ulazna točka i distribuira zahtjeve pravim službama.
  2. Proxy-gen: usluga je koja automatski preslikava sve usluge u obrnutom proxyju. Stoga nije potrebno ručno dodavati novu uslugu u konfiguraciju proxyja
  3. lets-encrypt: to je usluga koja omogućuje upotrebu SSL protokola. Potrebno je kako bi se aktivirao https protokol. SSL certifikati potpisani su adresom e-pošte konfiguriranom u ovoj usluzi.

Postoje tri mreže:

  • hotmaps_nginx omogućuje obrnutom proxyju da komunicira s API-jem, sučeljem i GeoServerom. Uglavnom omogućuje distribuciju zahtjeva ispravnoj službi među trojicom.
  • hotmaps_backend omogućuje komunikaciju između svih komponenti pozadine: API-ja, sučelja, GeoServera i baze podataka PostgreSQL.
  • hotmaps_cm-net omogućuje komunikaciju između svakog modula za izračunavanje i API-ja.

Svaki modul za izračun ima svoj Docker spremnik.

To Top

Trči s Dockerom

Hotmaps koristi Docker softver i Docker-Compose alat za upravljanje spremnicima. Datoteka docker-compose.yml sadrži cijelu konfiguraciju Dockerove arhitekture (konfiguracija spremnika, mreža, veza, ...). To omogućuje pokretanje spremnika jednom jednostavnom naredbom:

 docker-compose up

Na web mjestu Dockera nalazi se više informacija o docker-compose: Sastavi referencu naredbenog retka i Sastavi referencu datoteke .

Postoji samo jedan spremnik koji se pokreće odvojeno od ostalih: to je baza podataka, jer ona mora stalno raditi. Zbog toga nije u konfiguracijskoj datoteci docker-compose.

To Top

Poslužiteljska infrastruktura

Infrastruktura

Trenutno je poslužitelj hostiran na HES-SO u Švicarskoj. Na raspolaganju su 2 stroja: jedan za razvoj (razvoj i ispitivanje) i jedan za proizvodnju (stvarni set alata dostupan na www.hotmaps.eu ).

Oba stroja imaju iste specifikacije:

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

Izvođenje

Često izvodimo testove performansi na razvojnom poslužitelju kako bismo zajamčili određenu količinu istovremenih korisnika.

Kao primjer, dolje su rezultati prvog beta izdanja naspram budućih testova izdanja. Novo izdanje uključuje neka poboljšanja performansi.

Ovaj primjer prikazuje testove performansi istodobnih korisnika koji koriste istu funkciju: "krivulja trajanja za odabir hektara". Podebljana crta prikazuje ograničenje na kojem poslužitelj počinje stvarati pogreške. Odabir hektara dobar je primjer jer pokazuje upite koji zahtijevaju najviše resursa.

Beta izdanje ožujka 2019

| Nb simuliranih korisnika | Prosječno vrijeme | Medijan | Maksimalno vrijeme | Min. Vrijeme | Postotak pogrešaka | | -------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Konačno izdanje (kolovoz 2020)

| Nb simuliranih korisnika | Prosječno vrijeme | Medijan | Maksimalno vrijeme | Min. Vrijeme | Postotak pogrešaka | | -------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

PROČITAJ ME

Pročitaj me

To Top

Kako definirati pokazatelje

Definicija pokazatelja

To Top

Kako citirati

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, u Hotmaps Wiki, odjeljak za programere (rujan 2020.)

To Top

Autori i recenzenti

Ovu su stranicu napisali Daniel Hunacek, Lucien Zuber i Matthieu Dayer ( HES-SO ).

☑ Ovu je stranicu pregledao Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licenca

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

Creative Commons Attribution 4.0 međunarodna licenca

Ovo je djelo licencirano pod Creative Commons CC BY 4.0 međunarodnom licencom.

SPDX-identifikator licence: CC-BY-4.0

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

To Top

Priznanje

Željeli bismo izraziti našu najdublju zahvalnost projektu Horizon 2020 Hotmaps (Ugovor o dodjeli bespovratnih sredstava broj 723677), koji je osigurao financijska sredstva za provođenje ove istrage

To Top

This page was automatically translated. View in another language:

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

* machine translated