摘要:
XX年初,本人所在公司承接了某军工集团下属素质教育部门的视频网站优化升级改造项目,该网站用于向全国中小学生提供国防教育类视频课程。集团的素质教育部门定期制作各类国防教育课程资源上传网站,学校用户根据实际情况选择视频进行课堂教学用。旧版网站建于XX年,基于若依开发框架,使用SpringBoot+Vue前后端分离技术及Nginx负载均衡技术,具有学校用户登录、视频播放、视频课程上传、后台管理四大功能,运行于国防内网DMZ区超融合一体机CentOS云服务器上。
该网站建设初期基本满足使用要求,但随着用户数量的增长各种性能、安全性、可扩展性等问题愈发突出,需要升级改造。本人担任该项目的系统分析师,在改造项目开始之初,首先全面评估了遗留系统并选择了合适的演化策略,用以指导后续工作。
正文:
一、本项目概述
XX年,为了在广大中小学生间普及大国重器知识,提升科技素养,培养爱国主义精神,某军工集团下属素质教育部门决定开发一套教育类视频网站,用于中小学素质教育课堂。该网站旧版具有学校用户登录、视频播放、视频课程上传、后台管理四大功能。在政府部门安排下,军工集团素质教育部门定期制作各类国防教育课程资源上传网站,学校用户根据实际情况选择视频进行课堂教学用。系统管理人员可以在后台配置系统各类信息,监控服务器资源使用情况及网站运行情况。网站采用了若依低代码开发框架SpringBoot版及Vue前后端分离技术,该技术栈可以用于快速搭建前后端分离的Web应用程序。网站整体运行于国防内网DMZ区超融合一体机CentOS云服务器上,前端为双节点Nginx轮询负载均衡集群,各类视频课程存储于双节点MinIO分布式文件系统。此外,网站还使用了MySQL读写分离技术与Redis缓存数据库。
某军工集团是第一次承接教育工作,因此先选择北京、济南、西安、杭州、成都、广州6座城市6所重点中小学300余个班级进行试点。旧版网站基本满足日常教学需要,但随着业务的全面铺开,旧版网站问题日益显现,主要表现为:性能低下,超过80个班级同时上课后端服务器宕机;难以扩展,单节点后端只能不断扩大云服务器资源,到达一定上限就无法再继续优化;安全保障难度高,大量外网访问请求频繁进入国防内网,隐患大,亟需升级改造。
本人担任该项目的系统分析师。在项目建设初期,本人深知,对于这样一个大并发改造项目,遗留系统的评价和演化策略的选择是重中之重。
二、遗留系统评价的主要活动及演化策略
遗留系统主要通过两类指标来评价——技术水平和业务价值,按照两类指标的不同可划分为四类:低技术水平低业务价值、低技术水平高业务价值、高技术水平高业务价值、高技术水平低业务价值。对于遗留系统不同的分类通常采用不同的演化策略。
低技术水平、低业务价值类,即遗留系统的技术含量较低,且具有较低的业务价值。对这种遗留系统的演化策略为淘汰,即全面重新开发新的系统以代替遗留系统。完全淘汰是一种极端性策略,一般是企业的业务产生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员、维护文档资料都丢失了。经过评价,发现将遗留系统完全淘汰,开发全新的系统比改造旧系统从成本上考虑更合算。对遗留系统的完全淘汰是一种资源的浪费,一般并不建议采用。
低技术水平、高业务价值类,即遗留系统的技术含量较低,已经不能满足企业运作的功能或性能要求,但具有较高的商业价值,目前企业的业务尚紧密依赖该系统。这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,一般建议新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。
高技术水平、高业务价值类,即遗留系统的技术含量较高,本身还有极大的生命力。系统具有较高的业务价值,基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,这种遗留系统的演化策略称为改造。改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。
高技术水平、低业务价值类,即遗留系统的技术含量较高,但其业务价值较低,可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统,不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛。对这种遗留系统的演化策略称为集成。
上述遗留系统评价及演化策略为通用方法,真正工程实施时,需根据具体情况,在即保护现有投资又满足未来需求的情况下合理选取。
三、本项目遗留系统评价、演化策略选择的实施过程及应用效果
我们对旧网站进行了全面的分析。旧版网站采用若依框架,该框架比较先进,支持多种主流Web架构。旧网站用户登录、视频播放、视频课程上传、后台管理四大功能划分贴合业务实际;表现层为了应对大流量使用了Nginx负载均衡,但后端业务逻辑为一个单节点;存储层采用了NoSql数据库MinIO与关系型数据库结合的方式,MinIO虽然部署简单,可兼容多种操作系统,但大并发能力不足。关系型数据库中各类表的设计满足三范式要求;旧网站运行在国防内网的超融合一体机上,民用系统运行其上本身就会带来极大安全隐患。当前无论学校用户还是素质教育部门用户,开展国防教育工作均依赖本网站。
综上分析,在大并发情况下,旧版网站一分部分核心设计已经落后,但各用户仍然依赖它开展工作,属于低技术水平、高业务价值类。对于此类系统,一般应选用继承的演化策略,即保留合理部分,改进不适合新需求的部分。
继承方面,旧版网站的功能模型,即功能块的划分符合业务实际,应当保留;MySql中各类关系型数据表,即数据模型,设计基本合理,大部分保留。网站整体没必要重新开发,优化改造时,旧网站若依开发框架的技术选型保留。整个前端负载均衡架构可应对大并发流量,应完全保留。
改进方面,首先经与用户协商,该网站各类数据属于军转民用,保密级别不高,因而我们将网站重新设计为阿里云部署;进而,后端选用若依SpringCloud版进行微服务化升级,将网站四大功能全部改造为微服务集群。单点Tomcat默认QPS为150,可依此作为判断节点数量的依据。经实验,前端与登录设置4节点,播放设置8节点可保证600个班级同时使用,且可以根据情况扩展。流量负载较大的播放节点采用CPU性能较强的4核8G通用算力型云服务器;其它节点采用普通的4核8G经济型云服务器;最后,我们放弃了MinIO,选用了2节点GlusterFS集群供所有播放服务共享,该集群在大并发时性能、可靠性更佳。同时,为了提升各微服务对结构化数据的存取效率,我们直接购买了RDS版MySQL和Redis,该类数据库专为云端设计可按需扩容。
一般采用继承策略演化的系统新旧系统应并行运行一段时间,但是用户的使用有一个重要的场景:每学年在开学第一课各学校往往会集中进行国防教育课程教学,这就会导致该视频网站会像电商“6.18”、“双11”那样出现瞬时高峰流量,此时旧版网站完全不能使用,并不具备与新系统并行的条件,因而我们采用了直接切换的策略。
按技术水平与业务价值来分析遗留系统,这种方法本身科学合理,基本能适用于绝大部分的数字化系统,效果良好。这种方法有效指导了本系统的优化改造。但是理论毕竟属于通性通法,结合具体实际往往会进行局部修改。如在本项目中,就无法想书上说的那样采用并行运行的策略,而要采用直接转换的策略。
论遗留系统演化策略及其应用
未经允许不得转载:171主机测评 » 论遗留系统演化策略及其应用






