张玛丽
(山西职业技术学院,山西 太原 030006)
大型网站分布式架构的研究和应用
张玛丽
(山西职业技术学院,山西 太原 030006)
随着互联网信息化建设和电子商务的快速发展,导致网站规模不断扩大,安全性和稳定性的规格不断提高,从根本上已经有了改变传统网站系统架构设计的需求,需要从以前简单的单节点服务器架构,逐步过渡到多台服务器节点、多种业务节点的服务器架构形式。采用分布式服务器来部署网站的整体结构,能够有效提升整个网站系统的扩展性和稳定性,进一步提高网站系统的容错性和安全性。
站群;分布式;大规模网站
根据网站系统服务对象的不同,每个大规模网站的搭建架构也不同,有效合理的处理文件、数据库、缓存以及负载均衡是网站架构的重要内容,其主要目的就是要提高网站的综合性能,无论从安全性、访问速度和扩展性上都必须要满足当前以及今后的发展。虽然部分网站系统级别还算不上大规模网站系统的级别,但是在建设部署的时候采用分布式结构标准,可以使部署后的网站在开发和使用中满足所有应用的需求,提高网站系统的信息化建设标准。
1.1 大规模网站系统的安全性
安全性是网站系统的生命线,任何网站首先要保证的就是其自身的安全。尤其对于大规模网站系统而言,涉及到多个应用模块和应用系统,保证每一个环节的安全性才能够保证整体架构的安全。网站系统的安全性包括硬件安全和软件安全两个方面。
硬件安全:网站存放的服务器,首先要保证其物理安全。从机房建设中的防火防盗,到电源配置中的断电续航能力,再到服务器硬件的容灾备份,每一个环节的故障都能够直接导致整个系统的崩溃。在资金允许的情况下,需要充分考虑到机房的门禁、供电、防火防盗等一系列问题,尽可能的以高标准严要求的规格来对机房硬件环境进行全方位的建设。
软件安全:网站系统对外开放,目的是为了让访问者可以随时查看网站内容,了解最新动态。这种全天候不间断的网络服务不止为用户提供了便利,也给不法人员提供了开放的大门,导致部分非法人员利用技术对网站进行非法访问和攻击。尤其是电子商务网站系统,涉及到购物与支付业务,对安全的要求更加迫切。面对各种各样的攻击和信息泄露,网站系统要能够在访问权限、身份识别、安全加密、防篡改和防攻击等多个维度进行整体防护,保证网站系统的稳定性和安全性。
建设网站系统的硬件环境,目前主流的方式有两种:自建机房环境和租用云空间环境。
从自建机房的角度来讲,在前期建设的初始阶段就需要有高要求高起点的规划,比如配置专业的供电设备和空调设备,部署专业的硬件防火墙来隔绝外围的网络攻击和非法访问,配置数据储存和提高灾备能力等。这些投入在面对较小的网站系统时,往往面临性价比较低的问题。
从租用云空间的角度来讲,前期很少的投入就可以快速部署我们的网站系统,我们不需要再去考虑机房的硬件环境和建设周期,而且云空间采用的先进防火墙技术和数据灾备恢复功能,在安全性和可靠性方面都有足够的保障。目前腾讯云、阿里云已经能够为用户提供各种配置和各种要求的空间服务,能够保障大规模网站系统的运行和安全。
1.2 大规模网站系统的扩展性
网站系统的规模和复杂度会随着业务系统的增长和多样性而发生变化。在网站系统的不断更新和变化中,会产生成倍的图片、视频等大容量附件以及一些垃圾信息。随着时间的推移,网站系统能否继续保持良好的可读性和可管理性,和网站系统在建设之初对于整体架构的规划有着密切联系。网站系统在规划的过程中,要充分考虑耦合度和容量扩展的问题。将网站程序、数据、文件等资源分布在不同的服务器上,根据具体的应用调整服务器的硬件配置,以便达到最佳性能。在程序设计方面,数据和页面分离、内容和表现分离,能够使各功能模块相互独立,有效提高网站的扩展性。
1.3 大规模网站系统的高可用性
对一个大规模网站系统而言,基本功能就是能够承载大量用户同时访问,提供高效可靠的服务。网站全天24小时提供不间断服务,需要网站系统本身既要具备长时间提供服务的高性能和持续性,也需要在网站出现故障时能够及时排查问题并恢复网站运行。单台服务器由于单节点的特性,在网站运行期间,都有可能出现访问瓶颈或者服务器故障。提高高可用性的首要方法就是使用负载均衡的功能,根据网站访问的带宽和来源进行有效分流,减轻单台服务器的访问压力。
利用虚拟化技术中的HA技术,建立高可用集群服务,能够有效避免单节点服务器发生故障出现的问题,并且能够利用多主机建立的私有云进行服务器漂移,极大提高网站系统的可用性。
根据大规模网站系统的主要特性,进行大规模网站系统的建设应该从两个角度出发。首先在网站架构中,硬件服务器的部署应该符合安全性、高可用性和扩展性。其次,在网站搭建中,从开发语言、环境部署以及个性化建设方面,也要符合可行性、高效性和可管理性。
2.1 大规模网站系统硬件系统架构
硬件系统采用分布式架构方式,能够使整个系统实现内外网的隔离、发布和管理分离、动态和静态分离,如图1所示。
图1 硬件系统架构
发布网站服务:网站系统设置独立对外发布服务的服务器组,由两台服务器组成。服务器之间采用负载均衡配置,WEB服务器1和WEB服务器2对外发布网站服务,采用同步技术及时更新网站内容,任何一台服务器出现故障,都不会影响到网站访问。
动态程序和静态页面分离:由于网站发布程序采用动态技术实现,可能会在程序和数据库两方面留下漏洞,致使服务器受到攻击,产生安全隐患。采用动态程序服务器和静态发布服务器分离的技术,将产生的网站内容页面同步发送到WEB服务器1和WEB服务器2,对外可见的服务器只保留网站最基本的发布访问功能,能够有效减少服务器本身的漏洞。
发布和管理分离:网站发布服务器采用模块化CMS系统进行内容管理,对多个站点进行管理,集成多个功能模块。有效的统一了数据库资源,方便各种数据在整个站群中实时调用,实时备份,保障数据安全。
网站维护安全:整体架构采用内网安全隔离技术,配置一定安全策略和规则,提高服务器访问的安全性。在网站发布中,一方面提高网站验证的复杂度,另一方面也可采用VPN访问方式进行网站管理,增加网站防护的手段。
分布式存储:配置独立的文件服务器解决图片、下载、视频等资源的扩展性,不论网站需要扩充多大的业务,在服务器容量方面也不会产生瓶颈。
2.2 大规模网站系统软件架构
开发大规模网站系统,在软件方面需要重点部署数据库、文件系统结构、负载均衡以及缓存(如图2)。
图2 软件系统架构
数据库选择:WEB服务开发中,可以使用的数据库系统有很多。在大规模网站开发中,数据库要能够满足大量用户高频度的访问,在选择上最好采用ORACLE或者SQL等高性能数据库。
文件调用:文件服务器按存储文件的类别进行划分,访问方式采用域名访问,如images.xxx.com、video.xxx.com。这样做的好处是方便各个系统单独调用,也方便资源管理。
负载和缓存:针对于高并发的访问场景,缓存可以降低系统的负荷,提高吞吐量。缓存不是网站的全部内容,会带来命中率和存储一致性的问题。采用热点数据存储,淘汰老旧数据,逐步增加系统规模,搭建分布式缓存系统,有效提高网站负载能力和减轻压力。
一个大规模的网站系统,不仅需要在系统架构上合理设计和实施,还需要在用户访问体验上进行逐步优化,提高用户体验至关重要。
3.1 内容分发网络
CDN的全称是Content,即内容分发网络。一个大规模的网站系统,面对各个地区的网络访问,反馈速度是不同的。为了提高用户访问速度,在不同地区放置节点服务器,形成智能虚拟网络,根据用户访问流量来源,引导用户访问最新最快速的节点。CDN的优势在于不同地区不同时段的用户都会快速打开网站,利用虚拟主机部署CDN,后期维护工作量会大大减少,用户访问体验也会得到提高。
3.2 高性能搜索引擎
在访问大型网站系统的时候,面对海量的数据信息,需要建立一套有效的搜索引擎来反馈用户的搜索要求。搜索引擎在数据库中执行操作,既要提高搜索的精度和速度,还要降低服务器在执行搜索任务时的性能损耗,所以,采用一套高性能的搜索引擎也是我们需要重点考虑的方面。
采用高性能的搜索引擎,要考虑几个方面的问题:1) 能否应对海量的数据,是否支持读写分离,是否支持分布式搜索;2) 搜索中建立的索引时效性如何,是否实时更新;3) 查询语言是否丰富,接口是否丰富。常用的企业级搜索引擎如sphinx。
3.3 平台监控统计
大规模网站系统使用了多种设备和技术,如网络设备、各服务器硬件和软件及数据库,数量庞大,出错的概率也相应增大。所以需要对重要设备进行实时监控,以便管理人员能够实时了解各设备和数据的使用情况,进行监控预警,及时做出相应措施。
一个大型的网站系统,涉及到方方面面的技术和设备,可以采用多种组合来进行系统架构的设计。不同的系统,关注的侧重点不同,如电商网站侧重的是用户访问体验、数据的安全性和实时性,对实时计算有较高要求;内容咨询类网站侧重的是用户的搜索速度、下载速度以及内容的时效性。在搭建大规模网站系统的时候,统一部署统筹安排,才能够在开发和应用的各个阶段给予网站更好的保障。
The Research and Application on Distributed Architecture of Large Scale Web Site
Zhang Mali
(ComputerEngineeringDepartment,ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)
With the rapid development of Internet information technology and e-commerce, it causes the continues expand of site scale, the standard of security and stability is continuously improved, so fundamentally, it is necessary to change the traditional site architecture design that is from the previous simple single node server architecture gradually transit to the server architecture form of multiple server nodes and a variety of business node. The using of distributed server to deploy the overall structure of the site can effectively improve the scalability and stability of the entire website system, and further improve the fault tolerance and security of the site system.
station cluster; distributed; large scale of website
2017-02-09
张玛丽(1983- ),女,山西万荣人,讲师,硕士,研究方向:软件工程。
1674- 4578(2017)02- 0073- 03
TP311.5
A