Expérience dans la mise en œuvre logicielle du projet social «Remember Everyone»

L'année dernière, notre équipe a eu la chance de participer au développement d'un logiciel pour un projet socialement significatif - un système pour saisir les données d'archives des commissariats militaires du territoire de Khabarovsk pendant la Grande Guerre patriotique. En bref, quand il a été appelé, où est-il allé et d'autres informations connexes - pour numériser et donner à quiconque la possibilité de rechercher ces données. En 2018, le Far Eastern Center for Social Technologies, avec le soutien du Presidential Grants Fund, a mis en œuvre le projet «Remember Everyone». Et nous avons développé une application sur notre produit open source IONDV. Cadre L'application finale est désormais disponible sous la licence GPLv3.

Nous partageons notre décision et notre expérience sur le projet.

image

Spoiler, quelques détails techniques.

IONDV. Cadre
IONDV. Framework - framework open source sur node.js pour créer des applications web basées sur des métadonnées de haut niveau, qui ne nécessitent pas de compétences de programmation sérieuses.

La base de la fonctionnalité de l'application est le registre de données - le module Register. Il s'agit d'un module clé conçu spécifiquement pour travailler avec des données basées sur des structures de métadonnées - y compris celles pour la gestion de projets, programmes, événements, etc. Le projet utilise également un module de portail pour afficher des modèles de données arbitraires - il implémente le devant du registre des fichiers d'archives.

MongoDb est utilisé pour le SGBD - il stocke également les paramètres d'application, les métadonnées et les données elles-mêmes.

Pendant le développement, nous avons créé une application Web, avec le nom d'entreprise War archive, pour stocker, regrouper et démontrer des documents d'archives sur la Grande Guerre patriotique. Nous avons travaillé activement de janvier à mars 2018 et dans le processus, nous avons corrigé les bogues du cadre, car nous avons eu la première expérience avec autant d'analyses.

Le résultat du projet «Remember Everyone» était un registre de données avec 25 000 enregistrements (maintenant 35 000). En avril de cette année, le Far Eastern Center for Social Technologies a publié le code source de l'application sous la licence GPLv3 sur GitHub . Dans le référentiel, vous trouverez des métadonnées, des modèles de conception et des utilitaires spéciaux - tout ce qui constitue la base de l'application pour IONDV. Cadre Le framework lui-même est distribué sous la licence Apache 2.0 et est également disponible sur GitHub , avec des modules prêts à l'emploi.

Application de démonstration également déployée. Demande de test pour rechercher "Ivanov Ivan." Vous pouvez voir le backoffice ici . Login - démo, mot de passe - ion-demo. Au fait, vous pouvez obtenir une image docker prête à l'emploi.

Détails du projet


L'objectif du projet «Remember Everyone» est de préserver la mémoire des personnes de l'époque de la Seconde Guerre mondiale en offrant un accès gratuit aux documents de ces années. Maria Stepko, directrice du Centre d'Extrême-Orient pour les technologies sociales, a déclaré un jour: «La préservation et l'analyse des données sur le passé est une tâche nécessaire pour modéliser l'avenir.»

Les volontaires du projet ont numérisé 10 000 pages de documents et inscrit des données dans le registre des Extrême-Orientaux, participants à la Grande Guerre patriotique. Dans la base de données, vous pouvez trouver des informations sur le rang de l'appelé, sur la pièce, la date, la cause du décès et le lieu de l'enterrement. En outre, une source d'enregistrement numérisée est disponible indiquant le numéro d'inventaire, de cas, de feuille conformément à la numérotation des archives de l'État. Un exemple de numérisation de document.

image

Nous sommes très reconnaissants de cette opportunité et de vos commentaires sur notre travail:
«La solution technique créée par la société de développement d'Extrême-Orient IONDV est mise en distribution gratuite. Le système convient aux ONG, aux citoyens de l'initiative, aux musées et aux archives. Cela aidera à économiser des ressources et à faire une bonne action pour les gens. Les programmeurs de notre région savent ce qu'est un «logiciel libre». Ensemble, nous rendrons ce logiciel plus fonctionnel.

Déploiement et résultat du test


Hier, nous avons terminé le transfert du projet à Yandex. Le cloud a été mis à disposition à la nouvelle adresse dvarchive.ru .

Dans le même temps, nous avons effectué des tests de résistance, que nous aimerions également partager.

Les ressources du serveur sont minimes, car elles sont payées par la société de collecte de fonds: 2 CPU avec une priorité de 20% et 2 Go de mémoire.

Une réaction typique à une petite charge ressemble à ceci - 2% de la charge CPU et 36% de la charge mémoire.

Nous avons testé les demandes des utilisateurs sans fichiers statiques, uniquement les demandes de données et nous avons aimé le résultat.

image

Il s'est avéré que l'application dans le conteneur Docker traite 400 requêtes par seconde (sans statique). Et en même temps, il ne charge qu'un seul processeur, ce qui est typique lors du démarrage d'une seule instance de node.js. Le second gère le reste des tâches (SGBD, nginx, surveillance).

Vous n'avez même pas besoin de clustering. Il y a une grande marge pour la charge de travail habituelle d'un projet social, malgré les ressources minimales.

Résumé


Pour nous, ce fut la première expérience de participation aux travaux sur un projet lié à la mémoire de la Grande Guerre patriotique et de l'Extrême-Orient.

De plus, nous sommes fiers que ce résultat, développé en Extrême-Orient, une région peu active dans le domaine informatique, puisse être utilisé par toute personne impliquée dans de tels projets, notamment selon le modèle open source.

Source: https://habr.com/ru/post/fr451092/


All Articles