Índice

Introdução

Esta página contém todas as informações necessárias para que os desenvolvedores contribuam com a Plataforma Hotmaps ou entendam como ela está funcionando.

To Top

Integração do conjunto de dados

A integração de novos conjuntos de dados públicos é tratada da seguinte forma:

  1. conjuntos de dados devem ser enviados para um repositório git ( adicione seus conjuntos de dados no GitLab )
  2. todas as noites, um script integra os conjuntos de dados novos / atualizados à plataforma DEV
  3. se tudo funcionou bem, o conjunto de dados agora está disponível na plataforma DEV e os desenvolvedores podem integrá-lo em seu código
  4. Depois que a codificação é concluída, os novos recursos são adicionados à plataforma de produção por meio de uma nova versão

Integração de dados

Se um conjunto de dados falhar durante a integração, um problema é criado no Taiga (plataforma de gerenciamento de projeto). O problema mostra o erro levantado e o desenvolvedor deve corrigi-lo e enviar novamente seu trabalho ao Git para que o script possa tentar integrá-lo novamente na noite seguinte.

O código-fonte do script de integração está disponível neste link: Integração de dados

To Top

Adicione seus conjuntos de dados no GitLab

Para adicionar conjuntos de dados na lista de conjuntos de dados públicos, eles devem ser enviados para um novo repositório Git no GitLab. Aqui está a organização GitLab onde os conjuntos de dados devem ser enviados: Conjuntos de dados no GitLab .

Uma vez por dia, os repositórios são verificados quanto a novos commits e integrados se forem. O processo de integração verifica se os dados estão em conformidade com a especificação ou não.

Aqui está a especificação: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Lista dos principais repositórios

O código do aplicativo está localizado no GitHub na organização Hotmaps . Esta organização possui vários repositórios

  • Hotmaps-toolbox-client contém a interface de nosso aplicativo. É um projeto Angular (JavaScript)
  • Hotmaps-toolbox-service contém a API para nosso aplicativo. É baseado em Flask (Python)
  • base-cálculo-módulo é o modelo básico que você pode usar para criar seus próprios módulos de cálculo para Hotmaps
  • uma lista de módulos de cálculos

To Top

Como contribuir com código

Se você quiser adicionar algum código a Hotmaps, você tem duas possibilidades: se quiser atualizar a interface ou o back-end diretamente, você deve modificar o cliente ou repositório de serviço da caixa de ferramentas. Se você deseja adicionar seu próprio módulo de cálculo, você pode criar seu próprio repositório seguindo o leia-me do repositório base_calculation_module

Se você deseja realizar algum trabalho no repositório Git, não trabalhe diretamente com o branch master. Crie uma nova ramificação a partir da ramificação de desenvolvimento, faça seu trabalho nesta ramificação e quando seu recurso for testado, você pode mesclar seu trabalho com a ramificação de desenvolvimento, conforme mostrado no gráfico a seguir.

Git_workflow

Para enviar algo para algum repositório Hotmaps, você precisa ser um membro da equipe Hotmaps; caso não seja, ainda será possível executar um fork de nossa ferramenta para desenvolver sua própria ferramenta.

Você pode encontrar mais informações sobre como trabalhar nestes documentos:

To Top

Descrição da infraestrutura de TI

ReverseProxy_architecture_latest

Todos os serviços e componentes são usados por meio de seu próprio contêiner Docker. Todos esses contêineres são definidos em um único arquivo docker-compose. A imagem acima representa a arquitetura de TI do Hotmaps.

Algumas organizações parceiras limitaram a comunicação à porta 80 apenas. Para evitar os problemas causados por esta limitação, foi feita a criação de um proxy reverso. Esse proxy reverso oferece um único ponto de entrada e, em seguida, distribui a solicitação enviada pelo cliente ao serviço em questão. O proxy reverso é composto por três componentes:

  1. Servidor proxy reverso: serve como um ponto de entrada exclusivo e distribui as solicitações para os serviços certos.
  2. Proxy-gen: é um serviço que mapeia automaticamente todos os serviços no proxy reverso. Assim, não é necessário adicionar manualmente um novo serviço à configuração do proxy
  3. lets-encrypt: é um serviço que permite a utilização do protocolo SSL. É necessário para ativar o protocolo https. Os certificados SSL são assinados por um endereço de e-mail configurado neste serviço.

Existem três redes:

  • hotmaps_nginx permite que o proxy reverso se comunique com a API, o frontend e o GeoServer. Ele permite principalmente distribuir uma solicitação ao serviço correto entre os três.
  • hotmaps_backend permite a comunicação entre todos os componentes do backend: API, frontend, GeoServer e banco de dados PostgreSQL.
  • hotmaps_cm-net permite a comunicação entre cada módulo de cálculo e a API.

Cada módulo de cálculo tem seu próprio contêiner Docker.

To Top

Executar com Docker

HotMaps usa Docker software e Docker-Compose ferramenta para gerenciar recipientes. Um arquivo docker-compose.yml contém toda a configuração da arquitetura Docker (configuração de contêineres, redes, links, ...). Isso permite que os contêineres sejam executados com um comando simples:

 docker-compose up

Há mais informações sobre docker-compose no site do Docker: referência de linha de comando do Compose e referência de arquivo do Compose .

Existe apenas um contêiner que é executado separadamente dos outros: é o banco de dados porque ele precisa permanecer ativo o tempo todo. É por isso que não está no arquivo de configuração docker-compose.

To Top

Infraestrutura de servidor

A infraestrutura

No momento, o servidor está hospedado no HES-SO na Suíça. Existem 2 máquinas disponíveis: uma para desenvolvimento (desenvolvimento e teste) e uma para produção (a caixa de ferramentas real, disponível em www.hotmaps.eu ).

Ambas as máquinas têm a mesma especificação:

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

atuação

Freqüentemente executamos testes de desempenho no servidor de desenvolvimento para garantir uma certa quantidade de usuários simultâneos.

Como exemplo, abaixo estão os resultados da primeira versão beta em relação aos testes de versões futuras. A nova versão inclui algumas melhorias de desempenho.

Este exemplo mostra os testes de desempenho de usuários simultâneos usando a mesma função: "curva de duração para seleção de hectare". A linha em negrito mostra o limite onde o servidor começa a levantar erros. A seleção de hectares é um bom exemplo, pois mostra as consultas que requerem mais recursos.

Lançamento beta de março de 2019

| Nb de usuários simulados | Tempo médio | Mediana | Tempo máximo | Tempo mínimo | Porcentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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 |

Versão final (agosto de 2020)

| Nb de usuários simulados | Tempo médio | Mediana | Tempo máximo | Tempo mínimo | Porcentagem de erros | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 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

LEIA-ME

Leia-me

To Top

Como definir indicadores

Definição de Indicador

To Top

Como citar

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, in Hotmaps Wiki, Developers Section (setembro de 2020)

To Top

Autores e revisores

Esta página foi escrita por Daniel Hunacek, Lucien Zuber e Matthieu Dayer ( HES-SO ).

☑ Esta página foi revisada por Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licença

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

Licença Creative Commons Atribuição 4.0 Internacional

Este trabalho está licenciado sob uma Licença Internacional Creative Commons CC BY 4.0.

SPDX-License-Identifier: CC-BY-4.0

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

To Top

Reconhecimento

Gostaríamos de transmitir o nosso mais profundo agradecimento ao Projeto Hotmaps Horizonte 2020 (Contrato de Subvenção número 723677), que forneceu o financiamento para realizar a presente investigação

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

* machine translated