网站架构探索(1)---序言
?
跟朋友聊天的時候,發現很多人對大型網站系統架構非常感興趣,我也很感興趣,經常會在家里2臺筆記本和1臺服務器組成的局域網環境里作些實驗。我進入IT行業的時間,大約是97,98年吧,那時候PC客戶端軟件最為盛行,做軟件開發是一份很體面也很喜歡的工作。我從Win3.1上的VC1.5開始一直到VC6.0,然后轉為.Net開發,基本上都是從事客戶端軟件開發。本人的性格是危機意識向來嚴重,所以深感互聯網必將盛行,傳統軟件必將走向沒落,于是轉向了WEB開發。記得以前去某Portal網站應聘的時候,主考官就問我:你認為客戶端開發和互聯網開發有什么不同。我當時的回答是:互聯網開發比客戶端軟件開發簡單多了,我再也不用考慮那么多的用戶環境因素了,一點部署,何時何地都可用。
很多年過去了,我再想起當初我的回答,依然覺得那個回答是正確的。就產品開發層面來講,互聯網開發確實簡單多了。這里首先澄清一個概念,我所說的互聯網開發并不是指所有的B/S應用,例如B/S方式的銀行內部業務系統。我所說的互聯網應用是指在互聯網上服務于公眾的應用。企業級的業務系統,它的特點是業務邏輯是比較復雜的,但用戶一般不太大;互聯網應用則相反,業務邏輯一般很簡單,但面對的是海量用戶。
既然互聯網應用開發的業務邏輯不復雜,但為什么大型網站都投入了那么多的技術人員呢?主要是因為運營的環境太復雜,這種復雜性形成的原因以下:
1、公開性
網站的服務是公開的,任何人都可以來訪問,所以就會直接面對大量的不良用戶,系統數據的安全面臨很大的風險,一旦系統被攻入,結果將是災難性的。
2、訪問量大
訪問量大,就意味著網站必須能夠承受高并發大流量的考驗,如果網站的服務能力和健壯性等達不到要求,你的系統就會被沖垮。
3、用戶體驗
用戶體驗要好,除了產品設計的因素之外,就要求訪問網站的速度要快,具有高可用性,別用一會就掛。
?
網站各子系統如何進行部署,如何提高系統的健壯性和高可用性,如何實現網站的安全,如何提高訪問速度,如何進行負載均衡,甚至于采用什么的硬件設備,另外,網站發展的不同時期會可能會采用不同的架構,如何實現架構的平滑過渡,如何使目前的架構具有彈性,具備可擴展的能力,這都是大型網站必須解決的問題,也是小網站成長過程中遲早會遇到的問題。我后面的文章將會逐步就這個話題展開。
網站機構包括網站的軟件架構和系統架構兩部分,軟件架構主要是指子系統和邏輯層的劃分結構;系統架構,一般是系統部署結構。
系統架構師的知識體系比較龐雜,所謂的見多識廣,多數是由運維工程師成長起來的,他們開發能力不強,編碼不多,但動手能力很強,腳本編寫非常熟練,經常會做各種類型的實驗,密切跟蹤最新技術最新產品的相關信息。當然,一個大型的網站,需要一個架構師團隊,他們各自承擔擅長領域的架構設計,比如安全架構、存儲架構等等。
我覺得一般的開發人員還是很難走上這條路的,這份工作需要經驗,需要不斷實踐,但如果開發人員一旦走上了這條路,會有很大的發展,主要源于開發人員的思考習慣和技術的深度。我的這系列文章,開發人員可以作為參考,比如如何開發可分布式部署的系統,另外很多朋友都是身兼數職,從開發到實施,到部署全部包辦。我個人深感精力有限,所以又特意找了幾個朋友從Unix/Linux系統和Windows系統不同角度進行探索,以造福正在摸索中的朋友,有興趣的朋友也可以參與。
其實,這部分內容我一直在寫,比如php深度探索系列,寫了大量的關于apache的內容,我已經大體把apache代碼閱讀了一遍,很費時間,進度緩慢,但我想這有助于我們理解apache的配置和調優。
轉載于:https://www.cnblogs.com/springMVC/archive/2009/03/06/2204457.html
總結
以上是生活随笔為你收集整理的网站架构探索(1)---序言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [导入]ASP.NET MVC框架开发系
- 下一篇: Javascript取select的选中