论可靠性设计在图书馆数据中台实践.pdfVIP

  • 1
  • 0
  • 约4.2千字
  • 约 4页
  • 2026-02-10 发布于北京
  • 举报

论可靠性设计在图书馆数据中台实践.pdf

论系统可靠性在馆馆情数据中台

的实践

一、

2019年11月,所在部承接了馆情数据中台的建设,该项目为

期半年。该项目于2020年5月正式上线,2020年6月通过最终验收。通过

数据中台,实现了我馆数据的分层与水平解耦,沉淀了公共基础数据。通过数据

建模实现跨域数据整合和知识沉淀,通过数据服务实现对于数据的封装和开放,

快速、灵活满足上层应用的要求,通过数据开发工具满足个性化数据和应用的需

要,为全市文旅数据融合工作了有力的数据支撑。该项目时间紧任务重,涉

及人员组织多,涉及馆内10余个部门,外部配合协作10多个厂商团队。本

人在该项目中担任系统架构师,主要完成技术方案评估与实现,项目立项论证等

工作。本文结合笔者实际经验,以该项目为例,讨论系统可靠性的基本概念,常

见的可靠性保障方案,以及在系统可靠性实践中遇到的问题及解决方案。

二、正文

近年来,随着我馆服务质量的不断提升,大量软硬件系统在我馆得到部署。

硬件设备包括自助借还机、交互机器人、借阅机、人脸识别门禁、人流量

计数器,软件系统包括管理系统、小程序、移动端APP。软硬件系统的

增加带来了大量用户数据的流入,如读者、读者偏好、读者借阅行为、读者

行动轨迹等海量的数据,但是这些数据缺乏统一的接入和分析。因此,需要通过

数据技术,对海量数据进行、计算、、加工,同时统一和口径,并

在此基础之上,对数据进行归纳分析,对外统一的馆情数据服务。

为此,笔者带领团队于2019年11月承接馆情数据中台的建设,并担任系统

架构设计师。主要负责项目整体技术方案评估实现、立项论证以及项目管理工作。该

项目的架构工作于同年12月完成,整个项目耗时6个月,于2020年5月上线

测试。于2020年6月完成验收。

在架构设计之初,笔者就考虑到了可靠性这一质量属性对系统质量的影响。

软件可靠性是指系统从故障中恢复的能力,可靠性越高的系统,运行更加稳定。

然而在软件的世界中,故障无处不在。硬盘可能损坏,网络可能中断,消息可能

丢失,内存可能跳变。在基于微服务的分布式软件系统中,各种各样的故障更是

会层出不穷。很多时候我们期望能够完美预防所有故障的出现,但上这几乎

是一个不可能实现的梦想。因此很多企业开始转变思路,从避免故障出现转向使

故障出现时对系统不产生影响。现在很多IT公司都参考对系统进行故障注入测

试,比如虚拟机复位,测试等。这些故障注入甚至会在生产环境中进行,因

此所有开发人员很清楚他们开发出的应用必须能够应对这些故障,而不是祈祷一

切正常。为了应对可能的故障,确保系统的可靠性,常见的方法有恢复块设计、

N版本程序设计、冗余设计。

恢复块设计是指选择一组软件操作作为容错设计单元,把普通的程序块变成

恢复块。一个恢复块包含有若干个功能相同、设计差异的程序块。其中,一个运

行块,多个备份块,构成“动态冗余”,一旦运行块出现故障,检错机制检测到

,就使用备用模块进行替换。N版本程序设计是一种静态故障技术。N版

本程序的是通过设计出多个模块或不同版本,对于相同初始条件和相同输入

的操作结果,实现多数表决,防止其中某一软件模块/版本的故障错误的服

务,以实现软件容错。这种技术实现成本非常高,往往需要调用不同的人员采用

不同的技术实现相同的功能,一般用在对可靠性要求较高的、领域。冗

余设计是指在一套完整的软件系统之外,启用相同的模块或系统作为备份,在出

现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行。

针对数据中台的应用场景,为尽可能达到软件复用与业务水平扩展的目的,

笔者采用层次化的架构风格来进行系统架构。与一般的业务系统不同,数据中台

本质上是面向数据的,笔者根据自己的实践经验,从数据处理的维度上对数据中

台进行划分,将其分成数据接入层、数据模型层、数据服务层,数据开发层,各

个层次只与相邻的两层发生交互。在不同的层次上,用户对数据利用的维度也从

文档评论(0)

1亿VIP精品文档

相关文档