Experiencia en llevar la implementación de software del proyecto social "Remember Everyone" a código abierto

El año pasado, nuestro equipo tuvo la suerte de participar en el desarrollo de software para un proyecto socialmente significativo: un sistema para ingresar datos de archivo de las comisarías militares del territorio de Khabarovsk durante la Gran Guerra Patria. En resumen, cuando lo llamaron, a dónde fue y otra información relacionada, para digitalizar y dar a cualquiera la oportunidad de buscar estos datos. En 2018, el Centro de Tecnologías Sociales del Lejano Oriente, con el apoyo del Fondo de Subvenciones Presidenciales, implementó el proyecto "Recordar a todos". Y hemos desarrollado una aplicación en nuestro producto de código abierto IONDV. Marco La aplicación final ahora está disponible bajo la licencia GPLv3.

Compartimos nuestra decisión y experiencia en el proyecto.

imagen

Spoiler, algunos detalles técnicos.

IONDV. Marco
IONDV. Framework es un framework de código abierto node.js para crear aplicaciones web basadas en metadatos de alto nivel, que no requiere habilidades de programación serias.

La base de la funcionalidad de la aplicación es el registro de datos, el módulo de registro. Este es un módulo clave diseñado específicamente para trabajar con datos basados ​​en estructuras de metadatos, incluidos aquellos para administrar proyectos, programas, eventos, etc. El proyecto también utiliza un módulo de portal para mostrar plantillas de datos arbitrarias: implementa el frente del registro de archivos de archivo.

MongoDb se usa para el DBMS, también almacena la configuración de la aplicación, los metadatos y los datos en sí.

Durante el desarrollo, creamos una aplicación web, con el nombre corporativo War archive, para almacenar, agrupar y demostrar documentos de archivo sobre la Gran Guerra Patria. Trabajamos activamente de enero a marzo de 2018 y en el proceso arreglamos los errores del marco, ya que tuvimos la primera experiencia con tantos escaneos.

El resultado del proyecto "Remember Everyone" fue un registro de datos con 25k registros (ahora 35k). En abril de este año, el Far Eastern Center for Social Technologies publicó el código fuente de la aplicación bajo la licencia GPLv3 en GitHub . En el repositorio encontrará metadatos, plantillas de diseño y utilidades especiales, todo lo que forma la base de la aplicación para IONDV. Marco El marco en sí se distribuye bajo la licencia Apache 2.0 y también está disponible en GitHub , junto con módulos listos para usar.

También se implementó la aplicación de demostración . Solicitud de prueba para buscar "Ivanov Ivan". Puedes ver el backoffice aquí . Inicio de sesión - demo, contraseña - ion-demo. Por cierto, puede obtener una imagen acoplada lista para usar .

Detalles del proyecto


El objetivo del proyecto "Recordar a todos" es preservar la memoria de las personas de la época de la Segunda Guerra Mundial al proporcionar acceso gratuito a los documentos de esos años. Maria Stepko, directora del Centro de Tecnologías Sociales del Lejano Oriente, dijo una vez: "La preservación y el análisis de datos sobre el pasado es una tarea necesaria para modelar el futuro".

Los voluntarios del proyecto digitalizaron 10 mil páginas de documentos e ingresaron datos en el registro de Far Easterners, participantes en la Gran Guerra Patria. En la base de datos puede encontrar información sobre el rango del borrador, sobre la parte, la fecha, la causa de la muerte y el lugar del entierro. Además, hay disponible una fuente digitalizada de registro que indica el número de inventario, caso, hoja de acuerdo con la numeración del archivo estatal. Un ejemplo de escaneo de documentos.

imagen

Estamos muy agradecidos por esta oportunidad y por sus comentarios sobre nuestro trabajo:
“La solución técnica creada por la empresa de desarrollo del Lejano Oriente IONDV se distribuye gratuitamente. El sistema es adecuado para ONG, ciudadanos de iniciativa, museos, archivos. Ayudará a ahorrar recursos y a hacer una buena acción para las personas. Los programadores de nuestra región saben qué es el "software libre". Juntos, haremos que este software sea más funcional.

Despliegue y resultado de la prueba


Ayer terminamos de transferir el proyecto a Yandex. La nube se puso a disposición en la nueva dirección dvarchive.ru .

Al mismo tiempo, realizamos pruebas de estrés, que también nos gustaría compartir.

Los recursos del servidor son mínimos, ya que lo paga la empresa de recaudación de fondos: 2 CPU con un 20% de prioridad y 2 Gb de memoria.

Una reacción típica a una carga pequeña se ve así: 2% de la carga de la CPU y 36% de la carga de memoria.

Probamos las solicitudes de los usuarios sin archivos estáticos, solo solicitudes de datos y nos gustó el resultado.

imagen

Resultó que la aplicación en el contenedor docker procesa 400 solicitudes por segundo (sin estática). Y al mismo tiempo carga solo un procesador, lo cual es típico cuando se inicia solo una instancia de node.js. El segundo maneja el resto de las tareas (DBMS, nginx, monitoreo).

Ni siquiera necesita agruparse. Hay un amplio margen para la carga de trabajo habitual de un proyecto social, a pesar de un mínimo de recursos.

Resumen


Para nosotros, esta fue la primera experiencia de participar en el trabajo en un proyecto relacionado con la memoria de la Gran Guerra Patria y el Lejano Oriente.

Además, estamos orgullosos de que este resultado, desarrollado en el Lejano Oriente, una región que no es muy activa en el campo de TI, pueda ser utilizado por cualquier persona involucrada en tales proyectos, especialmente de acuerdo con el modelo de código abierto.

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


All Articles