2017羅振宇跨年演講之夜
羅輯思維是著名的知識(shí)服務(wù)商和運(yùn)營(yíng)商,有微信公眾號(hào)、知識(shí)類音視頻節(jié)目、知識(shí)服務(wù)得到App等產(chǎn)品。隨著品牌日積月累的沉淀,其跨年演講和其相關(guān)業(yè)務(wù)需求不斷增大。羅輯思維大量核心業(yè)務(wù)運(yùn)行在阿里云,目前團(tuán)隊(duì)使用了ECS、CDN、OSS、多款云數(shù)據(jù)庫(kù)、負(fù)載均衡、容器服務(wù)、全鏈路壓測(cè)PTS、Web應(yīng)用防火墻、媒體轉(zhuǎn)碼、數(shù)據(jù)可視化等20多款產(chǎn)品。
對(duì)于此次阿里云護(hù)航,羅輯思維的技術(shù)負(fù)責(zé)人沈仁奎表示:“非常感謝阿里傾囊相授雙11成功經(jīng)驗(yàn),作為產(chǎn)品的用戶很感動(dòng),你們服務(wù)非常貼切,徹底融入到我們團(tuán)隊(duì)了解我們的業(yè)務(wù)形態(tài),給出很多有價(jià)值、切實(shí)際的建議,對(duì)我們幫助很大?!?/p>
全鏈路壓測(cè),技術(shù)大考前的必備演習(xí)
全鏈路壓測(cè)是應(yīng)戰(zhàn)業(yè)務(wù)大促不可缺少的關(guān)鍵技術(shù),這是阿里歷年備戰(zhàn)雙11的利器,在此次羅輯思維備戰(zhàn)中它同樣被應(yīng)用得淋漓盡致。通過(guò)全鏈路壓測(cè)規(guī)劃跨年期間的系統(tǒng)容量,確定基準(zhǔn)吞吐量和擴(kuò)容縮容策略,找到特定場(chǎng)景下集群服務(wù)器配比和集群的短板,對(duì)于壓測(cè)中發(fā)現(xiàn)的問(wèn)題及時(shí)調(diào)整。
相比于經(jīng)驗(yàn)判斷和一般意義上的線上壓測(cè),全鏈路壓測(cè)與業(yè)務(wù)場(chǎng)景更緊密相連,找到不同業(yè)務(wù)場(chǎng)景下的臨界峰值,計(jì)算出每個(gè)業(yè)務(wù)應(yīng)用的數(shù)量值,由點(diǎn)及線、由線及面從而獲得整體情況;通過(guò)性能測(cè)試服務(wù)PTS(Performance Testing Service)編排全局業(yè)務(wù)場(chǎng)景和構(gòu)造真實(shí)業(yè)務(wù)流量,達(dá)到讓業(yè)務(wù)和技術(shù)架構(gòu)提前經(jīng)歷業(yè)務(wù)洪峰的檢驗(yàn),確??缒昊顒?dòng)和日常核心服務(wù)的穩(wěn)定性和健壯性。
羅輯思維的全鏈路壓測(cè)接口逾200個(gè),整體覆蓋率超過(guò)50%,囊括了其得到APP和其獨(dú)立電商平臺(tái)的所有核心業(yè)務(wù)。在不到三個(gè)月的時(shí)間內(nèi),羅輯思維和阿里云PTS團(tuán)隊(duì)一共進(jìn)行了大大小小逾七百次的單鏈路壓測(cè)、十六輪完整形態(tài)全鏈路壓測(cè),壓測(cè)所耗費(fèi)的資源相當(dāng)于100多萬(wàn)用戶一同測(cè)試兩個(gè)多小時(shí)。為了不影響到羅輯思維用戶的體驗(yàn),其中一些全鏈路壓測(cè)都是在半夜和凌晨進(jìn)行的。
由于壓測(cè)范圍廣,其發(fā)現(xiàn)問(wèn)題能力和提升效果也相當(dāng)顯著。壓測(cè)先后總計(jì)發(fā)現(xiàn)數(shù)百問(wèn)題,經(jīng)過(guò)逐一排查,壓測(cè)目標(biāo)的幾乎所有主要后端服務(wù)的業(yè)務(wù)系統(tǒng)都被優(yōu)化改造。舉例說(shuō)明,在壓測(cè)中發(fā)現(xiàn)node側(cè)應(yīng)用CPU飆升的瓶頸,通過(guò)接入阿里Node.js性能平臺(tái),定位、分析異常并解決應(yīng)用核心錯(cuò)誤。經(jīng)過(guò)技術(shù)人員們的不懈努力,系統(tǒng)吞吐能力提升上百倍。
ECS在手,資源呼風(fēng)喚雨
在傳統(tǒng)的基于IDC搭建業(yè)務(wù)情況下,必不可少的擔(dān)心就是業(yè)務(wù)發(fā)展受制于固定且有限的資源。如果資源儲(chǔ)備過(guò)多,那么在日常平峰或流量低谷時(shí),就會(huì)造成巨大的資源浪費(fèi);可是如果資源準(zhǔn)備不充分,在流量高峰時(shí),又影響到用戶體驗(yàn)。
云計(jì)算時(shí)代,彈性計(jì)算是首要優(yōu)勢(shì)。羅輯思維選用了阿里云ECS,該產(chǎn)品具備海量資源的彈性交付能力,可以保證在一分鐘內(nèi)創(chuàng)建出近1000臺(tái)云服務(wù)器。羅輯思維日常情況下按照一定比例選用包年月和按量的兩種服務(wù)器付費(fèi)方式,在此次跨年演講中增大了按量計(jì)費(fèi)的服務(wù)器用量,峰值時(shí)該種服務(wù)器達(dá)1000+臺(tái),大大降低了計(jì)算資源成本和前期籌劃準(zhǔn)備成本。
除去成本之外,更重要的是使用效果和體驗(yàn)。從計(jì)算性能穩(wěn)定性而言,通常情況下,整體的ECS業(yè)務(wù)可靠性比線下物理機(jī)可靠性有大幅提升(99.95%業(yè)務(wù)可用性保證);若搭配高性能SSD云盤,則相當(dāng)于數(shù)據(jù)可靠性和業(yè)務(wù)可用性雙重保險(xiǎn),這也是羅輯思維此次的選擇。另外,ECS提供豐富的企業(yè)級(jí)實(shí)例,羅輯思維選用了最新一代基于skylake處理器、25G網(wǎng)絡(luò)的企業(yè)級(jí)實(shí)例、大數(shù)據(jù)分析的D1型實(shí)例、高性能數(shù)據(jù)庫(kù)I2型實(shí)例等,在性能和成本上都很出色地滿足了需求。
容器服務(wù)撐起電商百倍高峰
在剛剛結(jié)束的跨年夜里,羅輯思維的電商業(yè)務(wù)售賣了數(shù)萬(wàn)件商品,其中單價(jià)為6.4W的積家手表一秒售罄。電商背后是怎樣的技術(shù)支撐呢?
容器技術(shù)的出現(xiàn),使得軟件從復(fù)雜的交付及運(yùn)維中解放出來(lái)。羅輯思維此次的電商業(yè)務(wù)依托于阿里云容器服務(wù),通過(guò)分鐘級(jí)一鍵部署和秒級(jí)海量容器啟動(dòng),實(shí)現(xiàn)秒級(jí)的應(yīng)用架構(gòu)伸縮和一站式應(yīng)用生命周期管理,不僅提高了系統(tǒng)資源利用率,降低了整體成本,而且簡(jiǎn)化了應(yīng)用的管理及運(yùn)維。
同時(shí)容器服務(wù)整合阿里云能力,提供集成的實(shí)現(xiàn)無(wú)關(guān)的容器應(yīng)用存儲(chǔ)、負(fù)載均衡、高可用、監(jiān)控及日志管理,極大的簡(jiǎn)化分布式應(yīng)用的管理及運(yùn)維工作。在業(yè)務(wù)高峰突然來(lái)臨之時(shí),容器服務(wù)提供應(yīng)用容器及集群資源二級(jí)的自動(dòng)彈性伸縮,從容應(yīng)對(duì)高峰流量。
在羅輯思維此次大促的電商準(zhǔn)備階段,在容器服務(wù)的支持和優(yōu)化下,系統(tǒng)壓測(cè)能力提升十倍。此次電商銷售活動(dòng)圓滿完成,集群資源狀況平穩(wěn)、極小波動(dòng),支撐了較平時(shí)百倍壓力的高峰流量。一些具體的優(yōu)化有:針對(duì)跨年活動(dòng)大流量場(chǎng)景,進(jìn)行系統(tǒng)架構(gòu)優(yōu)化,針對(duì)場(chǎng)景進(jìn)行網(wǎng)絡(luò)參數(shù)優(yōu)化;開啟多核模式防止單核跑滿;注意調(diào)配資源使用的策略,相關(guān)應(yīng)用實(shí)現(xiàn)自動(dòng)擴(kuò)縮容;關(guān)注集群節(jié)點(diǎn)數(shù)、應(yīng)用的實(shí)例數(shù)量配比等等。
DevOps能力如何提高?
眾所周知,軟件的構(gòu)建、打包和部署是發(fā)布中的關(guān)鍵步驟,企業(yè)級(jí)開發(fā)者往往需要依賴Make、Ant、Maven等一系列工具才能完成源代碼的編譯和鏈接;而多編程語(yǔ)言和分布式開發(fā)則無(wú)疑加大了項(xiàng)目構(gòu)建管理難度。除了對(duì)業(yè)務(wù)服務(wù)高可用及平臺(tái)管理的支持,容器服務(wù)預(yù)置DevOps能力:覆蓋應(yīng)用從構(gòu)建到交付到運(yùn)維的整個(gè)生命周期,提供多種應(yīng)用發(fā)布方式和持續(xù)交付能力,支持容器持續(xù)集成及交付最佳實(shí)踐,支持阿里云及開源CI/CD方案并提供工具鏈整合。
工程師們將應(yīng)用打包成Docker鏡像并共享發(fā)布到阿里云鏡像服務(wù)中,這取代了傳統(tǒng)的程序的分發(fā)及環(huán)境安裝配置,Docker鏡像使得開發(fā)、測(cè)試和生產(chǎn)環(huán)境的配置變得簡(jiǎn)單而高效,“一處構(gòu)建,各處部署”。
同時(shí),通過(guò)編排模板,可以把一個(gè)應(yīng)用的外部依賴、服務(wù)之間的關(guān)聯(lián),全部變成可追蹤的代碼;并且對(duì)版本管理進(jìn)行更好的管控,以便快速上線和回滾。通過(guò)編排、和應(yīng)用無(wú)關(guān)的不間斷發(fā)布、藍(lán)綠發(fā)布等發(fā)布策略的支持,極大提高了線上應(yīng)用的高可用,降低了發(fā)布風(fēng)險(xiǎn),提高業(yè)務(wù)系統(tǒng)的迭代速度。