网站架构探索(1)---序言 王泽宾

跟朋友聊天的时候,发现不少人对大型网站系统架构很是感兴趣,我也很感兴趣,常常会在家里2台笔记本和1台服务器组成的局域网环境里做些实验。我进入IT行业的时间,大约是97,98年吧,那时候PC客户端软件最为盛行,作软件开发是一份很体面也很喜欢的工做。我从Win3.1上的VC1.5开始一直到VC6.0,而后转为.Net开发,基本上都是从事客户端软件开发。本人的性格是危机意识向来严重,因此深感互联网必将盛行,传统软件必将走向没落,因而转向了WEB开发。记得之前去某Portal网站应聘的时候,主考官就问我:你认为客户端开发和互联网开发有什么不一样。我当时的回答是:互联网开发比客户端软件开发简单多了,我不再用考虑那么多的用户环境因素了,一点部署,什么时候何地均可用。
不少年过去了,我再想起当初个人回答,依然以为那个回答是正确的。就产品开发层面来说,互联网开发确实简单多了。这里首先澄清一个概念,我所说的互联网开发并非指全部的B/S应用,例如B/S方式的银行内部业务系统。我所说的互联网应用是指在互联网上服务于公众的应用。企业级的业务系统,它的特色是业务逻辑是比较复杂的,但用户通常不太大;互联网应用则相反,业务逻辑通常很简单,但面对的是海量用户。
既然互联网应用开发的业务逻辑不复杂,但为何大型网站都投入了那么多的技术人员呢?主要是由于运营的环境太复杂,这种复杂性造成的缘由如下:
一、公开性
网站的服务是公开的,任何人均可以来访问,因此就会直接面对大量的不良用户,系统数据的安全面临很大的风险,一旦系统被攻入,结果将是灾难性的。
二、访问量大
访问量大,就意味着网站必须可以承受高并发大流量的考验,若是网站的服务能力和健壮性等达不到要求,你的系统就会被冲垮。
三、用户体验
用户体验要好,除了产品设计的因素以外,就要求访问网站的速度要快,具备高可用性,别用一会就挂。
 
网站各子系统如何进行部署,如何提升系统的健壮性和高可用性,如何实现网站的安全,如何提升访问速度,如何进行负载均衡,甚至于采用什么的硬件设备,另外,网站发展的不一样时期会可能会采用不一样的架构,如何实现架构的平滑过渡,如何使目前的架构具备弹性,具有可扩展的能力,这都是大型网站必须解决的问题,也是小网站成长过程当中早晚会遇到的问题。我后面的文章将会逐步就这个话题展开。
网站机构包括网站的软件架构和系统架构两部分,软件架构主要是指子系统和逻辑层的划分结构;系统架构,通常是系统部署结构。
系统架构师的知识体系比较庞杂,所谓的见多识广,多数是由运维工程师成长起来的,他们开发能力不强,编码很少,但动手能力很强,脚本编写很是熟练,常常会作各类类型的实验,密切跟踪最新技术最新产品的相关信息。固然,一个大型的网站,须要一个架构师团队,他们各自承担擅长领域的架构设计,好比安全架构、存储架构等等。
我以为通常的开发人员仍是很难走上这条路的,这份工做须要经验,须要不断实践,但若是开发人员一旦走上了这条路,会有很大的发展,主要源于开发人员的思考习惯和技术的深度。个人这系列文章,开发人员能够做为参考,好比如何开发可分布式部署的系统,另外不少朋友都是身兼数职,从开发到实施,到部署所有包办。我我的深感精力有限,因此又特地找了几个朋友从Unix/Linux系统和Windows系统不一样角度进行探索,以造福正在摸索中的朋友,有兴趣的朋友也能够参与。
其实,这部份内容我一直在写,好比php深度探索系列,写了大量的关于apache的内容,我已经大致把apache代码阅读了一遍,很费时间,进度缓慢,但我想这有助于咱们理解apache的配置和调优。
相关文章
相关标签/搜索