网站技术设计完全手册(下)
2000-08-17 11:11:39
很多新推出的站点和很多想做站点的人,都没有把站点的技术看得很重,甚至有人认为,网站最重要的是内容,花很大的力气把内容做好是网站发展的根本。实际上正是这样才走入了网站建设的误区。
但对于一个网站来说,基本上是由前台和后台两个方面构成的,我们用户只能看到最终的使用界面,而事实上,这个界面的好坏直接取决于网站后台结构的建设。比如说,我们只看到页面是否美观,使用起来是否方便,是否可以更好地交互,但事实上,没有一个强大的后台支撑,上述的这些方面都不可能更好地在Internet上实现。
基于一个模拟的环境或是一个量非常少的环境中,我们更加无法感觉到技术对于网站建设的重要性,真正的运行所发生的情况是模拟所永远无法想像的。在实践中去摸索、去总结,更多地吸收别人的经验,对于网站内部结构的规划、设计、扩展与系统维护来说,这是更重要的。
在上一期我们谈到了网站的上层结构和网站的可使用性,以及高性能网站与网站可扩展性,这一期我们将继续上一期的话题,构造一个尽可能完美的站点。
【 服务器群的网络连接 】
服务器群的连接采用现有的局域网技术。最关键的是提供足够的转换带宽和避免任何流量瓶颈。网站服务器之间的数据流量样式基本以N-对-N形式。所以,吉位的以太网络交换机因性能价格比高而被广泛采用。
另外在设计网络连接时,一些新型的交换机产品值得考虑去采用。第一是带有路由功能的网络交换机,其次是最新的带有第四层(即信件运输层〕转换功能的交换机。这方面有美国Alteon公司生产的网站系统系列产品和美国Foundry公司的BigIron系列产品。
网络连接采用的最基本的以太交换机只提供数据通讯中所说的第二层交换功能。服务器群网络需要通过一额外的路由器才能连接到互联网上。从第三层IP协议的角度来讲,服务器只用第二层交换机相连,网络呈平线式,缺乏IP层次感,不利于未来扩充,而且无法对某部分网络实行专门管理。带路由功能的第三层IP交换机,从交换效率、扩展性和管理难易上更值得选择。
最新的第四层交换机,比IP转换器更为智能化。为使网站服务器之间的信息传输增快,关键是要把一段段语意完整的信息(网络技术中专称为信件,不同于一般讲的电子邮件〕最快地在服务器之间传送。对此,第三层交换机尽管转换组成信件的IP数据包,却无法保证组成一个信件的所有IP数据包,能够连串地被转换到目标服务器。只有第四层交换机通过更深一层地探测IP数据包里信息,而确定属于同一信件的所有数据包,然后对它们进行连串交换,从而实现高效的信件交换。可以预见,第四层交换机由于高性能和易于服务器群的扩展,将会越来越多地被采用。
【 服务器的硬件配置 】
这里略带一提服务器的硬件配置,这一话题相信很多人比较熟悉。服务器的硬件配置包括:中央处理器(CPU)、内存(Memory)、内存公共连接(Memory Bus)速度、交换空间(Swap Space)和硬盘的大小、网络适配器。在考虑时,除了一般常识外,注意不要让任何一部分成为瓶颈阻碍,同时注意留下一两年内所需的扩充余地。在网站运行过程中,要对服务器的使用情况进行监视,从而确定哪部分需要扩充。
【 服务器软件的设计实施 】
服务器软件的设计和实施同样对网站的性能,尤其对软件所提供的那项网站应用的性能起着极大的影响。
首先对编程语言要有选择。解释性语言,如TCL、UNIX Shell Script, 运行起来比较慢,不适合用在有实时要求的软件和经常使用的软件。Perl是另一种解释性语言,但运行前,却经过Perl特有的编译和把编译后的程序载入内存的过程,因此运行较快。C/C++写的程序运行最快,但最难写而且不便调试。
其次要对程序进行优化。避免多余的输入输出操作,提取公共和反复使用的程序行作为子程序。而且可以考虑用C/C++来写上述子程序,以达到最快的运行速度。
网站的可扩展性
一个高性能的网站将很快地吸引用户。当用户增加的同时,网站管理人必须回答一些问题:现有的高性能以目前网站服务器的容量能维持多久?当现有容量无法支持更多用户时,将如何升级现有系统?这次升级能维持多久就要面对再一次升级?这一连串问题如不事先想好,都将使技术管理人员措手不及。
更可行的策略是:从网站结构设计的一开始便考虑清楚技术结构的扩展路径,以备各种大小用户团体的需求。
网站可扩展性设计有以下几项设计目标:
1、保护现有的设备投资;
2、尽可能减少因扩充系统而造成的下网时间。
在上面讨论网站高性能时,已经提到分布式服务器群结构优于独立服务器,而带IP层次感的服务器网络连接优于平线式连接。分布式服务器群结构和网络的IP层次连接,都是可扩展网站设计的极好出发点。
在此之上,随着服务器数目的添加,需要注意网络带宽相应增加和网络IP范畴的调整。另外,个别集中式服务器,如防火墙、目录服务器,和用户数据库自身的容量也需要扩展。
【 网站的可用性和可维护性 】
一个好的网站除了易于使用和具备高性能外,还必须注意控制因故障或技术维护而造成的下网时间。下网时间直接影响到网站的可用性。可用性有别于前面提到的可使用性。准确地说,网站的可用性指的是系统在某时间段内总共运行时间占这段时间长度的百分比。网站的可用性至少应在90%以上。否则很快就会无人问津。其他现有的计算机系统一样在接受着可用性指数的考验。例如,IBM公司的银行交易系统已经运转了超过三年而从未需要停机维修。一方面这是因为这类系统承担至关重要的任务,任何停机都会造成重大的经济损失。
网络的迅速渗透,尤其是在线经济的发展,使得网站在日常生活中所承担的角色越来越重要。对网站的可用性要求将会越来越高。网站下网所造成的后果会越来越严重。一个月前,美国的在线拍卖行eBAY公司,两次因网站技术故障造成拍卖无法进行。该公司的股票价格也因此大跌近10%。
提高网站的可用性有以下几项措施:
◆1、严格把关网站的软件质量
◆2、在网站结构设计时,适度添加网络连接与服务器的安全盈余。这样,当主服务器出故障时,可以转换到备用服务器上。
◆3、实施有效的数据备份,以避免因故障造成的永久性数据丢失。
◆4、在网站设计时,积极考虑网站的可维护性。
上面几种做法可以说是相辅相成的。前面两种措施具有很好的防御性。数据备份最好地杜绝了灾难性后果。但是,这些措施均无法把故障发生的几率降为零。一旦故障发生,必须讲求网站的可维护性。
一个可维护的网站具有很好的故障检测性。这是网站下网后,排除故障所需要的第一要素。平均而言,计算机系统故障排除时间里,故障检测时间占了近90%。尤其绝大部分的计算机系统故障源至一两行的程序错误,俗称软件虫。修复时间与再测试时间并不长。更重要的是以最快的时间把故障检测出来。
因为有了好的故障检测性,一个可维护的网站对于排除故障所需要的时间才有了预见性。在运作一个网站时,这种可预见性有时比排除故障本身还重要。当一个网站因故障下网,我们要告诉用户的第一件事就是什么时候网站可以重新运作。这意味着,网站技术人员必须在很短的时间里大概诊断出毛病。也就是说,从问题的征象中,很快地看出有问题的部件。
故障检测性与排障所需时间的预见性都来自一个网站的可维护性。
网站的安全管理
网站的安全管理包括防止非法个人对网站服务器的直接侵害,和防止非法个人盗用他人存在本网站的秘密资料。不容置疑,也无需多言,安全管理是相当重要的。网站的安全漏洞如被利用,其危害是难以估量的。
对于网站安全管理,另一个鲜为人知而大家必须知道的事实是,没有绝对的安全,只有使网站更安全的管理办法。另一方面,加强网站安全是延续不断的过程。在这过程中,新的漏洞将会被发现,新的有效的技术措施将会被制定。经验也会一步步地积累。就现今而言,比较有效的措施有以下这些:
1、在网站服务器群结构中,设置前置防火墙。
2、为避免暴露服务器群内部的服务器分布架构,可以采用IP网址翻译法(Network Address Translation)或IP遮盖术(IP Masquerade), 使得内部服务器的网址与名字不从网络外泄。即使有人从其他途径弄到以上信息,也无法从外围直接不通过防火墙而进入内部服务器。
3、利用各种现有的几种用户使用目录协议(Directory Access Protocol)实施用户控制。这一技术比以前常用的网络信息系统(Network Information System)更进一步,实行多层次用户管理,而非单一“是或否”的放行与排斥。
4、除此之外,运用管理一般计算机系统常用的办法。如从服务器上除掉Mail和Telnet这类用不着又容易被“骇客”(Hacker)利用而打入系统的应用程序。又如去掉多余的用户目录,以减少被攻击的可能性。
5、融汇现有的防火墙和服务器安全管理产品,而不要自己再去发明同样的东西。Sun、 Cisco、Microsoft、 Netscape均有这类商业产品,Linux亦提供免费可下载的软件。
以上所列难为一完整的清单,但确为我们将采取的技术措施,以保证网站用户数据的安全。
总 结
以上章节粗略探讨了网站上层的技术问题。网站结构设计是一个多维的、立体进行的过程。设计最终是要给用户提供一个易于使用的网站。但“易于使用”包含了多重涵义。网站可用性的多方面,至今仍在工业界广泛讨论研究。多维的设计过程包括了对网站高性能、可扩展性、可用性、可维护性及安全管理的多方面考虑。这些方面也是紧密相连的。这篇文章对以上各方面的主要问题作了介绍讨论。本文并未提供所谓手册式的“设计圣经”。因为这样的“圣经”还不存在。互联网、电子商务、信息网站一切都在变化中。如果把这一切看成富于挑战的游戏的话,那么游戏的规则正在形成,谈不上各种对策策略。但这种情况并不意味着我们将一筹莫展。因为,在了解了各种问题之后,我们可以一边做,一边学,一边探讨。这也是笔者最后想鼓励众人和自勉的话。
-------------------------------------------------------------------------------- 保障网站的可维护性需要考虑以下方面
◆1、网站必须由功能范围分明的技术模块组成。这样当故障出现时,可以逐个模块地检测。
◆2、技术功能分化有多种手段,其中一种是功能模块的物理分离。 在网站服务器群中,各个服务器分担着不同的任务,它们集合起来完成一项任务:支持网站用户的每一个需求。在设计这种分布系统时,除了前面提到的网站高性能所需的同步处理、资源共享,这里还需考虑保持系统可维护性所需的功能分开。例如,电子邮件和音乐试听是两个很受欢迎的网站节目。它们分别由两个服务器支持。这两个服务器软件功能复杂,出错和需要版本升级的可能性大。如果把这两个服务器软件放在一台机器上运行,其后果是当音乐软件出故障需维修时,电子邮件也同时无法使用。这显然不是一个有效的设计。在这种情况下,电子邮件和音乐试听应由两个分开的服务器来支持。
◆3、另一功能分化的手段是功能模块的逻辑分离。
◆4、在软件设计和系统实施时,提供足够的系统监察信息和调试手段。计算机软件的错误很多情况下,可以从其运行过程输出的事情记录中检查出来。
◆5、注意保持服务器软件的平台无关性。这样不管服务器使用什么操作系统,服务器软件都能无需更改而正常运行。
摘自《赛迪网》 孙路/文 |
404 Not Found
404 Not Found
nginx
|
|