Προγραμματιστές

Προγραμματιστές

Πίνακας περιεχομένων

Εισαγωγή

Αυτή η σελίδα περιέχει όλες τις πληροφορίες που απαιτούνται από τους προγραμματιστές για να συνεισφέρουν στην πλατφόρμα 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 περιέχει το μέτωπο της εφαρμογής μας. Πρόκειται για ένα γωνιακό έργο (JavaScript)
  • Η υπηρεσία Hotmaps-toolbox-service περιέχει το API για την εφαρμογή μας. Βασίζεται στο Flask (Python)
  • Το Hotmaps-wiki είναι το Wiki που διαβάζετε αυτήν τη στιγμή
  • βασική μονάδα υπολογισμού είναι το βασικό πρότυπο που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε τις δικές σας μονάδες υπολογισμού για τα Hotmaps
  • μια λίστα υπομονάδων υπολογισμού

To Top

Πώς να συμβάλλετε στον κώδικα

Αν θέλετε να προσθέσετε κάποιο κωδικό στα Hotmaps, έχετε δύο δυνατότητες: εάν θέλετε να ενημερώσετε απευθείας τη διεπαφή ή το backend, πρέπει να τροποποιήσετε τον αποθετήριο πελάτη ή υπηρεσία της εργαλειοθήκης. Αν θέλετε να προσθέσετε τη δική σας υπομονάδα υπολογισμού, μπορείτε να δημιουργήσετε το δικό σας αποθετήριο ακολουθώντας το readme του repository base_calculation_module

Εάν θέλετε να εκτελέσετε κάποια εργασία στο αποθετήριο Git, παρακαλούμε μην εργάζεστε άμεσα με τον κύριο κατάλογο. Δημιουργήστε ένα νέο υποκατάστημα από τον κλάδο ανάπτυξης, κάντε την εργασία σας σε αυτόν τον κλάδο και όταν δοκιμάζεται η λειτουργία σας, μπορείτε να συγχωνεύσετε την εργασία σας με το αναπτυσσόμενο υποκατάστημα ως εμφάνιση στο παρακάτω γράφημα.

git_workflow

Για να προωθήσετε κάτι σε κάποιο χώρο αποθήκευσης Hotmaps πρέπει να είστε μέλος της ομάδας Hotmaps, αν δεν είστε ακόμα σε θέση να εκτελέσετε μια πιρούνι του εργαλείου μας για να αναπτύξετε το δικό σας εργαλείο.

Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τον τρόπο εργασίας σε αυτά τα έγγραφα:

To Top

Περιγραφή της υποδομής πληροφορικής

ReverseProxy_architecture_latest

Όλες οι υπηρεσίες και τα εξαρτήματα χρησιμοποιούνται μέσω του δικού τους δοχείου Docker. Όλα αυτά τα δοχεία ορίζονται σε ένα αρχείο αρχείου docker-compose. Η παραπάνω εικόνα αντιπροσωπεύει την αρχιτεκτονική πληροφορικής των Hotmaps.

Ορισμένες οργανώσεις-εταίροι περιορίζουν την επικοινωνία μόνο στη θύρα 80. Για να αποφευχθούν τα προβλήματα που προκαλούνται από αυτόν τον περιορισμό, δημιουργήθηκε μια αντίστροφη εξουσιοδότηση. Αυτός ο αντιστρεπτός διακομιστής μεσολάβησης προσφέρει ένα μόνο σημείο εισόδου και στη συνέχεια διανέμει το αίτημα που αποστέλλει ο πελάτης στην οικεία υπηρεσία. Το αντίστροφο πληρεξούσιο αποτελείται από τρία στοιχεία:

  1. Αντίστροφη διακομιστής μεσολάβησης: χρησιμεύει ως μοναδικό σημείο εισόδου και διανέμει αιτήματα στις σωστές υπηρεσίες.
  2. Proxy-gen: είναι μια υπηρεσία που χαρτογραφεί αυτόματα όλες τις υπηρεσίες στον αντίστροφο διακομιστή μεσολάβησης. Επομένως, δεν είναι απαραίτητο να προσθέσετε με μη αυτόματο τρόπο μια νέα υπηρεσία στη διαμόρφωση διακομιστή μεσολάβησης
  3. επιτρέπει-κρυπτογράφηση: είναι μια υπηρεσία που επιτρέπει τη χρήση του πρωτοκόλλου SSL. Είναι απαραίτητο για να ενεργοποιήσετε το πρωτόκολλο https. Τα πιστοποιητικά SSL υπογράφονται από μια διεύθυνση ηλεκτρονικού ταχυδρομείου που έχει διαμορφωθεί σε αυτήν την υπηρεσία.

