在剛剛過去的2017年12月31日,羅振宇在上海舉辦了《時間的朋友》跨年演講,這場四個小時的跨年演講吸引了近萬的現場觀眾和超過百萬的直播觀眾。在觀眾們聚精會神聆聽的同時,得到App、電商平臺等技術人員和阿里雲團隊也在一絲不苟地值守崗位。在這場知識晚會的背後,有哪些保駕護航的雲技術和不為人知的故事?

2017羅振宇跨年演講之夜

羅輯思維是著名的知識服務商和運營商,有微信公眾號、知識類音視訊節目、知識服務得到App等產品。隨著品牌日積月累的沉澱,其跨年演講和其相關業務需求不斷增大。羅輯思維大量核心業務執行在阿里雲,目前團隊使用了ECS、CDN、OSS、多款雲資料庫、負載均衡、容器服務、全鏈路壓測PTS、Web應用防火牆、媒體轉碼、資料視覺化等20多款產品。

知識之夜更要感謝堅守崗位的技術人

對於此次阿里雲護航,羅輯思維的技術負責人沈仁奎表示:”非常感謝阿里傾囊相授雙11成功經驗,作為產品的使用者很感動,你們服務非常貼切,徹底融入到我們團隊瞭解我們的業務形態,給出很多有價值、切實際的建議,對我們幫助很大。”

全鏈路壓測,技術大考前的必備演習

全鏈路壓測是應戰業務大促不可缺少的關鍵技術,這是阿里歷年備戰雙11的利器,在此次羅輯思維備戰中它同樣被應用得淋漓盡致。通過全鏈路壓測規劃跨年期間的系統容量,確定基準吞吐量和擴容縮容策略,找到特定場景下叢集伺服器配比和叢集的短板,對於壓測中發現的問題及時調整。

相比於經驗判斷和一般意義上的線上壓測,全鏈路壓測與業務場景更緊密相連,找到不同業務場景下的臨界峰值,計算出每個業務應用的數量值,由點及線、由線及面從而獲得整體情況;通過效能測試服務PTS(Performance Testing Service)編排全域性業務場景和構造真實業務流量,達到讓業務和技術架構提前經歷業務洪峰的檢驗,確保跨年活動和日常核心服務的穩定性和健壯性。

羅輯思維的全鏈路壓測介面愈200個,整體覆蓋率超過50%,囊括了其得到APP和其獨立電商平臺的所有核心業務。在不到三個月的時間內,羅輯思維和阿里雲PTS團隊一共進行了大大小小愈七百次的單鏈路壓測、十六輪完整形態全鏈路壓測,壓測所耗費的資源相當於一百多萬使用者一同測試兩個多小時。為了不影響到羅輯思維使用者的體驗,其中一些全鏈路壓測都是在半夜和凌晨進行的。

由於壓測範圍廣,其發現問題能力和提升效果也相當顯著。壓測先後總計發現數百問題,經過逐一排查,壓測目標的幾乎所有主要後端服務的業務系統都被優化改造。舉例說明,在壓測中發現node側應用CPU飆升的瓶頸,通過接入阿里Node.js效能平臺,定位、分析異常並解決應用核心錯誤。經過技術人員們的不懈努力,系統吞吐能力提升上百倍。

羅輯思維和阿里雲共同走過了三個月的緊張備戰

ECS在手,資源呼風喚雨

在傳統的基於IDC搭建業務情況下,必不可少的擔心就是業務發展受制於固定且有限的資源。如果資源儲備過多,那麼在日常平峰或流量低谷時,就會造成巨大的資源浪費;可是如果資源準備不充分,在流量高峰時,又影響到使用者體驗。

雲端計算時代,彈性計算是首要優勢。羅輯思維選用了阿里雲ECS,該產品具備海量資源的彈性交付能力,可以保證在一分鐘內建立出近1000臺雲伺服器。羅輯思維日常情況下按照一定比例選用包年月和按量的兩種伺服器付費方式,在此次跨年演講中增大了按量計費的伺服器用量,峰值時該種伺服器達1000+臺,大大降低了計算資源成本和前期籌劃準備成本。

除去成本之外,更重要的是使用效果和體驗。從計算效能穩定性而言,通常情況下,整體的ECS業務可靠性比線下物理機可靠性有大幅提升(99.95%業務可用性保證);若搭配高效能SSD雲盤,則相當於資料可靠性和業務可用性雙重保險,這也是羅輯思維此次的選擇。另外,ECS提供豐富的企業級例項,羅輯思維選用了最新一代基於skylake處理器、25G網路的企業級例項、大資料分析的D1型例項、高效能資料庫I2型例項等,在效能和成本上都很出色地滿足了需求。

容器服務撐起電商百倍高峰

在剛剛結束的跨年夜裡,羅輯思維的電商業務售賣了數萬件商品,其中單價為6.4W的積家手錶一秒售罄。電商背後是怎樣的技術支撐呢?

容器技術的出現,使得軟體從複雜的交付及運維中解放出來。羅輯思維此次的電商業務依託於阿里雲容器服務,通過分鐘級一鍵部署和秒級海量容器啟動,實現秒級的應用架構伸縮和一站式應用生命週期管理,不僅提高了系統資源利用率,降低了整體成本,而且簡化了應用的管理及運維。

同時容器服務整合阿里雲能力,提供整合的實現無關的容器應用儲存、負載均衡、高可用、監控及日誌管理,極大的簡化分散式應用的管理及運維工作。在業務高峰突然來臨之時,容器服務提供應用容器及叢集資源二級的自動彈性伸縮,從容應對高峰流量。

在羅輯思維此次大促的電商準備階段,在容器服務的支援和優化下,系統壓測能力提升十倍。此次電商銷售活動圓滿完成,叢集資源狀況平穩、極小波動,支撐了較平時百倍壓力的高峰流量。一些具體的優化有:針對跨年活動大流量場景,進行系統架構優化,針對場景進行網路引數優化;開啟多核模式防止單核跑滿;注意調配資源使用的策略,相關應用實現自動擴縮容;關注叢集節點數、應用的例項數量配比等等。

DevOps能力如何提高?

眾所周知,軟體的構建、打包和部署是釋出中的關鍵步驟,企業級開發者往往需要依賴Make、Ant、Maven等一系列工具才能完成原始碼的編譯和連結;而多程式語言和分散式開發則無疑加大了專案構建管理難度。除了對業務服務高可用及平臺管理的支援,容器服務預置DevOps能力:覆蓋應用從構建到交付到運維的整個生命週期,提供多種應用釋出方式和持續交付能力,支援容器持續整合及交付最佳實踐,支援阿里雲及開源CI/CD方案並提供工具鏈整合。

工程師們將應用打包成Docker映象並共享釋出到阿里雲映象服務中,這取代了傳統的程式的分發及環境安裝配置,Docker映象使得開發、測試和生產環境的配置變得簡單而高效,”一處構建,各處部署”。

同時,通過編排模板,可以把一個應用的外部依賴、服務之間的關聯,全部變成可追蹤的程式碼;並且對版本管理進行更好的管控,以便快速上線和回滾。通過編排、和應用無關的不間斷髮布、藍綠髮布等釋出策略的支援,極大提高了線上應用的高可用,降低了釋出風險,提高業務系統的迭代速度。

凌晨值守大功告成