Съдържание

Въведение

Тази страница съдържа цялата информация, необходима на разработчиците да допринесат за платформата Hotmaps или да разберат как работи.

To Top

Интегриране на набор от данни

Интегрирането на нови публични набори от данни се извършва по следния начин:

  1. наборите от данни трябва да бъдат изтласкани към git хранилище ( Добавете вашите набори от данни в GitLab )
  2. всяка вечер скрипт интегрира новите / актуализирани набори от данни към платформата DEV
  3. ако всичко работи добре, наборът от данни вече е достъпен на платформата DEV и разработчиците могат да го интегрират в своя код
  4. След като кодирането приключи, новите функции се добавят към производствената платформа чрез ново издание

Интегриране на данни

Ако даден набор от данни не успее по време на интеграцията, в Taiga (платформа за управление на проекти) се създава проблем. Проблемът показва възникналата грешка и разработчикът трябва да я поправи и да изпрати отново работата си към Git, за да може скриптът да се опита да я интегрира отново на следващата вечер.

Изходният код на скрипта за интеграция е достъпен на тази връзка: Интегриране на данни

To Top

Добавете вашите набори от данни в GitLab

За да добавите набори от данни в списъка с публични набори от данни, те трябва да бъдат преместени в ново хранилище на Git в GitLab. Ето организацията GitLab, където наборите от данни трябва да бъдат изтласкани: Набори от данни на GitLab .

Веднъж на ден хранилищата се проверяват за нови комити и се интегрират, ако е така. Процесът на интеграция проверява дали данните отговарят на спецификацията или не.

Ето спецификацията: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Списък на основните хранилища

Кодът на приложението се намира на GitHub под организацията Hotmaps . Тази организация притежава няколко хранилища

  • Hotmaps-toolbox-client съдържа интерфейса на нашето приложение. Това е Angular проект (JavaScript)
  • Hotmaps-toolbox-service съдържа API за нашето приложение. Базиран е на Flask (Python)
  • base-изчислителният модул е основният шаблон, който можете да използвате, за да създадете свои собствени изчислителни модули за Hotmaps
  • списък с модули за изчисления

To Top

Как да внесате код

Ако искате да добавите някакъв код към Hotmaps, имате две възможности: ако искате да актуализирате директно интерфейса или бекенда, трябва да модифицирате хранилището за клиенти или услуги на кутията с инструменти. Ако искате да добавите свой собствен модул за изчисление, можете да създадете свое собствено хранилище, като следвате readme на хранилището base_calculation_module

Ако искате да извършите някаква работа върху хранилището на Git, моля, не работете директно с главния клон. Създайте нов клон от клона за разработка, свършете работата си с този клон и когато вашата функция бъде тествана, можете да обедините работата си с клона за разработка, както е показано на следващата графика.

Git_workflow

За да избутате нещо в някое хранилище на Hotmaps, трябва да сте член на екипа на Hotmaps, ако не сте, все още можете да изпълните разклонение на нашия инструмент, за да разработите свой собствен инструмент.

Можете да намерите повече информация за това как да работите в тези документи:

To Top

Описание на ИТ инфраструктурата

ReverseProxy_architecture_latest

Всички услуги и компоненти се използват чрез собствен Docker контейнер. Всички тези контейнери са дефинирани в един файл за съставяне на докер. Изображението по-горе представлява ИТ архитектурата на Hotmaps.

Някои партньорски организации ограничиха комуникацията само до порт 80. За да се избегнат проблемите, причинени от това ограничение, беше направено създаването на обратен прокси сървър. Този обратен прокси предлага една входна точка и след това разпределя заявката, изпратена от клиента, до съответната услуга. Обратният прокси се състои от три компонента:

  1. Обратен прокси сървър: той служи като уникална входна точка и разпределя заявки до правилните услуги.
  2. Proxy-gen: това е услуга, която автоматично картографира всички услуги в обратния прокси сървър. Поради това не е необходимо ръчно да добавяте нова услуга към прокси конфигурацията
  3. lets-encrypt: това е услуга, която позволява използването на SSL протокола. Това е необходимо, за да активирате протокола https. SSL сертификатите се подписват от имейл адрес, конфигуриран в тази услуга.