Υπάρχουν τρία δίκτυα:

  • Το hotmaps_nginx επιτρέπει στο αντίστροφο proxy να επικοινωνεί με το api, το frontend και το geoserver. Επιτρέπει κυρίως τη διανομή ενός αιτήματος στη σωστή υπηρεσία μεταξύ των τριών.
  • Το hotmaps_backend επιτρέπει την επικοινωνία μεταξύ όλων των στοιχείων του backend: api, frontend, geoserver και της βάσης δεδομένων PostgreSQL.
  • Το hotmaps_cm-net επιτρέπει την επικοινωνία μεταξύ κάθε υπομονάδας υπολογισμού και του api.

Κάθε υπομονάδα υπολογισμού έχει το δικό της δοχείο Docker.

Εκτέλεση με το Docker

Hotmaps χρησιμοποιεί Docker λογισμικού και Docker-Σύνθεση εργαλείο για τη διαχείριση των εμπορευματοκιβωτίων. Ένα αρχείο docker-compose.yml περιέχει ολόκληρη τη διαμόρφωση της αρχιτεκτονικής του Docker (config σε δοχεία, δίκτυα, συνδέσμους, ...). Αυτό επιτρέπει την εκτέλεση των εμπορευματοκιβωτίων με μία απλή εντολή:

 docker-compose up 

Υπάρχουν περισσότερα σχετικά με τη σύνθεση του docker στο webiste του Docker: Σύνταξη αναφοράς γραμμής εντολών και Σύνταξη αναφοράς αρχείου .

Υπάρχει μόνο ένα κιβώτιο που εκτελείται ξεχωριστά από άλλα: είναι η βάση δεδομένων, επειδή πρέπει να παραμείνει συνεχώς επάνω. Γι 'αυτό δεν είναι στο αρχείο διαμόρφωσης docker-compose.

Υποδομή διακομιστή

Υποδομή

Προς το παρόν, ο διακομιστής φιλοξενείται στο HES-SO στην Ελβετία. Υπάρχουν 2 διαθέσιμα μηχανήματα: ένα για ανάπτυξη (ανάπτυξη και δοκιμή) και ένα για παραγωγή (η πραγματική εργαλειοθήκη, διαθέσιμη στη διεύθυνση www.hotmaps.eu ).

Και τα δύο μηχανήματα έχουν την ίδια προδιαγραφή:

  • CPU: Intel Xeon E5-2680 v4 (8) @ 2,4 GHz)
  • RAM: 16GB
  • Σκληρός δίσκος: 500GB
  • OS: Ubutnu 16.04 LTS

Εκτέλεση

Εκτελούμε συχνά δοκιμές απόδοσης στον εξυπηρετητή ανάπτυξης, προκειμένου να εγγυηθούμε έναν ορισμένο αριθμό ταυτόχρονων χρηστών.

Για παράδειγμα, παρακάτω είναι τα αποτελέσματα της πρώτης έκδοσης beta έναντι των μελλοντικών δοκιμών απελευθέρωσης. Η νέα έκδοση περιλαμβάνει ορισμένες βελτιώσεις απόδοσης.

Αυτό το παράδειγμα δείχνει τις δοκιμές απόδοσης ταυτόχρονων χρηστών που χρησιμοποιούν την ίδια λειτουργία: "καμπύλη διάρκειας για επιλογή εκταρίων". Η έντονη γραμμή εμφανίζει το όριο όπου ο διακομιστής αρχίζει να αυξάνει τα σφάλματα. Η επιλογή των εκταρίων είναι ένα καλό παράδειγμα, καθώς δείχνει τα ερωτήματα που απαιτούν τους περισσότερους πόρους.

Έκδοση Beta της Μάρτιος 2019

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 | 2936 | 2936 | 2936 | 0 | | 20 | 9329 | 9503 | 11778 | 6901 | 0 | | 50 |. | 22922 | 22713 | 33401 | 8661 | 0 | | 100 | 33302 | 32875 | 58257 | 4929 | 16 | | 200 | na | na | na | na | na | | 300 |. | na | na | na | na | na |

