高性能非学历在线培训网站系统架构设计
2015-02-23田云鹏
刘 骞,田云鹏
(云南开放大学 云南省干部在线学习学院,云南,昆明 650223)
一、非学历在线培训网站业务简介
非学历在线培训网站通常承载在线学习、在线测试、成绩统计管理、人员管理、用户认证与报名、课程管理、资讯管理、学员成绩档案管理、数据统计管理等业务。在线培训网站需全天24小时对外提供学习服务。由于培训对象来自社会各行业,网站面临访问流量大、并发数高的压力。在提供高效持续服务的同时网站还需保证学员数据的绝对安全。随着计算机技术的发展和移动网络的普及,将有更多的人接受在线培训,在线培训网站将面临更加严重的压力考验。因此,网站性能对于在线培训相当关键。
二、高性能在线培训网站系统结构设计方案
高性能的在线培训平台需能够承载大量用户的高并发访问,同时要兼顾效率和安全,并且系统还需要做到可靠、可扩展以及易管理维护。系统的设计原则为:通过集群的方式将业务分摊到多台服务器;采用负载均衡机制;采用缓存机制;数据库服务器与应用服务器分离;程序数据与应用服务器分离;网络主干达万兆级别;网络安全与坚固;数据库采用集群技术,且能够保证高可用。
按照此原则,高性能的非学历在线培训网站可以分成几个子系统:前端应用系统、应用交付系统、网络与安全系统、缓存系统、数据库系统、存储系统。逻辑结构图如图1如所示。
(一)前端应用系统
前端服务器负责处理事务响应,服务器硬件标准化配置,可以多台服务器运行一个业务,也可一台服务器运行多个业务,根据实际情况进行调整,如某业务访问量大,可以增加该集群的服务器节点数量。可采用虚拟化技术,将物理服务器划分为虚拟机,将业务分摊到虚拟机上面运行,通过虚拟化技术将物理服务器变为硬件“资源池”,以使服务器资源能够根据业务需要进行在线、动态、弹性的调整,方便服务器的管理与维护。
(二)应用交付系统
应用交付系统做两件事情,一是负载均衡,二是应用加速。负载均衡可以采用硬件方式或软件方式。硬件负载均衡性能强、效率高、稳定性强、方便管理,缺点是投资大。软件负载均衡性能、效率与稳定性不如硬件方式,配置与管理复杂,优点是投资少。两种方案结合使用的话,能够达到比较好的实际应用效果,且性价比较高。利用负载均衡技术,前端应用服务器就能够根据业务需要建立集群了,集群的优点是分摊压力,提高业务性能,避免单点故障。负载均衡器则分配访问流量以及保持Session粘性。如何吸引用户长时间待在平台上学习,离不开好的用户体验,因此应用加速十分必要。应用加速的目的是提高应用的响应速度,改善用户体验。采用的手段有优化服务器和带宽利用率;对来自web应用的动态数据进行压缩;优化用户HTTP与TCP连接;Web应用加速等。应用加速一般采用硬件的方式,部分负载均衡设备集成了应用加速功能,可用其替代。
图1 高性能在线培训网站逻辑结构图
(三)网络与安全系统
1.网络。在线培训内容以视频为主,访问流量往往会比普通网站大,因此网络主干必须是高容量的,建议万兆级别。交换设备建议采用模块化可扩展的,便于维护与扩容。
2.安全。保障平台安全需要利用多种安全手段,硬件防火墙安全网关通过定期与安全中心的防御数据交互,保障防火墙系统对外来各种攻击的防御能力,使在线网络能在最安全的环境下良好运行。采用流量清洗设备,主动检测和分析出口流量,发现异常流量将进行牵引与清洗,旁路模式运行不影响网络性能。部署监控平台,对平台流量与网络状况进行时时监控,全面的检测在线培训平台内外网网络运行状态,对于异常状况能够报警、定位故障点并追踪攻击来源。采集、管理网络设备及应用系统等的日志,并能对日志进行分析、审计与存储。若平台工作异常管理人员可通过监控数据来分析原因。
(四)缓存系统
为平台建立缓存系统能够减轻服务器的压力,提高平台的访问效率,改善用户体验。缓存的对象通常是静态文件与数据库,在线培训课程中含有大量的图片、动画等静态文件,数据库查询频率也非常高,因此很适合采用缓存机制。目前比较常规的方式是内存缓存,通过一定的技术手段将网站静态文件与数据库存放到缓存服务器的内存中,用户访问网站时首先访问缓存服务器,若缓存服务器有访问数据则将结果数据返回给用户,若没有再去业务服务器与数据库中查询。缓存服务器需配置高内存,可以通过负载均衡器建立集群,提高缓存规模,避免单点故障。可以利用开源工具,如Memcahd搭建缓存服务器,也可以花钱购买专业的缓存服务器。需注意的是,不管采用哪种方式,都需对软件平台进行一定的调整与改造。
(五)数据库系统
数据库系统是在线培训网站的核心,和前端应用服务器一样也需要解决大并发响应,单点故障以及高可靠性的问题。我们从提高数据库并发响应能力以及可用性两方面进行设计。
1.数据库规划
数据库服务器将前端业务服务器响应的事务进行库处理,在一个合理的库结构上进行技术改造才能得到好的效果,因此首先根据数据库业务进行的规划,将读写频率不高非关键数据业务拆分到独立的服务器上运行,非学历在线培训业务模块通常分为以下几块:在线学习、在线测试、成绩统计管理、人员管理、用户认证与报名、课程管理、资讯管理、学员成绩档案管理、数据统计管理。可将这些业务拆分到四组数据库服务器中,主库承载在线学习、在线测试、成绩记录、课程管理与资讯管理业务,主库只记录当前年的学习记录。人员信息管理也是关键业务,但由于注册用户多,若与主库在一起既影响人员信息管理效率又会拖慢主库的性能,因此人员库从主库剥离,由单独的服务器承载,形成人员信息管理与用户认证库。学习档案数据量大,但是查询频率低于其它业务所以进行拆分,学习档案库承载除当前年以外历年的学习成绩。数据统计库承载各种数据统计业务。负载均衡与高可用技术多种多样,没有哪种技术是一劳永逸的,实际应用中可根据自身情况综合实用。
2.Oracle数据库负载均衡与高可用
Oracle的处理办法是利用RAC组件,全称real application clusters,译为“实时应用集群”,该方案需要共享存储的支持,数据库放置于共享存储中,通过RAC组件建立数据库集群,集群可以支持至少两个以上的数据库节点,每个节点都处于在线状态,可同时工作处理事务的读写工作。节点之间既同时工作又相互备份,任何节点故障其它节点都能够正常工作,不会影响业务,性能不够可以通过增加节点服务器来解决。此方式在提高并发响应能力的同时也增强了系统的可用性,避免单独故障。
3.SQL SERVER数据库负载均衡与高可用
SQL SERVER数据库本身没有负载均衡机制,可通过一定的技术手段来优化实现大并发响应。方案:将数据库读写分离,读与写的操作由不同服务器承载,SQL SERVER无法处理多台数据库同时写入同一个库,因此写操作用一台高性能服务器承载,读服务器则可以多台建立负载均衡集群。读写数据库之间采用复制机制或者AlwaysOn可用性组来完成数据同步。写服务器的单点问题可以用数据库镜像、故障迁移群集或者AlwaysOn可用性技术来解决。
(六)存储系统
存储系统系统能够提高数据的读写速度保证数据的安全可靠,改善平台响应与用户体验。在线培训网站的程序、课件以及视频文件可从服务器硬盘中迁移到存储系统中。存储系统有SAN方式、NAS方式以及闪存卡方式。高性能在线培训网站前端应用服务器会比较多,必须采用一定机制来保证数据的共享,否则数据庞大维护会非常困难,因此NAS与闪存卡的方式就比较适合了,两种方式各有优缺,NAS通过硬件的方式保证数据共享,但是读写效率比闪存卡低,扩展性差,管理维护复杂。闪存卡使用固态硬盘读写效率高,闪存卡集成在服务器上,可以通过增加服务器与闪存卡来横向扩展性能,扩展性很强,数据同步由软件完成,因此共享效率低于NAS。采用哪种方式根据实际情况进行选择,也可以两者结合使用取长补短。
[1]李龙.企业门户服务器高可用技术方案探讨[J].企业技术开发,2012,(7).
[2]王赞.在线学习系统的数据库高可用性研究[J].现代教育技术,2009,(9).
[3]马淼.高性能网站优化设计[J].中国传媒科技,2012,(10).
[4]饶磊,汤小春,侯增江.服务器集群负载均衡策略的研究[J].计算机与现代化,2013,(1).