Съществуват три мрежи:

  • hotmaps_nginx позволява на обратния прокси да комуникира с API, интерфейса и GeoServer. Основно позволява да се разпространи заявка до правилната служба между трите.
  • hotmaps_backend позволява комуникацията между всички компоненти на бекенда: API, интерфейс, GeoServer и базата данни PostgreSQL.
  • hotmaps_cm-net позволява комуникацията между всеки модул за изчисление и API.

Всеки модул за изчисление има свой собствен Docker контейнер.

To Top

Стартирайте с Docker

Hotmaps използва Docker софтуер и Docker-Съставете инструмент за управление на контейнери. Файлът docker-compose.yml съдържа цялата конфигурация на архитектурата на Docker (конфигуриране на контейнери, мрежи, връзки, ...). Това позволява стартирането на контейнери с една проста команда:

 docker-compose up

На уебсайта на Docker има повече за docker-compose: Създаване на препратка към командния ред и Препратка към файл за съставяне.

Има само един контейнер, който се изпълнява отделно от другите: това е базата данни, защото трябва да стои постоянно през цялото време. Ето защо го няма в конфигурационния файл на docker-compose.

To Top

Сървърна инфраструктура

Инфраструктура

За момента сървърът се хоства на HES-SO в Швейцария. Налични са 2 машини: една за разработка (разработване и тестване) и една за производство (действителната кутия с инструменти, достъпна на www.hotmaps.eu ).

И двете машини имат една и съща спецификация:

  • Процесор: Intel Xeon E5-2680 v4 (8) @ 2.4GHz)
  • RAM: 16 GB
  • HDD: 500GB
  • ОС: Ubutnu 16.04 LTS

производителност

Често изпълняваме тестове за производителност на сървъра за разработка, за да гарантираме определен брой едновременни потребители.

Като пример по-долу са резултатите от първата бета версия спрямо тестовете за бъдеща версия. Новата версия включва някои подобрения в производителността.

Този пример показва тестовете за производителност на едновременни потребители, използващи същата функция: "крива на продължителност за избор на хектар". Удебеленият ред показва лимита, при който сървърът започва да създава грешки. Изборът на хектар е добър пример, тъй като показва заявките, които изискват най-много ресурси.

Бета версия на март 2019

| Nb на симулирани потребители | Средно време | Медиана | Максимално време | Минимално време | Процент грешки | | -------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Окончателна версия (август 2020 г.)

| Nb на симулирани потребители | Средно време | Медиана | Максимално време | Минимално време | Процент грешки | | -------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

ПРОЧЕТИ МЕ

Прочети ме

To Top

Как да дефинираме показатели

Определение на индикатора

To Top

Как да цитирам

Даниел Хуначек, Люсиен Зубер, Матие Дейър, в Hotmaps Wiki, раздел за разработчици (септември 2020 г.)

To Top

Автори и рецензенти

Тази страница е написана от Daniel Hunacek, Lucien Zuber и Matthieu Dayer ( HES-SO ).

☑ Тази страница е прегледана от Мостафа Фалахнежад ( ЕЕГ - TU Wien ).

To Top

Разрешително

Авторско право © 2016-2020: Даниел Хуначек, Люсиен Зубер и Матие Дейър

Creative Commons Attribution 4.0 International License

Това произведение е лицензирано под Creative Commons CC BY 4.0 International License.

Идентификатор на SPDX-лиценз: CC-BY-4.0

Лиценз-текст: https://spdx.org/licenses/CC-BY-4.0.html

To Top

Признание

Бихме искали да изразим най-дълбоката си благодарност към проекта „Хоризонт 2020 ( Hotmaps Project) (Споразумение за безвъзмездна помощ № 723677), който осигури финансирането за извършване на настоящото разследване

To Top

This page was automatically translated. View in another language:

English (original) Czech* 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