Μελλοντική απελευθέρωση στο DEV (Μάρτιος 2019)

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 | 1802 | 1802 | 1802 | 0 | | 20 | 5289 | 2677 | 6873 | 2149 | 0 | | 50 |. | 10775 | 11274 | 17081 | 2577 | 0 | | 100 | 19807 | 20280 | 35142 | 3156 | 0 | | 200 | 37302 | 37575 | 69930 | 3381 | 0 | | 300 |. | 49091 | 57536 | 83578 | 2447 | 26 |

To Top

Πώς να ορίσετε τους δείκτες

Ένδειξη ορισμού

To Top

βιβλιογραφικές αναφορές

To Top

Πώς να αναφέρω

To Top

Συγγραφείς και κριτές

Συγγραφείς:

  • Daniel Hunacek
  • Λουσιέν Ζουμπέρ
  • Μάθιου Ντιέιερ

Αναθεωρητές:

To Top

Αναγνώριση

Θα ήθελα να μεταφέρω τη βαθύτατη εκτίμησή μας για το Horizon 2020 Hotmaps έργου (Αριθμός της Σύμβασης Επιδότησης 723677), η οποία προέβλεπε τη χρηματοδότηση για τη διεξαγωγή της παρούσας έρευνας

To Top

This page was automatically translated. View in another language:

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

* machine translated1> Προγραμματιστές

Προγραμματιστές

Πίνακας περιεχομένων

Εισαγωγή

Αυτή η σελίδα περιέχει όλες τις πληροφορίες που απαιτούνται από τους προγραμματιστές για να συνεισφέρουν στην πλατφόρμα 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 περιέχει το μέτωπο της εφαρμογής μας. Πρόκειται για ένα γωνιακό έργο (JavaScript)
  • Η υπηρεσία Hotmaps-toolbox-service περιέχει το API για την εφαρμογή μας. Βασίζεται στο Flask (Python)
  • Το Hotmaps-wiki είναι το Wiki που διαβάζετε αυτήν τη στιγμή
  • βασική μονάδα υπολογισμού είναι το βασικό πρότυπο που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε τις δικές σας μονάδες υπολογισμού για τα Hotmaps
  • μια λίστα υπομονάδων υπολογισμού

To Top

Πώς να συμβάλλετε στον κώδικα

Αν θέλετε να προσθέσετε κάποιο κωδικό στα Hotmaps, έχετε δύο δυνατότητες: εάν θέλετε να ενημερώσετε απευθείας τη διεπαφή ή το backend, πρέπει να τροποποιήσετε τον αποθετήριο πελάτη ή υπηρεσία της εργαλειοθήκης. Αν θέλετε να προσθέσετε τη δική σας υπομονάδα υπολογισμού, μπορείτε να δημιουργήσετε το δικό σας αποθετήριο ακολουθώντας το readme του repository base_calculation_module

Εάν θέλετε να εκτελέσετε κάποια εργασία στο αποθετήριο Git, παρακαλούμε μην εργάζεστε άμεσα με τον κύριο κατάλογο. Δημιουργήστε ένα νέο υποκατάστημα από τον κλάδο ανάπτυξης, κάντε την εργασία σας σε αυτόν τον κλάδο και όταν δοκιμάζεται η λειτουργία σας, μπορείτε να συγχωνεύσετε την εργασία σας με το αναπτυσσόμενο υποκατάστημα ως εμφάνιση στο παρακάτω γράφημα.

git_workflow

Για να προωθήσετε κάτι σε κάποιο χώρο αποθήκευσης Hotmaps πρέπει να είστε μέλος της ομάδας Hotmaps, αν δεν είστε ακόμα σε θέση να εκτελέσετε μια πιρούνι του εργαλείου μας για να αναπτύξετε το δικό σας εργαλείο.

Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τον τρόπο εργασίας σε αυτά τα έγγραφα:

To Top

Περιγραφή της υποδομής πληροφορικής

ReverseProxy_architecture_latest

Όλες οι υπηρεσίες και τα εξαρτήματα χρησιμοποιούνται μέσω του δικού τους δοχείου Docker. Όλα αυτά τα δοχεία ορίζονται σε ένα αρχείο αρχείου docker-compose. Η παραπάνω εικόνα αντιπροσωπεύει την αρχιτεκτονική πληροφορικής των Hotmaps.

