做一個(gè)不是特別復(fù)雜的網(wǎng)站需要注意事項(xiàng)
作者:佚名 時(shí)間:2012-11-20 分享到:
上海網(wǎng)站建設(shè)聯(lián)楷網(wǎng)絡(luò)認(rèn)為做一個(gè)應(yīng)用不是特別復(fù)雜的網(wǎng)站,那么就要注意以下幾點(diǎn):
一、開語(yǔ)言
一般來(lái)說(shuō),技術(shù)人員(程序員)創(chuàng)業(yè)都是根據(jù)自己技術(shù)背景選擇自己最熟悉的語(yǔ)言,不過(guò)考慮到不可能永遠(yuǎn)是您一個(gè)人寫程序,這點(diǎn)還得仔細(xì)想想。無(wú)論用什么語(yǔ)言,最終代碼質(zhì)量是看管理,所以我們還是從純語(yǔ)言層面來(lái)說(shuō)實(shí)際一點(diǎn)。現(xiàn)在流行的java、php、.net、python、ruby都有自己的優(yōu)劣,python和ruby,現(xiàn)在人員還是相對(duì)難招一些,性能優(yōu)化也會(huì)費(fèi)些力氣,.net平臺(tái)買不起windowsserver。java、php用的還是最多。對(duì)于初期,應(yīng)用幾乎都是靠前端支撐的網(wǎng)站來(lái)說(shuō),php的優(yōu)勢(shì)稍大一些,入門簡(jiǎn)單、設(shè)計(jì)模式簡(jiǎn)單、寫起來(lái)快、性能足夠等,不過(guò)不注重設(shè)計(jì)模式也是它的劣勢(shì),容易變得松散,隱藏bug稍多、難以維護(hù)。
前端不只是html、css這類。整個(gè)負(fù)責(zé)跟用戶交互的部分都是前端,包括處理程序。這類程序還是建議用php,主要原因就是開發(fā)迅速、從業(yè)人員廣泛。至于后端例如行為分析、銀行接口、異步消息處理等,隨便用什么程序,那個(gè)只能是根據(jù)不同業(yè)務(wù)需求來(lái)選擇不同語(yǔ)言了。
二、代碼版本管理
如果開發(fā)人員之間的網(wǎng)絡(luò)速度差不多,就SVN;比較分散例如跨國(guó),就hg。大多數(shù)人還是svn的.
假設(shè)選了svn,那么有幾點(diǎn)考慮。一是采用什么樹結(jié)構(gòu)。初期可能只有一條主干,往后就需要建立分支,例如一條開發(fā)分支,一條上線分支,再往后,可能要每個(gè)小組一個(gè)分支。建議一開始人少時(shí)選擇兩條分支,開發(fā)和線上,每個(gè)功能本地測(cè)試無(wú)誤后提交到開發(fā)分支,最后統(tǒng)一測(cè)試,可以上線時(shí)合并到上線分支。如果喜歡把svn當(dāng)做移動(dòng)硬盤用,寫一點(diǎn)就commit一次也無(wú)所謂,就是合并的時(shí)候頭大一些,這些人可以自己建個(gè)分支甚至建立個(gè)本地代碼倉(cāng)庫(kù),隨便往自己的分支提交,測(cè)試完畢后再提交到開發(fā)分支上。
三、服務(wù)器硬件
別羨慕大客戶和有錢人,看看機(jī)房散戶區(qū),一臺(tái)服務(wù)器孤獨(dú)的支撐的網(wǎng)站數(shù)不清。如果資金稍微充足,建議至少三臺(tái)的標(biāo)準(zhǔn)配置,分別用作web處理、數(shù)據(jù)庫(kù)、備份。web服務(wù)器至少要8G內(nèi)存,雙sata raid1,如果經(jīng)濟(jì)稍微寬松,或靜態(tài)文件或圖片多,則15k sas raid1+0。數(shù)據(jù)庫(kù)至少16G內(nèi)存,15k sas raid 1+0。備份服務(wù)器最好跟數(shù)據(jù)庫(kù)服務(wù)器同等配置。硬件可以自己買品牌的底板,也就是機(jī)箱配主板和硬盤盒,CPU內(nèi)存硬盤都自己配,也可以上整套品牌,也可以兼容機(jī)。三臺(tái)機(jī)器,市場(chǎng)行情6、7萬(wàn)也就配齊了。
web服務(wù)器可以既跑程序又當(dāng)內(nèi)存緩存,數(shù)據(jù)庫(kù)服務(wù)器則只跑主數(shù)據(jù)庫(kù)(假如是MySQL的話),備份服務(wù)器干的活就相對(duì)多一些,web配置、緩存配置、數(shù)據(jù)庫(kù)配置都要跟前兩臺(tái)一致,這樣WEB和數(shù)據(jù)庫(kù)任意一臺(tái)出問(wèn)題,把備份服務(wù)器換個(gè)ip就切換上去了。備份策略,可以drbd,可以rsync,或者其他的很多很多的開源備份方案可選擇。rsync最簡(jiǎn)單,放cron里自己跑就行。備份和切換,建議多做測(cè)試,選最安全最適合業(yè)務(wù)的,并且盡可能異地備份。
四、機(jī)房
三種機(jī)房盡量不要選:聯(lián)通訪問(wèn)特別慢的電信機(jī)房、電信訪問(wèn)特別慢的聯(lián)通機(jī)房、電信聯(lián)通訪問(wèn)特別慢的移動(dòng)或鐵通機(jī)房。那網(wǎng)通機(jī)房呢?親,網(wǎng)通聯(lián)通N久以前合并改叫聯(lián)通了。多多尋找,實(shí)地參觀,多多測(cè)試,多方打探,北京、上海、廣州等各個(gè)主節(jié)點(diǎn)城市,還是有很多優(yōu)質(zhì)機(jī)房的,找個(gè)網(wǎng)絡(luò)質(zhì)量好,管理嚴(yán)格的機(jī)房,特別是管理要嚴(yán)格,千萬(wàn)別網(wǎng)站無(wú)法訪問(wèn)了,打個(gè)電話過(guò)去才知道別人維護(hù)時(shí)把你網(wǎng)線碰掉了,這比DOS都頭疼。自己扯了幾根光纖就稱為機(jī)房的,看您抗風(fēng)險(xiǎn)程度和心理素質(zhì)了。機(jī)房可以說(shuō)是非常重要,直接關(guān)系到網(wǎng)站訪問(wèn)速度,網(wǎng)站訪問(wèn)速度直接關(guān)系到用戶體驗(yàn),我可以翻墻看風(fēng)景,但買個(gè)網(wǎng)游vpn才能打開你這個(gè)還不怎么知名的網(wǎng)站就有難度了
五、架構(gòu)
初期架構(gòu)一般比較簡(jiǎn)單,web負(fù)載均衡+數(shù)據(jù)庫(kù)主從+緩存+分布式存儲(chǔ)+隊(duì)列。大方向上也確實(shí)就這幾樣?xùn)|西,細(xì)節(jié)上也無(wú)數(shù)文章都重復(fù)過(guò)了,按照將來(lái)會(huì)有N多WEB,N多主從關(guān)系,N多緩存,N多xxx設(shè)計(jì)就行,基本方案都是現(xiàn)成的,只是您比其他人厲害之處就在于設(shè)計(jì)上考慮到緩存失效時(shí)的雪崩效應(yīng)、主從同步的數(shù)據(jù)一致性和時(shí)間差、隊(duì)列的穩(wěn)定性和失敗后的重試策略、文件存儲(chǔ)的效率和備份方式等等意外情況。緩存總有一天會(huì)失效,數(shù)據(jù)庫(kù)復(fù)制總有一天會(huì)斷掉,隊(duì)列總有一天會(huì)寫不進(jìn)去,電源總有一天會(huì)燒壞。根據(jù)墨菲定律,如果不考慮這些,網(wǎng)站早晚會(huì)成為茶幾。
六、服務(wù)器軟件
Linux、nginx、php、mysql,幾乎是標(biāo)配,我們除了看名字,還得選版本。Linux發(fā)行版眾多,只要沒特殊要求,就選個(gè)用的人最多的,社區(qū)最活躍的,配置最方便的,軟件包最全最新的,例如debian、ubuntu。至于RHEL之類的嘛,你用只能在RHEL上才能運(yùn)行的軟件么?剩下的nginx、php、mysql、activemq、其他的等等,除非你改過(guò)這些軟件或你的程序真的不兼容新版本,否則盡量版本越新越好,版本新,意味著新特性增多、BUG減少、性能增加。總有些道聽途說(shuō)的人跟你說(shuō)老的版本穩(wěn)定。所謂穩(wěn)定,是相對(duì)于特殊業(yè)務(wù)來(lái)說(shuō)的,而就一個(gè)php寫的網(wǎng)站,大多數(shù)人都沒改過(guò)任何服務(wù)器軟件源代碼,絕大多數(shù)情況是能平穩(wěn)的升級(jí)到新版本的。類似于jdk5到j(luò)dk6,python2到python3這類變動(dòng)比較大的升級(jí)還是比較少見的?纯碈hangeLog,看看升級(jí)說(shuō)明,結(jié)合自己情況評(píng)估一下,越早升級(jí)越好,別人家都用php6寫程序了這邊還php4的逛游呢。優(yōu)秀的開源程序升級(jí)還是很負(fù)責(zé)任的,看好文檔,別怕。
以上六點(diǎn)準(zhǔn)備完畢,就可以開始著手設(shè)計(jì)開發(fā)方面的事情了。