2009-11-05 08:44:12 來源:
在歐拉的“平臺(tái)網(wǎng)站架構(gòu)設(shè)計(jì)之我所見”的博客中,他從選擇技術(shù)方案和物理架構(gòu)、平臺(tái)研發(fā)和架構(gòu)優(yōu)化等方面闡述了他在多年的平臺(tái)型網(wǎng)站架構(gòu)設(shè)計(jì)過程中的經(jīng)驗(yàn)心得。
歐拉先是分析了在選擇技術(shù)方案和物理架構(gòu)中的幾個(gè)常見問題,以來解決如何提高開發(fā)效率,使平臺(tái)具有高性能、高負(fù)載性的問題:
開發(fā)語言和數(shù)據(jù)庫:我個(gè)人覺的最關(guān)鍵是你和你的團(tuán)隊(duì)最擅長(zhǎng)的開發(fā)語言和數(shù)據(jù)庫是哪個(gè),古語有云:“工欲善其事,必先利其器!”,趁手的開發(fā)語言和數(shù)據(jù)庫有助于事半功倍。試想如果你選擇了一個(gè)并不很熟悉的語言,也許這個(gè)語言和數(shù)據(jù)庫在基礎(chǔ)性能上的確比你掌握的語言好,但是在研發(fā)過程中學(xué)習(xí)曲線肯定長(zhǎng)。
成熟框架還是自己實(shí)現(xiàn):我個(gè)人的一些經(jīng)驗(yàn)是,盡量使用開源的成熟框架,因?yàn)槠脚_(tái)研發(fā)初期使用成熟的開源框架,能提高開發(fā)效率,并且在質(zhì)量上有保證。我曾經(jīng)接手過一個(gè)平臺(tái)的改版,框架是前面開發(fā)人員自己寫的,里面的一些設(shè)計(jì)思想不是很成熟,導(dǎo)致平臺(tái)在負(fù)載增高后性能很差,整改起來很麻煩。
除此之外,Web Server/DB Server/Cache Server的選擇也是很重要的一點(diǎn),歐拉認(rèn)為這一部分一定要使用具有前瞻性、易配置、能監(jiān)控和維護(hù)的產(chǎn)品,并提出幾個(gè)選型的標(biāo)準(zhǔn):豐富和深入的配置選項(xiàng)、基于高并發(fā)模型、支持負(fù)載均衡和請(qǐng)求分發(fā)、高效的緩存機(jī)制、實(shí)時(shí)的狀態(tài)監(jiān)控機(jī)制等。而對(duì)于操作系統(tǒng)的選擇,則要穩(wěn)定安全、易管理和維護(hù)、易監(jiān)控等。對(duì)于物理架構(gòu),即服務(wù)器的搭建方式,歐拉同樣認(rèn)為前瞻性是非常重要的:
平臺(tái)初期的話,我想大部分訪問量都不高,Web Server/DB server/Cache Server放在一臺(tái)服務(wù)器上都沒問題。但是自己心里最好能預(yù)估一下這個(gè)平臺(tái)會(huì)發(fā)展到什么樣的規(guī)模,在做架構(gòu)設(shè)計(jì)的時(shí)候,按照事先預(yù)估的來決定怎么做物理架構(gòu),并為以后的架構(gòu)升級(jí)做準(zhǔn)備。說到這里,想到前百度架構(gòu)師雷鳴說過的一句話,當(dāng)你的會(huì)員數(shù)達(dá)到目前的5倍或10倍的時(shí)候,架構(gòu)就要升級(jí)。
在實(shí)質(zhì)性的研發(fā)過程中,需要注意的是平臺(tái)網(wǎng)站研發(fā)的模式和傳統(tǒng)IT項(xiàng)目研發(fā)的不同,以前是開發(fā)過程中要和客戶、需求人員等打交道,而現(xiàn)在關(guān)注的是產(chǎn)品設(shè)計(jì)。對(duì)于平臺(tái)網(wǎng)站研發(fā)項(xiàng)目的管理,歐拉推薦使用敏捷開發(fā)方法,通過設(shè)立短的發(fā)布周期進(jìn)行迭代開發(fā),并使用JIRA等成熟的項(xiàng)目管理系統(tǒng)進(jìn)行管理等。對(duì)于團(tuán)隊(duì)研發(fā)需要注意的地方,歐拉總結(jié)如下:
·合適的開發(fā)工具;
·如何控制代碼質(zhì)量;
·(根據(jù))需要引入新框架;
·知識(shí)總結(jié)和培訓(xùn)。
對(duì)網(wǎng)站研發(fā)過程中的架構(gòu)優(yōu)化、存儲(chǔ)和搜索等關(guān)鍵點(diǎn),歐拉也分享了自己的經(jīng)驗(yàn),比如對(duì)于網(wǎng)站速度慢,而卻又不知如何下手的問題,歐拉提出的解決方案是:
我的經(jīng)驗(yàn)是從數(shù)據(jù)開始,從最外圍開始畫圈,找到源頭。先從外圍開始收集日志,比如access_log訪問日志或sql_log數(shù)據(jù)庫操作日志,找出訪問最多的10條日志和執(zhí)行時(shí)間最長(zhǎng)的10條日志,然后根據(jù)日志去反查到底是什么引起的操作,然后一條條的解決。如果解決不了,那么就考慮重構(gòu)。
免責(zé)聲明:本網(wǎng)站(http://www.www.gypb.net/)內(nèi)容主要來自原創(chuàng)、合作媒體供稿和第三方投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
本網(wǎng)站刊載的所有內(nèi)容(包括但不僅限文字、圖片、LOGO、音頻、視頻、軟件、程序等)版權(quán)歸原作者所有。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),請(qǐng)及時(shí)通知本站,予以刪除。