Ορισμένες οργανώσεις-εταίροι περιορίζουν την επικοινωνία μόνο στη θύρα 80. Για να αποφευχθούν τα προβλήματα που προκαλούνται από αυτόν τον περιορισμό, δημιουργήθηκε μια αντίστροφη εξουσιοδότηση. Αυτός ο αντιστρεπτός διακομιστής μεσολάβησης προσφέρει ένα μόνο σημείο εισόδου και στη συνέχεια διανέμει το αίτημα που αποστέλλει ο πελάτης στην οικεία υπηρεσία. Το αντίστροφο πληρεξούσιο αποτελείται από τρία στοιχεία:

  1. Αντίστροφη διακομιστής μεσολάβησης: χρησιμεύει ως μοναδικό σημείο εισόδου και διανέμει αιτήματα στις σωστές υπηρεσίες.
  2. Proxy-gen: είναι μια υπηρεσία που χαρτογραφεί αυτόματα όλες τις υπηρεσίες στον αντίστροφο διακομιστή μεσολάβησης. Επομένως, δεν είναι απαραίτητο να προσθέσετε με μη αυτόματο τρόπο μια νέα υπηρεσία στη διαμόρφωση διακομιστή μεσολάβησης
  3. επιτρέπει-κρυπτογράφηση: είναι μια υπηρεσία που επιτρέπει τη χρήση του πρωτοκόλλου SSL. Είναι απαραίτητο για να ενεργοποιήσετε το πρωτόκολλο https. Τα πιστοποιητικά SSL υπογράφονται από μια διεύθυνση ηλεκτρονικού ταχυδρομείου που έχει διαμορφωθεί σε αυτήν την υπηρεσία.

Υπάρχουν τρία δίκτυα:

  • Το hotmaps_nginx επιτρέπει στο αντίστροφο proxy να επικοινωνεί με το api, το frontend και το geoserver. Επιτρέπει κυρίως τη διανομή ενός αιτήματος στη σωστή υπηρεσία μεταξύ των τριών.
  • Το hotmaps_backend επιτρέπει την επικοινωνία μεταξύ όλων των στοιχείων του backend: api, frontend, geoserver και της βάσης δεδομένων PostgreSQL.
  • Το hotmaps_cm-net επιτρέπει την επικοινωνία μεταξύ κάθε υπομονάδας υπολογισμού και του api.

Κάθε υπομονάδα υπολογισμού έχει το δικό της δοχείο Docker.

Εκτέλεση με το Docker

Hotmaps χρησιμοποιεί Docker λογισμικού και Docker-Σύνθεση εργαλείο για τη διαχείριση των εμπορευματοκιβωτίων. Ένα αρχείο docker-compose.yml περιέχει ολόκληρη τη διαμόρφωση της αρχιτεκτονικής του Docker (config σε δοχεία, δίκτυα, συνδέσμους, ...). Αυτό επιτρέπει την εκτέλεση των εμπορευματοκιβωτίων με μία απλή εντολή:

 docker-compose up 

Υπάρχουν περισσότερα σχετικά με τη σύνθεση του docker στο webiste του Docker: Σύνταξη αναφοράς γραμμής εντολών και Σύνταξη αναφοράς αρχείου .

Υπάρχει μόνο ένα κιβώτιο που εκτελείται ξεχωριστά από άλλα: είναι η βάση δεδομένων, επειδή πρέπει να παραμείνει συνεχώς επάνω. Γι 'αυτό δεν είναι στο αρχείο διαμόρφωσης docker-compose.

Υποδομή διακομιστή

Υποδομή

Προς το παρόν, ο διακομιστής φιλοξενείται στο HES-SO στην Ελβετία. Υπάρχουν 2 διαθέσιμα μηχανήματα: ένα για ανάπτυξη (ανάπτυξη και δοκιμή) και ένα για παραγωγή (η πραγματική εργαλειοθήκη, διαθέσιμη στη διεύθυνση www.hotmaps.eu ).

Και τα δύο μηχανήματα έχουν την ίδια προδιαγραφή:

  • CPU: Intel Xeon E5-2680 v4 (8) @ 2,4 GHz)
  • RAM: 16GB
  • Σκληρός δίσκος: 500GB
  • OS: Ubutnu 16.04 LTS

Εκτέλεση

