百度Web App應(yīng)用開(kāi)發(fā)者大會(huì)移師上海
繼成功舉辦了百度Web App應(yīng)用開(kāi)發(fā)者大會(huì)北京站之后,近日大會(huì)移師上海。百度產(chǎn)品架構(gòu)師田曉萌、百度高級(jí)工程師朱建庭以及大眾點(diǎn)評(píng)網(wǎng)高級(jí)系統(tǒng)架構(gòu)師王宏為大家?guī)?lái)了精彩的主題演講,隨后的Open Space環(huán)節(jié)中,各位演講人、嘉賓及與會(huì)者也做了深入交流,會(huì)后大家均表示意猶未盡。
田曉萌在開(kāi)場(chǎng)演講中對(duì)百度應(yīng)用開(kāi)放平臺(tái)做了一個(gè)介紹,自去年8月底上線以來(lái),該平臺(tái)的累計(jì)使用次數(shù)已達(dá)數(shù)十億次,有30000提交應(yīng)用,超過(guò)10000個(gè)審核通過(guò)的應(yīng)用,20000名以上的開(kāi)發(fā)者投入其中;不少應(yīng)用上線后使用量的增長(zhǎng)驚人,有的使用次數(shù)增長(zhǎng)高達(dá)5000%。百度開(kāi)放平臺(tái)為開(kāi)發(fā)者和用戶架起了一座橋梁。關(guān)于百度開(kāi)放平臺(tái)的更多內(nèi)容可以訪問(wèn)活動(dòng)北京站的報(bào)道。
隨后,參與了百度應(yīng)用開(kāi)放平臺(tái)建設(shè)的朱建庭介紹了如何開(kāi)發(fā)一款平臺(tái)上的應(yīng)用。與其他的開(kāi)放平臺(tái)有所不同,百度應(yīng)用開(kāi)放平臺(tái)上的應(yīng)用既可以出現(xiàn)在網(wǎng)頁(yè)搜索結(jié)果頁(yè)面里,也可以出現(xiàn)在應(yīng)用的獨(dú)立頁(yè)面中,因此它的加載方式是先在頁(yè)面中加載應(yīng)用畫(huà)布頁(yè),隨后在畫(huà)布頁(yè)中加載第三方應(yīng)用頁(yè)面。
此處的加載模式又可分為BDML模式、BDiframe模式與普通iframe模式,推薦使用普通iframe。之后,他又詳細(xì)說(shuō)明了應(yīng)用的參數(shù)校驗(yàn)方式、用戶登錄授權(quán)方式、OpenAPI的調(diào)用方式,還有平臺(tái)對(duì)應(yīng)用穩(wěn)定性的監(jiān)控策略等內(nèi)容。并為提升用戶體驗(yàn)提了一些建議,例如,針對(duì)頁(yè)面高度自適應(yīng)的問(wèn)題就有如下方案:
1、所有頁(yè)面都使用一樣的固定高度
2、各頁(yè)面高度不一致,但都是固定高度
3、各頁(yè)面高度不確定,為自適應(yīng)JS函數(shù)傳入可能的最小值
4、同一頁(yè)面的高度可能會(huì)因JS事件而發(fā)生變化,此時(shí)可重新設(shè)置高度
在《大眾點(diǎn)評(píng)網(wǎng)的Web開(kāi)發(fā)之路》中,王宏介紹了大眾點(diǎn)評(píng)網(wǎng)是如何從2003年的2名技術(shù)人員一臺(tái)虛擬主機(jī),發(fā)展到現(xiàn)在102名技術(shù)人員35臺(tái)主干服務(wù)器,在發(fā)展的不同階段遇到了什么問(wèn)題,他們又是如何解決的。大眾點(diǎn)評(píng)網(wǎng)的技術(shù)發(fā)展路線對(duì)中小網(wǎng)站來(lái)說(shuō)非常具有參考價(jià)值。
比如,在走過(guò)初創(chuàng)期之后的2005年,大眾點(diǎn)評(píng)網(wǎng)已經(jīng)達(dá)到了180萬(wàn)動(dòng)態(tài)請(qǐng)求,這時(shí)他們的優(yōu)化措施主要是動(dòng)靜分離,建立了動(dòng)態(tài)和靜態(tài)兩個(gè)站點(diǎn),壓縮CSS、JS資源,對(duì)圖片進(jìn)行優(yōu)化,使用gzip縮減帶寬開(kāi)銷(xiāo)。尤其是要為靜態(tài)站點(diǎn)設(shè)置一個(gè)短域名,這樣可以縮短路徑長(zhǎng)度,更重要的是能減少同域的Cookie網(wǎng)絡(luò)傳輸開(kāi)銷(xiāo)。
另外還要合理地設(shè)置過(guò)期時(shí)間,充分利用本地緩存。此時(shí)他們使用了第三方CDN,考慮到CDN對(duì)靜態(tài)資源的更新策略不同,王宏建議通過(guò)URL Rewrite為文件名增加版本號(hào)的方式進(jìn)行靜態(tài)資源的版本控制,例如在CDN上以xxx.v22.css的文件名來(lái)表示這個(gè)css文件的22版本。
2008年開(kāi)始,網(wǎng)站的發(fā)展進(jìn)入了一個(gè)新的階段,此時(shí)的網(wǎng)站架構(gòu)又有了新的變化,遇到了新的問(wèn)題。比如圖片文件數(shù)量劇增,導(dǎo)致服務(wù)器的IO居高不下,這時(shí)他們引入了分布式文件系統(tǒng)來(lái)存儲(chǔ)這些圖片,建議在初期就要對(duì)文件存儲(chǔ)目錄做合理的規(guī)劃,避免大量文件都存儲(chǔ)在一個(gè)目錄中。
針對(duì)緩存的使用,要控制緩存對(duì)象的粒度,注意對(duì)象序列化帶來(lái)的CPU及網(wǎng)絡(luò)開(kāi)銷(xiāo),可以通過(guò)緩存自身的失效機(jī)制來(lái)實(shí)現(xiàn)大批量緩存數(shù)據(jù)的清除。大量的原子更新會(huì)造成數(shù)據(jù)熱點(diǎn),要對(duì)數(shù)據(jù)表做適當(dāng)拆分,對(duì)于原子更新可以考慮使用目前流行的NoSQL產(chǎn)品,比如Redis或MongoDB。
演講***,王宏總結(jié)了幾點(diǎn)經(jīng)驗(yàn):
1、盡早動(dòng)靜分離
2、突發(fā)性的詭異問(wèn)題,往往都是由于低級(jí)錯(cuò)誤造成的
3、memcached好用,但要用好卻不容易
4、謹(jǐn)慎使用SQL Join
5、使用成熟的第三方平臺(tái),把你不擅長(zhǎng)的事交給擅長(zhǎng)的人去做
6、建立有效的監(jiān)控系統(tǒng)
在活動(dòng)***的Open Space環(huán)節(jié)中,來(lái)自籬笆網(wǎng)、五分鐘、盛大等公司的嘉賓與大家做了精彩互動(dòng)。百度Web App應(yīng)用開(kāi)發(fā)者大會(huì)下一站將移師深圳,后續(xù)各站的詳細(xì)議程我們將繼續(xù)關(guān)注。
【編輯推薦】


















