移動(dòng)互聯(lián)網(wǎng)時(shí)代來臨,如何進(jìn)行架構(gòu)的演進(jìn)?如何進(jìn)行性能的優(yōu)化?如何判斷代碼執(zhí)行效率與性能瓶頸定位?這些都是困擾著開發(fā)者種種問題。本次應(yīng)用性能管理大講堂,鳥哥連同聽云、鏈家網(wǎng)、58同城的技術(shù)大牛們?yōu)榇蠹規(guī)硭麄冊(cè)谛阅軆?yōu)化上最權(quán)威的成果和經(jīng)驗(yàn)。
鏈家網(wǎng):存儲(chǔ)系統(tǒng)演化
大講堂上來便是十足干貨,來自鏈家網(wǎng)系統(tǒng)工程師尹吉峰為了大家?guī)砹随溂揖W(wǎng)存儲(chǔ)系統(tǒng)演變的過程,從最開始的需求到過程中各種系統(tǒng)的不斷嘗試再到最后相關(guān)性能優(yōu)化,事無巨細(xì),悉究本末。
尹吉峰提到鏈家網(wǎng)是房產(chǎn)垂直的網(wǎng)站,有很多房源數(shù)據(jù),滿足他們需求的圖片大多4兆左右,分為大中小類型,服務(wù)端有大量優(yōu)質(zhì)數(shù)據(jù),以及體積很小中間數(shù)據(jù)和一些語音/視頻等大文件。他們期望有一個(gè)PB級(jí)別無單點(diǎn),通用文件大小可調(diào)配的系統(tǒng)。最開始他們選用輕量級(jí)的FASTDFS,但是沒有一個(gè)真實(shí)成功的例子說明FASTDFS可以到PB級(jí)別的,經(jīng)過研究改造以后基本滿足需求。
隨后尹吉峰講到底層存儲(chǔ)系統(tǒng)的選擇。經(jīng)過對(duì)比他們最終選擇AWS S3作為存儲(chǔ)接口,而在存儲(chǔ)方案選型問題上陷入了兩難的境地:公有云成本低但安全無法保障;商業(yè)解決方案成本高,投入后無法抽身;開源技術(shù)方案便宜但是費(fèi)心。經(jīng)過權(quán)衡他們最終選擇了云計(jì)算里面最具吸引力認(rèn)可度最高的Ceph。
Ceph最佳實(shí)踐
深入代碼級(jí)的端到端的應(yīng)用性能管理
緊接著聽云CTO Wood分享的聽云端到端應(yīng)用性能管理(APM)解決方案以及聽云APM在應(yīng)用性能管理上的實(shí)踐經(jīng)驗(yàn)與技術(shù)也是干貨滿滿。
Wood解釋到APM是對(duì)軟件應(yīng)用的性能和可用性進(jìn)行監(jiān)控和管理,致力于發(fā)現(xiàn)和定位性能瓶頸和故障,保證應(yīng)用達(dá)到預(yù)期服務(wù)水平。而整個(gè)應(yīng)用生命周期,從需求開始到研發(fā)到測(cè)試再到運(yùn)營都需要監(jiān)測(cè)。復(fù)雜的應(yīng)用交付鏈下傳統(tǒng)IT運(yùn)維收到了很大的挑戰(zhàn),而APM自上而下的監(jiān)控方式為用戶、業(yè)務(wù)、代碼、服務(wù)以及用戶體驗(yàn)提供了保障。只要在可能形成性能瓶頸代碼或者可能誘發(fā)其他性能問題的位置嵌入盡量簡潔的代碼就能實(shí)現(xiàn)APM。
隨后Wood為大家演示了聽云App以及聽云Server的真實(shí)用戶案例。
聽云App一直關(guān)注的問題:網(wǎng)絡(luò)接入(弱網(wǎng)2G/3G,小運(yùn)營商接入)、機(jī)房鏈路、服務(wù)端接口、第三方服務(wù)(CDN,推送,云服務(wù))、區(qū)域運(yùn)營商問題(劫持、故障)、終端設(shè)備、系統(tǒng)的差異、代碼效率(交互卡頓,黑白屏)、代碼質(zhì)量(崩潰,異常,錯(cuò)誤)。
聽云App用戶案例
聽云Server關(guān)注的問題:應(yīng)用響應(yīng)時(shí)間、業(yè)務(wù)性能,吞吏率,成功率、服務(wù)性能(SQL,NoSQL,API,外部服務(wù)…)、代碼效率(追蹤,剖析)、代碼質(zhì)量(錯(cuò)誤,異常)。
聽云Server用戶案例
鳥哥惠新宸:性能優(yōu)化那些事兒
經(jīng)過現(xiàn)場(chǎng)觀眾與講師Q&A互動(dòng)和短暫的休歇以后,鳥哥(惠新宸)的登場(chǎng)引爆全場(chǎng)。作為國內(nèi)最有影響力的PHP技術(shù)專家,現(xiàn)任新浪微博任平臺(tái)及數(shù)據(jù)部總架構(gòu)師兼首席PHP顧問的鳥哥在編程語言實(shí)踐與系統(tǒng)架構(gòu)方面有著豐富的性能優(yōu)化經(jīng)驗(yàn),本次大講堂鳥哥在性能優(yōu)化方面的經(jīng)驗(yàn)給了大家很多啟發(fā)。
鳥哥(惠新宸)
鳥哥提到性能優(yōu)化是多方面的事,在關(guān)注應(yīng)用性能之前應(yīng)該先考慮應(yīng)用的正確性、穩(wěn)定性和安全性。在確定需要優(yōu)化以后在去進(jìn)行,而性能優(yōu)化也不應(yīng)該是一個(gè)人或者一個(gè)團(tuán)隊(duì)的事,他告誡大家,永遠(yuǎn)不要憑主觀臆測(cè)去優(yōu)化。性能優(yōu)化時(shí)需要一個(gè)標(biāo)準(zhǔn)來衡量優(yōu)化的過程,同時(shí)也需要定出優(yōu)化步驟和時(shí)間段。
隨后鳥哥講到性能優(yōu)化應(yīng)該從業(yè)務(wù)層面到管理層,再往下發(fā)展到不同層面,最上面的業(yè)務(wù)層優(yōu)化收益往往最大。參與優(yōu)化的人員每一個(gè)人都寫日志非常必要的,從系統(tǒng)環(huán)境開始入手做優(yōu)化,首先檢查配置有沒有問題,再往下是模塊合適與否,最后拓展到不同層面上,這個(gè)過程一直持續(xù)到你滿意為止。
最后鳥哥鼓勵(lì)大家建立一個(gè)“系統(tǒng)”去優(yōu)化你的系統(tǒng)。運(yùn)維的核心是可視化,把系統(tǒng)中存在的各種問題匯成一個(gè)非??梢?,非常易于去看的東西,是一件應(yīng)該提早去做的事,而聽云是國內(nèi)應(yīng)用性能管理領(lǐng)域的佼佼者,推薦大家去使用。
58同城MongoDB到MySQL遷移之路
大講堂的最后58同城系統(tǒng)架構(gòu)師孫玄為大家?guī)懋?dāng)數(shù)據(jù)量增大和業(yè)務(wù)并發(fā)時(shí)遇到的問題及其解決方案以及MongoDB到MySQL遷移方案。
孫玄提到選擇MongoDB是因?yàn)樗奖銛U(kuò)展,擁有較高性能以及豐富的查詢支持和自動(dòng)索引,而在使用方面根據(jù)業(yè)務(wù)的需求做出了不小的調(diào)整。接著孫玄為大家分享了MongoDB的部署以及一些實(shí)際應(yīng)用經(jīng)驗(yàn)。
MongoDB部署介紹
最后孫玄談到當(dāng)業(yè)務(wù)不斷增加數(shù)據(jù)增大時(shí),發(fā)現(xiàn)整個(gè)性能在下降,在增加內(nèi)存和硬盤后業(yè)務(wù)暫時(shí)穩(wěn)定,但并不能完全解決問題,因?yàn)镸ongoDB進(jìn)程本身不穩(wěn)定。最后選擇MongoDB+SSD方式解決問題,決定實(shí)施MongoDB到MySQL遷移方案。遷移時(shí)針對(duì)兩種不同的數(shù)據(jù)類型采取了不同方案:遷移簡單的時(shí)效性數(shù)據(jù)通過雙頭方式進(jìn)行遷移,而永久有效的核心數(shù)據(jù)通過消息隊(duì)列方式解決數(shù)據(jù)牽引問題。
至此,第三期聽云應(yīng)用性能管理大講堂落下帷幕,散場(chǎng)后小伙伴們久久不愿離去,三五成群的將講師們圍住,有問技術(shù)問題有問個(gè)人問題的也有和講師拍照留念的,相信本次大講堂不會(huì)只是大家工作生活的一個(gè)小小片段,讓我們一起期待下一期的到來吧!
第三期聽云應(yīng)用性能管理大講堂嘉賓演講課件下載:http://bbs.tingyun.com/forum.php?mod=viewthread&tid=62&extra=