Εκτελούμε συχνά δοκιμές απόδοσης στον εξυπηρετητή ανάπτυξης, προκειμένου να εγγυηθούμε έναν ορισμένο αριθμό ταυτόχρονων χρηστών.

Για παράδειγμα, παρακάτω είναι τα αποτελέσματα της πρώτης έκδοσης beta έναντι των μελλοντικών δοκιμών απελευθέρωσης. Η νέα έκδοση περιλαμβάνει ορισμένες βελτιώσεις απόδοσης.

Αυτό το παράδειγμα δείχνει τις δοκιμές απόδοσης ταυτόχρονων χρηστών που χρησιμοποιούν την ίδια λειτουργία: "καμπύλη διάρκειας για επιλογή εκταρίων". Η έντονη γραμμή εμφανίζει το όριο όπου ο διακομιστής αρχίζει να αυξάνει τα σφάλματα. Η επιλογή των εκταρίων είναι ένα καλό παράδειγμα, καθώς δείχνει τα ερωτήματα που απαιτούν τους περισσότερους πόρους.

Έκδοση Beta της Μάρτιος 2019

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 | 2936 | 2936 | 2936 | 0 | | 20 | 9329 | 9503 | 11778 | 6901 | 0 | | 50 |. | 22922 | 22713 | 33401 | 8661 | 0 | | 100 | 33302 | 32875 | 58257 | 4929 | 16 | | 200 | na | na | na | na | na | | 300 |. | na | na | na | na | na |

Μελλοντική απελευθέρωση στο DEV (Μάρτιος 2019)

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 | 1802 | 1802 | 1802 | 0 | | 20 | 5289 | 2677 | 6873 | 2149 | 0 | | 50 |. | 10775 | 11274 | 17081 | 2577 | 0 | | 100 | 19807 | 20280 | 35142 | 3156 | 0 | | 200 | 37302 | 37575 | 69930 | 3381 | 0 | | 300 |. | 49091 | 57536 | 83578 | 2447 | 26 |

To Top

Πώς να ορίσετε τους δείκτες

Ένδειξη ορισμού

To Top

βιβλιογραφικές αναφορές

To Top

Πώς να αναφέρω

To Top

Συγγραφείς και κριτές

Συγγραφείς:

  • Daniel Hunacek
  • Λουσιέν Ζουμπέρ
  • Μάθιου Ντιέιερ

Αναθεωρητές:

To Top

Αναγνώριση

Θα ήθελα να μεταφέρω τη βαθύτατη εκτίμησή μας για το Horizon 2020 Hotmaps έργου (Αριθμός της Σύμβασης Επιδότησης 723677), η οποία προέβλεπε τη χρηματοδότηση για τη διεξαγωγή της παρούσας έρευνας

To Top

This page was automatically translated. View in another language:

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

* machine translated> Προγραμματιστές

Προγραμματιστές

Πίνακας περιεχομένων

Εισαγωγή

Αυτή η σελίδα περιέχει όλες τις πληροφορίες που απαιτούνται από τους προγραμματιστές για να συνεισφέρουν στην πλατφόρμα 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 περιέχει το μέτωπο της εφαρμογής μας. Πρόκειται για ένα γωνιακό έργο (JavaScript)
  • Η υπηρεσία Hotmaps-toolbox-service περιέχει το API για την εφαρμογή μας. Βασίζεται στο Flask (Python)
  • Το Hotmaps-wiki είναι το Wiki που διαβάζετε αυτήν τη στιγμή
  • βασική μονάδα υπολογισμού είναι το βασικό πρότυπο που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε τις δικές σας μονάδες υπολογισμού για τα Hotmaps
  • μια λίστα υπομονάδων υπολογισμού

To Top

Πώς να συμβάλλετε στον κώδικα

Αν θέλετε να προσθέσετε κάποιο κωδικό στα Hotmaps, έχετε δύο δυνατότητες: εάν θέλετε να ενημερώσετε απευθείας τη διεπαφή ή το backend, πρέπει να τροποποιήσετε τον αποθετήριο πελάτη ή υπηρεσία της εργαλειοθήκης. Αν θέλετε να προσθέσετε τη δική σας υπομονάδα υπολογισμού, μπορείτε να δημιουργήσετε το δικό σας αποθετήριο ακολουθώντας το readme του repository base_calculation_module

