1、在线培训系统平台架构简介精品文档在线培训系统平台架构简介一、 技术架构在线培训系统完全基于云架构进行设计、开发、部署。平台部署在Linux操作系统上,采用目前运行稳定,安全性很高的JAVA语言开发,使用开源的MySQL数据库存储数据,可以在平台上部署Redis、Memcache、MangoDB、Node.js、Hadoop等著名的第三方开源软件,支持万人以上规模的用户并发访问。整体上看,这种在线培训平台具有速度快、稳定性强、安全性高、易于扩展的特点。下图是在线培训系统的架构图:二、 架构特点这种架构具有安全性高、稳定性强、运行速度快的特点,从一台服务器到集群服务器再到分布式部署,这种云计算平台
2、都可以轻松胜任。下面详细介绍下平台架构的特点:操作系统操作系统采用Linux作为整个平台的操作系统。Linux操作系统自诞生以来,一直以稳定性、开放性著称。对比Windows操作系统,Linux操作系统拥有相当多的优点,这些优点可以帮助我们更好的对平台进行管理,保证平台能够高效、安全、稳定的运行。1. 免费并开源相比Windows操作系统的昂贵费用,Linux操作系统免费的特点非常具有竞争优势。因为免费,所以Linux操作系统在服务器平台上拥有比Windows操作系统更广泛的用户群体。而开源的特性更是让世界范围内的优秀开发人员和著名企业为Linux贡献高质量的代码,保证Linux操作系统能够得
3、到及时改进,从而建立了完善的软件生存环境。对比Windows,作为纯粹的商业软件,Windows不可避免的采用封闭策略,所有Windows的功能只能由微软公司自己开发和维护,这种特性导致了Windows在产品改进的及时性上、新技术应用的有效性上打了折扣。Linux和Windows平台的横向对比,如下图:比较项目LinuxWindows结论基本安全性严格区分内核空间和用户空间,并提供对SELinux的支持,可提供B1级的安全支持。将许多功能集成到内核,内核集成的应用越多,其运行风险也就越大。Linux更优网络安全性支持OpenSSL, OpenSSH, IPSec支持SSL, SSH, IPSe
4、c两者相当协议支持Linux遵循所有的开放标准部分遵守,但仍有一些私有协议。“标准”代码私有,使得缺陷检测和错误修正更困难,修复周期长;另外,私有协议使得异质系统间的互操作性受限。Linux更优易用性可以满足基本的办公需求,同类软件选择较多;软件易用性较高;Windows更优软件成熟较Windows稍逊;有较好的用户基础,用户对Windows的熟悉程度较高现有用户对Linux的熟悉程度不高软件成本Linux不需要软件授权费用;Windows需要高昂的软件授权费用;Linux更优同时包含了多种免费的办公应用软件;其他办公应用软件需要另外付费购买;维护服务费用低;维护成本高;硬件成本Linux可以
5、在低配置的机器上正常运行,可以重复利用现有设备。Windows对系统的要求较高,需要硬件升级或者重新购买终端设备。Linux更优系统稳定性Linux最初是针对服务器的一款产品,广泛应用于各类核心服务应用,在稳定性方面Linux优势明显。Windows主要针对桌面用户,其稳定性与Linux相比有较大的差距;Linux更优Windows 和它的用户界面是无法分开的,用户界面崩溃,对用户来说就相当于操作系统崩溃。服务支持目前很多Linux厂商在国内都有核心的研发团队,本地服务支持能力强由于知识产权的问题,导致操作系统部分的开发不会在国内进行,服务支持能力有限Linux更优可定制性Linux本身具有很
6、强的可塑性,用户可根据需要对操作系统进行裁减定制,将不必要的应用删除或者禁用。Windows将很多功能都集成到系统内核之中,这使得很难对其进行裁减定制。Linux更优病毒危害病毒少,故障维护成本低;病毒多,一旦系统大规模感染和可能导致整个系统瘫痪,故障维护成本高;Linux更优2. 安全性Linux操作系统因为开源的原因,代码可以被任意修改和查阅。因此,任何Linux的漏洞都可以被数以万计的研发工程师及时发现并提交补丁进行修正。在这一点上,封闭的Windows操作系统只能靠着微软公司内部的几十名研发人员进行修正。优劣胜负,立见。我们可以用一个表格来对比Windows和Linux操作系统在安全性
7、上的差别。如下图:分类特性LinuxWindows定性得分基本安全验证、访问控制加密、记帐日至可插入的认证模块、插件模块、Kerberos、PKI、Winbind、ACLs、LSM、SELinux、受控的访问保护实体检测、内核加密Kerberos、PKI、访问控制列表、受控的访问保护实体检测、微软的应用程序加密程序接口。Linux更加出色网络安全与协议验证、层、网络层OpenSSL、Open SSH、OpenLDAP、IPSecSSL、SSH、LDAP、AD、IPSec两者都很不错应用安全防病毒、防火墙、入侵检测软件、Web服务器、电子邮件、智能卡支持OpenAV、Panda、TrendMic
8、ro、内核内建的防火墙功能、Snort、Apache、sendmail、Postfix、PKCS 11、exec-shieldMcAfee、Symantec、Check Point、IIS、Exchange/Outlook、PCKS 11Linux略胜一筹分发与操作安装、配置、加固、管理、漏洞扫描器安装与配置工具、Bastille、大部分的管理通过命令行完成、Nessus、发行版相关的Up2Date、YaST、WebminWindows自带的安装和配置工具、没有特定的加固工具、管理GUI、使用默认安装的配置。两者都很不错确信度常见的公共标准证书、缺陷处理Linux达到了EAL3,有较好的缺陷处
9、理能力Windows达到了EAL4,有较好的缺陷处理能力Windows更加出色开放标准IPSec、POSIX、传输层安全、常见标准Linux遵循所有的开放标准Microsoft也参与了开放标准,但仍有一些私有标准。Linux更加出色3. 性能Linux的稳定性是由于它没有像其它操作系统一样内核如此庞大、漏洞百出。Linux与其它Unix系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。原因并不难以得到,系统的稳定性主要取决于系统设计的结构。连续向后兼容性使那些编程风格极差的应用软件勉强移植到Windows的最新版本,这种将就的软件开发模式极大地阻碍了系统稳定性的发展。Linux所
10、共享的Unix设计体系是经过长期实践考验的,Linux吸取了Unix系统近1/4世纪发展的经验,Linux操作系统体现了最先现代化操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式,这保证了任何系统的漏洞都能被及时发现和改正。三、数据库架构数据库是麦塔在线培训系统运行的基础,随着平台运行时间的增长,数据量的增长也会达到海量级别。因此,一个好的数据库架构设计对于网站未来的发展起到了决定性作用。根据业务的发展,数据库的架构在不同的阶段有不同的侧重点。第一阶段:MySQL主从架构这是系统的初级阶段,这个阶段的重点是实现平台的重要功能,数据库架构只要能满足初期
11、应用的需求即可。第二阶段:按功能分配机器这一阶段的重点是:优化表结构,索引,查询。不着急加服务器。向外扩展-按功能将数据库分开,提高内存使用率,变相增加了内存第三阶段:为从库的读取业务增加缓存机制随着数据量的增长,从库的读压力变的很大,从库io出现问题,增加从库几乎不能解决问题,应该想办法减少io操作。减少io操作可以采用以下办法:- 增加机器的内存向上扩展- 应用层添加缓存向外扩展- MySql服务器配置优化优化跟io有关系的配置信息第四阶段:增加NoSQL服务,再次扩展。这一阶段增加Redis作为Session缓存,减轻主库一部分写压力。第五阶段:按功能分库这一阶段随着网站运营不断深入,新
12、的板块开始上线,为了减少主库io操作,按业务将数据库分成多个主从结构,将写的压力分散到多个数据库上第六阶段:水平分表,解决单表数据膨胀的问题这一阶段会遇到单表数据过大、运维需求增多、业务转换较大,这些问题直接导致从库的io压力直线上升。因此,将单张表拆分到多个数据库中,从而将数据尽量装入内存,从而减轻从库的io问题。当网站规模达到这一层次的时候,数据安全问题非常突出,这时候,异地备份变得至关重要。以上这些是在平台运行不同阶段我们会遇到的不同问题所采取的解决方案。多年的运维经验告诉我们,好的架构不是设计出来的,是逐步改进出来的!四、系统结构好的运行架构也需要好的平台架构,好的平台架构应该具备低耦
13、合、高内聚的特点,因此,开发并设计一套扩展性极强、效率非常高的平台框架十分重要。如下图:这套架构中,应用层负责实现平台的所有业务逻辑,为了实现更高的运行效率和更好的扩展性,可以把应用层分成Model、View、Control、COM四个部分。Model层负责数据库的操作,我们把数据库的脚本都写在这里,对日后的快速维护很有帮助。View层负责将数据展示在Web页面上,采用了HTML和jQuery作为标准的前台开发语言。在View层,开发独立模板技术。将美工的设计和前端工程师开发完成的HTML页面交付产品经理审核,这些HTML页面可以直接在浏览器上运行。产品经理检查无误后,直接交给后端开发人员,开
14、发人员直接将HTML页面复制到Views文件夹中即可,由自行开发的HTML解析引擎将HTML页面中的JSP部分解析出来。这一套模板引擎技术可以极大的增强前端工程师和后端工程师的配合效率,有效的提高了平台功能的开发速度。Control层负责平台功能的业务逻辑。这些业务逻辑由产品经理负责规划,交给后端的研发工程师实现,最后,美工和前端工程师配合做出HTML页面,由研发工程师整合后发布。COM层是一个独特的结构。它是平台系统结构非常强大的一种体现,它的目的是实现平台功能的扩展。根据COM接口标准,我们可以开发任意功能并对接到平台上。这种方式极大的增强了平台的扩展性和团队协作能力。让工程师在同一个系统架构下,互相协作,既保证了架构的统一性又保证了架构的灵活性。收集于网络,如有侵权请联系管理员删除
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100