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