郑 州,龚文娟
(重庆市教育信息技术与装备中心,重庆 400020)
近年来,国家高度重视在线开放课程建设与应用工作,并将其定位为国家教育“变轨超车”关键一招,催生了数万门各级精品在线开放课程,有力地推动了教育教学资源数字化的发展。为更好地促进这些课程的建设与应用,实现优质数字资源的共建共享,全国各地省市也结合自身特点,积极搭建基于云计算、云存储、大数据及移动互联的区域化大规模在线开放课程平台,以用于较大区域范围内的课程共建共享,平台既覆盖在校师生,也会向社会公众提供学习服务,这种应用平台必然形成高并发、大容量、高带宽占用的情况,对平台技术路线和数据库设计有较高要求,针对这种应用模式,结合“重庆高校在线开放课程平台”(以下简称:课程平台)建设经验,通过总结归纳平台日常运行中的实验数据,提出适用于区域化在线开放课程平台的技术路线和数据库设计方案。
课程平台采用国际日益成熟的Hadoop大数据计算、云计算等互联网先进技术,全力打造技术先进、简单易用、响应迅速、扩展性强、安全可靠的资源共享公共服务平台,能提供区域内不低于200万用户的在线学习应用服务,满足万人并发在线学习需求,全面保障区域化在校开放课程平台的教学应用与共建共享。
课程平台基于J2EE技术,Nginx、XPE高性能WEB引擎等技术构建WEB服务。依据业务特点,采用关系型数据库MySQL、NoSQL数据库MongoDB存储关键业务数据,以及高性能XPE DB数据库用于存储高并发存储需求的日志记录型数据。以Apache开源技术Lucene、Solr为基础,结合专有中文分词及搜索意图识别技术,构建智能化搜索引擎。以虚拟化技术和专有文档、音视频加工转换技术构建资源自动加工服务集群。采用Hadoop技术生态圈关键技术及其他相关技术构建大数据处理能力,以实现基于用户行为记录的数据分析,并为未来用户行为数据的进一步挖掘提供基础保障。课程平台整体部署于更加稳定的64位Linux操作系统CentOS之上。
程序开发语言以JAVA为主,部分数据统计分析采用Python、C++语言,部分自动任务采用Shell脚本语言,WEB前端主要采用JavaScript语言。技术架构概览如图1所示。
图1 技术架构概览示意图
课程平台整体将采用云计算、云存储和云服务的部署方式,其弹性可扩展的计算资源非常灵活,可根据业务的发展而动态调整。可根据实际使用情况,有效保障平台访问高峰时期对网络、计算资源的需求。
结合负载均衡、高性能XPE WEB引擎,CDN、分布式缓存技术,构建一个动态可扩展的高性能WEB应用。XPE WEB引擎采用编译技术对HTML、XML、JavaScript、CSS进行优化和压缩等预处理。结合以上技术特点,构建具备动态、可扩展的WEB服务,以适应高并发、大规模的访问要求。
由于业务多样性的特点,依据业务对数据存储需求的特点,选用关系型数据库MySQL和NOSQL数据库MongoDB作为主要的数据存储,以及XPE DB作为对极高性能要求的数据存储。MySQL是应用世界排名第二的产品,具备成熟、高性能、成本低的特点。而MongoDB是一个基于分布式文件存储的数据库,能够为WEB应用提供可扩展的高性能数据存储解决方案。XPE DB采用事件驱动的方式、基于LOG型的架构设计,可充分利用硬件资源提供高性能的数据存储。
由于平台需求存储和管理上百万的教学资源,在如此海量的资源中实现精准、快速的检索是非常关键的。平台基于Apache开源软件Lucene、Solr,结合专有中文分词技术,以及搜索意图识别技术,构建分布式的高性能搜索引擎,为平台资源、课程等内容的检索提供保障。
基于文件格式识别、文档转换技术,以及特有的流式算法技术,将文档类资源进行技术转换和加工,实现WEB在线方式的流式播放。支持教学资源文件WPS、DOC、PPT、PDF等常见格式的文档转换。音频、视频类资源文件,进行统一格式、多种码流的技术加工和转换。
资源加工服务,结合Virtual Machine虚拟化技术,实现资源加工转换的虚拟化、服务化。可根据资源文档加工量的多少,实现动态的扩展。结合Secure Link安全连接技术,实现资源的安全点播服务。
图2 Hadoop生态系统
通过Hadoop生态系统中的关键技术,构建动态可扩展的大数据存储、计算,以及数据分析能力,实现基于用户行为记录的数据分析。用户行为记录是海量的,构建10亿甚至更高的数据记录的存储能力也是至关重要的。
HDFS分布式文件系统,有着高容错性的特点,并且可以部署在低廉的硬件上。能够提供高吞吐量的数据访问,提供超大规模数据文件的存储,以满足海量数据记录存储和分析的需求。
用户行为记录数据是用户行为分析的前提保障,用户行为记录的准确性、全面性将直接影响后续的大数据分析应用的价值。
除常见的用户访问行为外,对共享服务平台中最具价值的课程资源学习行为的记录是非常关键的。基于文档类资源、视频类资源的流式播放技术,基于Event捕获的技术,能够准确地捕捉和记录用户更加详细的学习行为。文档类资源,可以细化到每一页,而视频类资源可以细化到每一分钟,如此准确和详细的学习行为记录,将对后续的数据分析带来更大的价值。
基于HTTP(s)协议的REST标准数据接口,数据内容格式采用更加灵活和通用的JSON/XM格式,可最大程度地提高系统接入的可行性,降低接入难度,提高接口的稳定性和可扩展性。
以虚拟化为特征的云计算技术,将服务器计算资源、存储资源以及交换机等网络设备资源进行虚拟化,能够根据业务的不断发展需要,随时提供便捷、动态可扩展的计算存储资源。不仅能够极大地提高资源的使用效率、大幅降低成本,还能够极大地提升管理效率。
云产品和云服务弹性可扩展的计算资源非常灵活,可根据业务的发展而动态调整。可根据实际使用情况,有效保障平台访问高峰时期对网络、计算资源的需求。
为保障平台能够有效面向区域内所有学校师生提供全面、优质的服务,平台将按照大型系统进行建设。构建支持百万用户规模的大型服务平台,为师生提供优质服务。
课程平台基于分布式、集群技术进行设计。平台由一系列可扩展的服务群构成,能够随着服务平台的访问量、数据量的动态增长而进行灵活调整。基于集群方式设计的系统,具备更好的可靠性,当一台或几台服务出现问题时,用户的访问会自动引导到其他服务器而不中断用户的访问。从而使整个服务平台具备更高的可靠性、更好的稳定性、更大的并发服务能力,以便满足不断增长的用户访问需求。动态可扩展的服务架构如图3所示。
图3 动态可扩展的服务架构示意图
平台尽可能以面向服务为核心概念、以服务为中心进行设计,以使平台具备良好的可扩展性和开放性,能够快速适应快速发展的业务引起的变化。
随着大数据时代的到来,基于大数据的分析和应用将创造无限的价值。为保障服务平台中海量用户行为数据的分析,构建大数据计算处理能力,为进行有效的分析和未来用户行为数据的进一步挖掘提供基础保障。
为保障服务平台的安全,平台的建设将依据《信息系统安全等级保护基本要求》中安全保护等级三级的规范和要求进行,确保共享服务平台的安全。
借助于云服务平台的优势,可以选择在物理上相距较远的数据中心作为异地容灾备份,提高抗自然灾害的能力。
对平台运行的基础服务器环境,建立相应的实时监控体系,以使系统管理员能够了解和掌握平台服务环境的运行情况。
平台将基于核心功能、风格简洁、使用简单、以用户为中心的原则进行设计,注重良好的用户体验,构建用户爱用、好用的服务平台。
考虑到学校学生数量众多,学校、个人电脑配备差异较大,浏览器品种众多的原因,平台的设计要尽可能考虑好多浏览器兼容的特性,为广大师生提供便利。能够兼容 IE6.0以上,以及 Chrome、Firefox、Safari主流浏览器的使用。
课程平台有百万用户、千万资源,需要满足上万用户同时在线学习的要求。平台功能丰富,涉及数据类型繁多,且数量较大,同时并发访问要求也高,因此对数据库设计的要求也有着很高的要求。
(1)数据类型多
涉及用户、学校等组织管理型数据,课程、资源、文档等资源型数据,讨论、答疑等生成型数据,用户学习记录、访问行为等记录型数据,密码、学分、交易等敏感型数据,业务操作、关键行为记录等日志型数据等。
(2)数据量大
指百万用户、千万资源、千万生成性资源、亿级学习记录、海量用户行为记录数据。
(3)并发访问高
要满足万人同时在线学习。用户学习时产生大量行为数据,需要实时处理。
(4)数据安全
在线课程平台需要符合《信息系统安全等级保护基本要求》中安全等级保护三级的要求,不仅需要对敏感类的数据做加密处理,而且对数据的备份也有着相应的严格要求。
由于业务多样性的特点,依据业务对数据存储需求的特点,选用关系型数据库MySQL和NOSQL数据库MongoDB作为主要的数据存储,以及XPE DB作为对高并发存储要求的数据存储。
图4 数据库设计概览图
(1)关系数据库MySQL:用户、权限、交易敏感类数据
用户、学校、权限等存在着典型的关联关系,很适合关系型数据库处理。其提供的加密、解密功能更是给较为敏感信息的存储和管理提供了方便。用户、权限、交易类数据量相对适中,且数据检索需求相对简单、明确,其中交易类数据有较为严格的事务保障需求,因此MySQL比较适用。MySQL部署:采用主从结构的方式部署,可完全满足平台的要求。
(2)NoSQL数据库MongoDB:资源、课程等业务数据
MongoDB是一个基于分布式文件存储的数据库,能够为WEB应用提供可扩展的高性能数据存储解决方案。课程、资源等数据的元数据丰富,对扩展的需求较高,而MongoDB模式自由(schema-free)的特点很适合这类业务数据的存储。
MongoDB采用集群的方式部署,由3~4台服务组成,提供可靠、高性能的数据访问需求,并可根据需要动态扩容。在云平台提供MongoDB解决方案的情况下,使用云服务平台提供的云MongoDB存储服务,可提供更加可靠性的数据访问,还可提供更大数据量的存储服务。
(3)高性能数据库XPE DB:用户业务操作记录等日志性数据
XPE DB采用事件驱动的方式、基于LOG型的架构设计,其数据更新可充分利用硬件资源,以达到高的存储性能。XPE DB可达1Mupdates/second的性能。
对于用户操作相关的行为记录类型的日志型记录,不仅对存储的性能有极高的要求,而且对数据的完整性也有极高的要求,因此使用XPE DB存储。
XPE DB部署采用一主一从的方式部署,可满足业务需要。
(4)结合分布式缓存,降低数据库访问压力
分布式缓存,可用于加速网站的访问速度。Memcached是一个高性能的分布式缓存系统,通过在内存中缓存数据、减轻数据库的压力,提供动态数据库,驱动网站的速度。
业务服务在访问数据时,通过分布式缓存服务,优先访问缓存服务。可大大减轻对数据库的访问压力,提高数据库的使用效率。
(5)数据备份、异地备份
至少每天完全备份一次。备份的数据文件,采用保留最新备份、最近一周的备份,最近一月每周数据,以及每月最后一天的数据。同时,根据业务数据的特点,对重要数据采用高级别的备份策略。
借助于云服务平台的优势,选择在物理上相距较远的数据中心作为异地容灾备份,提高抗自然灾害的能力。
(6)安全设置
基于操作系统、网络访问控制,以及数据库本身的权限功能,进行相应的安全设置,确保安全。
(1)基于 Linux部署
MySQL、Mongodb,以及XPE DB均部署在Centos 64位环境,以确保达到高性能。
(2)服务器配置
采用16核、32GB内存、300G硬盘高性能配置。
区域化的课程平台用户受众量大、功能丰富、并发访问要求较高,且对信息安全有着严格的要求,对平台的技术架构、数据库的选用和设计相应也有着很高的要求,都要根据区域化用户体量科学规划,基于成熟、稳定、高性能、适用的原则,选用成熟可靠的信息化产品,这样便于根据课程平台业务数据访问的特点,以不同的数据库处理不同的业务数据,以满足平台对用户访问、数据存储要求的多样化特性。