Εάν θέλετε να εκτελέσετε κάποια εργασία στο αποθετήριο Git, παρακαλούμε μην εργάζεστε άμεσα με τον κύριο κατάλογο. Δημιουργήστε ένα νέο υποκατάστημα από τον κλάδο ανάπτυξης, κάντε την εργασία σας σε αυτόν τον κλάδο και όταν δοκιμάζεται η λειτουργία σας, μπορείτε να συγχωνεύσετε την εργασία σας με το αναπτυσσόμενο υποκατάστημα ως εμφάνιση στο παρακάτω γράφημα.

git_workflow

Για να προωθήσετε κάτι σε κάποιο χώρο αποθήκευσης Hotmaps πρέπει να είστε μέλος της ομάδας Hotmaps, αν δεν είστε ακόμα σε θέση να εκτελέσετε μια πιρούνι του εργαλείου μας για να αναπτύξετε το δικό σας εργαλείο.

Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τον τρόπο εργασίας σε αυτά τα έγγραφα:

To Top

Περιγραφή της υποδομής πληροφορικής

ReverseProxy_architecture_latest

Όλες οι υπηρεσίες και τα εξαρτήματα χρησιμοποιούνται μέσω του δικού τους δοχείου Docker. Όλα αυτά τα δοχεία ορίζονται σε ένα αρχείο αρχείου docker-compose. Η παραπάνω εικόνα αντιπροσωπεύει την αρχιτεκτονική πληροφορικής των Hotmaps.

Ορισμένες οργανώσεις-εταίροι περιορίζουν την επικοινωνία μόνο στη θύρα 80. Για να αποφευχθούν τα προβλήματα που προκαλούνται από αυτόν τον περιορισμό, δημιουργήθηκε μια αντίστροφη εξουσιοδότηση. Αυτός ο αντιστρεπτός διακομιστής μεσολάβησης προσφέρει ένα μόνο σημείο εισόδου και στη συνέχεια διανέμει το αίτημα που αποστέλλει ο πελάτης στην οικεία υπηρεσία. Το αντίστροφο πληρεξούσιο αποτελείται από τρία στοιχεία:

  1. Αντίστροφη διακομιστής μεσολάβησης: χρησιμεύει ως μοναδικό σημείο εισόδου και διανέμει αιτήματα στις σωστές υπηρεσίες.
  2. Proxy-gen: είναι μια υπηρεσία που χαρτογραφεί αυτόματα όλες τις υπηρεσίες στον αντίστροφο διακομιστή μεσολάβησης. Επομένως, δεν είναι απαραίτητο να προσθέσετε με μη αυτόματο τρόπο μια νέα υπηρεσία στη διαμόρφωση διακομιστή μεσολάβησης
  3. επιτρέπει-κρυπτογράφηση: είναι μια υπηρεσία που επιτρέπει τη χρήση του πρωτοκόλλου SSL. Είναι απαραίτητο για να ενεργοποιήσετε το πρωτόκολλο https. Τα πιστοποιητικά SSL υπογράφονται από μια διεύθυνση ηλεκτρονικού ταχυδρομείου που έχει διαμορφωθεί σε αυτήν την υπηρεσία.

Υπάρχουν τρία δίκτυα:

  • Το hotmaps_nginx επιτρέπει στο αντίστροφο proxy να επικοινωνεί με το api, το frontend και το geoserver. Επιτρέπει κυρίως τη διανομή ενός αιτήματος στη σωστή υπηρεσία μεταξύ των τριών.
  • Το hotmaps_backend επιτρέπει την επικοινωνία μεταξύ όλων των στοιχείων του backend: api, frontend, geoserver και της βάσης δεδομένων PostgreSQL.
  • Το hotmaps_cm-net επιτρέπει την επικοινωνία μεταξύ κάθε υπομονάδας υπολογισμού και του api.

Κάθε υπομονάδα υπολογισμού έχει το δικό της δοχείο Docker.

Εκτέλεση με το Docker

Hotmaps χρησιμοποιεί Docker λογισμικού και Docker-Σύνθεση εργαλείο για τη διαχείριση των εμπορευματοκιβωτίων. Ένα αρχείο docker-compose.yml περιέχει ολόκληρη τη διαμόρφωση της αρχιτεκτονικής του Docker (config σε δοχεία, δίκτυα, συνδέσμους, ...). Αυτό επιτρέπει την εκτέλεση των εμπορευματοκιβωτίων με μία απλή εντολή:

 docker-compose up 

