将社交项目“记住所有人”的软件实现引入开源的经验

去年,我们的团队很幸运地参与了一项对社会具有重大意义的项目的软件开发,该系统用于输入伟大卫国战争期间哈巴罗夫斯克地区军方的档案数据。 简而言之,当他被召唤时,他去了哪里以及其他相关信息-进行数字化处理,使任何人都有机会搜索这些数据。 2018年,远东社会技术中心在总统赠款基金的支持下实施了“记住所有人”项目。 我们已经在开源产品IONDV上开发了一个应用程序。 构架 现在,最终的应用程序已获得GPLv3许可。

我们分享我们在该项目上的决定和经验。

图片

扰流板,一些技术细节。

IONDV。 构架
IONDV。 该框架是一个开放源代码的node.js框架,用于创建基于元数据的高级Web应用程序,不需要认真的编程技能。

应用程序功能的基础是数据注册表-注册模块。 这是一个关键模块,专门用于处理基于元数据结构的数据-包括用于管理项目,程序,事件等的数据。该项目还使用门户模块显示任意数据模板-它实现了存档文件注册表的前端。

MongoDb用于DBMS-它还存储应用程序设置,元数据和数据本身。

在开发过程中,我们创建了一个Web应用程序,公司名称为War archive,用于存储,分组和演示有关爱国战争的存档文件。 从2018年1月到2018年3月,我们一直积极工作,在此过程中,我们修复了框架错误-因为我们第一次拥有如此多的扫描经验。

“记住所有人”项目的结果是一个具有25k条记录(现在为35k)的数据寄存器。 今年4月,远东社交技术中心在GitHub上以GPLv3许可发布了该应用程序的源代码。 在存储库中,您将找到元数据,设计模板和特殊实用程序-构成IONDV应用程序基础的所有内容。 构架 该框架本身是根据Apache 2.0许可分发的,并且也可以在GitHub和现成的模块上获得。

还部署了演示应用程序 。 测试请求以搜索“ Ivanov Ivan”。 您可以在这里查看后台。 登录-演示,密码-ion-demo。 顺便说一句,您可以获得一个现成的docker映像

项目详情


“记住所有人”项目的目的是通过免费访问那些年代的文件来保存第二次世界大战以来人们的记忆。 远东社会技术中心主任玛丽亚·斯特普科曾经说过:“保存和分析过去的数据是为未来建模必不可少的任务。”

该项目的志愿者将一万页文件数字化,并将数据输入到远东人的名单中,远东人是伟大卫国战争的参与者。 在数据库中,您可以找到有关草稿等级,零件,日期,死亡原因和埋葬地点的信息。 此外,还有一个数字化的记录源,可以根据状态档案的编号来指示库存,箱子,纸张的数量。 文档扫描的示例。

图片

我们非常感谢这次机会和对我们工作的反馈:
“由远东开发公司IONDV创建的技术解决方案可以免费分发。 该系统适用于非政府组织,主动公民,博物馆,档案馆。 这将有助于节省资源并为人们做一份好事。 我们地区的程序员知道什么是“自由软件”。 在一起,我们将使该软件更具功能。

部署和测试结果


昨天我们完成了将该项目转移到Yandex。 可在新地址dvarchive.ru上使用云。

同时,我们进行了压力测试,我们也希望分享。

服务器资源是最少的,因为它是由筹款公司支付的:2个CPU,优先级为20%,内存为2Gb。

对小负载的典型反应如下:CPU负载的2%和内存负载的36%。

我们测试了用户请求,没有静态文件,只有数据请求,我们喜欢结果。

图片

事实证明,泊坞窗容器中的应用程序每秒处理400个请求(无静态)。 同时,它仅加载一个处理器,这在仅启动一个node.js实例时很典型。 第二个处理其余任务(DBMS,nginx,监视)。

甚至不需要集群。 尽管资源最少,但社交项目的正常工作量仍有很大余地。

总结


对我们来说,这是参与与伟大卫国战争和远东记忆有关的项目工作的第一次经验。

而且,我们为在远东地区开发的这一结果感到骄傲,该地区在IT领域并不活跃,参与此类项目的任何人都可以使用此结果,特别是根据开源模型。

Source: https://habr.com/ru/post/zh-CN451092/


All Articles