Υπάρχουν περισσότερα σχετικά με τη σύνθεση του docker στο webiste του Docker: Σύνταξη αναφοράς γραμμής εντολών και Σύνταξη αναφοράς αρχείου .

Υπάρχει μόνο ένα κιβώτιο που εκτελείται ξεχωριστά από άλλα: είναι η βάση δεδομένων, επειδή πρέπει να παραμείνει συνεχώς επάνω. Γι 'αυτό δεν είναι στο αρχείο διαμόρφωσης docker-compose.

Υποδομή διακομιστή

Υποδομή

Προς το παρόν, ο διακομιστής φιλοξενείται στο HES-SO στην Ελβετία. Υπάρχουν 2 διαθέσιμα μηχανήματα: ένα για ανάπτυξη (ανάπτυξη και δοκιμή) και ένα για παραγωγή (η πραγματική εργαλειοθήκη, διαθέσιμη στη διεύθυνση www.hotmaps.eu ).

Και τα δύο μηχανήματα έχουν την ίδια προδιαγραφή:

  • CPU: Intel Xeon E5-2680 v4 (8) @ 2,4 GHz)
  • RAM: 16GB
  • Σκληρός δίσκος: 500GB
  • OS: Ubutnu 16.04 LTS

Εκτέλεση

Εκτελούμε συχνά δοκιμές απόδοσης στον εξυπηρετητή ανάπτυξης, προκειμένου να εγγυηθούμε έναν ορισμένο αριθμό ταυτόχρονων χρηστών.

Για παράδειγμα, παρακάτω είναι τα αποτελέσματα της πρώτης έκδοσης beta έναντι των μελλοντικών δοκιμών απελευθέρωσης. Η νέα έκδοση περιλαμβάνει ορισμένες βελτιώσεις απόδοσης.

Αυτό το παράδειγμα δείχνει τις δοκιμές απόδοσης ταυτόχρονων χρηστών που χρησιμοποιούν την ίδια λειτουργία: "καμπύλη διάρκειας για επιλογή εκταρίων". Η έντονη γραμμή εμφανίζει το όριο όπου ο διακομιστής αρχίζει να αυξάνει τα σφάλματα. Η επιλογή των εκταρίων είναι ένα καλό παράδειγμα, καθώς δείχνει τα ερωτήματα που απαιτούν τους περισσότερους πόρους.

Έκδοση Beta της Μάρτιος 2019

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 2936 | 2936 | 2936 | 2936 | 0 | | 20 | 9329 | 9503 | 11778 | 6901 | 0 | | 50 |. | 22922 | 22713 | 33401 | 8661 | 0 | | 100 | 33302 | 32875 | 58257 | 4929 | 16 | | 200 | na | na | na | na | na | | 300 |. | na | na | na | na | na |

Μελλοντική απελευθέρωση στο DEV (Μάρτιος 2019)

| Nb προσομοιωμένων χρηστών Μέσος χρόνος Διάμεσος | Μέγιστος χρόνος | Ελάχιστος χρόνος | Ποσοστό σφαλμάτων | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1802 | 1802 | 1802 | 1802 | 0 | | 20 | 5289 | 2677 | 6873 | 2149 | 0 | | 50 |. | 10775 | 11274 | 17081 | 2577 | 0 | | 100 | 19807 | 20280 | 35142 | 3156 | 0 | | 200 | 37302 | 37575 | 69930 | 3381 | 0 | | 300 |. | 49091 | 57536 | 83578 | 2447 | 26 |

To Top

Πώς να ορίσετε τους δείκτες

Ένδειξη ορισμού

To Top

βιβλιογραφικές αναφορές

To Top

Πώς να αναφέρω

To Top

Συγγραφείς και κριτές

Συγγραφείς:

  • Daniel Hunacek
  • Λουσιέν Ζουμπέρ
  • Μάθιου Ντιέιερ

Αναθεωρητές:

To Top

Αναγνώριση

Θα ήθελα να μεταφέρω τη βαθύτατη εκτίμησή μας για το Horizon 2020 Hotmaps έργου (Αριθμός της Σύμβασης Επιδότησης 723677), η οποία προέβλεπε τη χρηματοδότηση για τη διεξαγωγή της παρούσας έρευνας

To Top

This page was automatically translated. View in another language:

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

* machine translated