IT人角度分析京东商城Server is too busy事件
http://www.mysqlops.com/2011/11/14/server-is-too-busy.html
【導讀】
京東商城策劃的正常折扣之后,只要滿200元就五折購書活動,營銷活動策劃的非常成功,第一次出現無法下單或無法付款等一些問題,并提示網購物者錯誤信息為Server is too busy,然后京東商城創始人劉強東先生站用戶角度表達不滿意,并且要求加三倍機器也要第二天重新再次開啟購書促銷活動,雖然第二次繼續出現Server is too busy。整個事件的過程中,不管是活動策劃效果,還是京東商城或創始人劉強東先生的危機公關,以及主動透露對待信息部門的態度,都非常成功,唯一失敗的是出現戲劇性的Server is too busy,也許沒有這個事件京東商城的促銷活動并不會引起這么大的影響,個人相信這不是事先策劃過的事情,但是此事件暴露京東商城技術實力的薄弱和管理者的落伍,甚至京東商城號稱要招5000名工程師等,根據這一系列的信息,我們分別從IT技術從業者和技術管理者的角度闡述一些個人的觀點,希望對網絡世界的我們有所啟發或幫助。
(一)? 營銷活動的前期準備及部門協同
我們先圍繞2011年11月1號京東商城促銷購書營銷活動事件展開,超低價促銷的營銷活動,那么有一些信息就需要運營部門和技術部門合作一起梳理:
(1)????? 參加促銷活動的商品種類、商品名稱和數量等信息;
(2)????? 促銷活動的力度,繼續的時間;
(3)????? 促銷活動可能會吸引多少網購者參與,通過事先收集本站及其它競爭對手的過往數據;
(4)????? 網站不進行特殊的技術處理情況下,能同時允許多少用戶并發地購物,并且對不同環節進行預估,尤其京東商城的購物車應用;
(5)????? 網站提供服務的負載均衡設備、Web應用服務器、后端應用服務器、MemCached等可正常擴容情況下,可以支撐多少購物者同時在線完成購物流程:挑選物品、添加到購物車、填寫郵寄地址等信息、付款等;
(6)????? 把第4,5步驟得出的系統能力,與營銷策劃活動的部門提供的可能購物者有多少進行最大值和最小值比較,計算出差值并且最好最壞打算,如何保證一定數額的購物者能正常完成購物流程,以及與運營部門商議是否可放寬促銷活動的時間寬度,減少并發購物人數的概率性;
(7)????? 評估是否有條件,以及有合理的時間和資源對策劃的運營活動開發一套新的系統,以支撐運營活動的開展;
(8)????? 對參與促銷活動的物品信息及相關物品信息(比如促銷為書籍,可能非促銷的書籍也會購買,尤其熱門書籍),優先生成靜態頁面儲存到專門開辟的MemCached服務器中,提高對用戶的響應速度和減少現有系統的負載;
(9)????? 大型營銷活動,還可能涉及CRM部門、財務部門、物流等相關部門,尤其物流涉及的倉儲和配送預計能承擔的負荷能力,事先告知而避免購物者下單之后抱怨物流太慢或貨物質量等問題;
(10)? 限時大規模的促銷活動,也必定會帶來帶寬和安全方面的問題,必須做好監測和防備DDOS攻擊的能力,避免導致營銷活動泡湯;
(11)? 運營活動結束之后,需要得到什么樣的數據分析報告等,都要實現規劃好,甚至預演過;
相信京東商城能成為B2C領域獨領風騷的公司,內部專業人士可以列出更多更詳細的信息,就不繼續往下,把上述可能需要大家一起梳理的信息羅列出來一部分,就是告訴我們大家:我們是一個整體,任何一個環節的疏忽都可能成為瓶頸而導致出問題,要把部門與部門之間配合詳細描述清楚,且使營銷活動參與支撐的每個一個人都清楚自己要做什么,要給別人什么支持或信息,甚至通過梳理信息和商議一些做法,可以達到承載更多的購物者參與促銷運營活動,并且為公司節省成本。
(二)? 營銷活動期間出現的故障及關聯信息
京東商城網站大量用戶報出現(注:筆者也是參與購書活動的用戶之一)
這樣大規模營銷活動時,其他企業也出現類似的故障花絮,淘寶策劃的雙十一促銷活動也一樣出現過故障,而且淘寶開展促銷運營活動,是整個阿里的資源都調動起來:支付寶、阿里巴巴(內稱B2B)、阿里云、淘寶等子公司都有專門的技術團隊參與支持,活動開始之前就早早安排好值班的人員。而京東商城屬于B2C型電子商務,無論物品種類、數量等,還是在線購物者都是無法比擬,而且內部還稱信息部,這更加證明京東商城,還是類似傳統型企業,技術的積累和接受過的挑戰并沒那么多,為此造成營銷活動出現宕機的故障也在所難免,若是說找一個人承擔責任的話,那么只能套用一句俗話:一切問題的發生都是管理不當造成的,那么這個責任應該是京東商城的信息部經理承擔(注:互聯網行業公司一般稱技術總監 或 CTO,像阿里巴巴是副總裁),他應該要有能力或意識提前預測可能發生的問題,以及組織架構師、開發人員、DBA、系統工程師等人員尋找應對或解決的辦法。
我們繼續圍繞這一事件及京東商城劉強東先生微博透露的信息,先梳理知道或可猜測的信息:
(1).??? 單一品種:圖書音像類,促銷方式為折扣+滿200元再打五折;
點評:折扣是其他圖書類網站都有,且并不占優勢,但是滿200元再打五折非常誘人;
(2).??? 第一次營銷活動就出現Server is toow busy的問題且超嚴重;
點評:技術人難得的挑戰機會,結果是京東商城技術人的恥辱。
(3).??? 第一次營銷活動搞砸之后,京東商城創始人劉強東要求增加三倍服務器,堅持促銷的3個小時,且確保大家的訂單能提交;
猜測:未必真添加3倍的服務器,若真增加了,說明之前使用的服務器數量太少,沒重視此事情。
(4).??? 第二次營銷活動依然出現Server is too busy,但是相比較稍好;
分析:部分網購者已經購買成功;系統有改進或優化;服務器也有增加;不少人放棄參加第二次的促銷活動。
(5).??? 三小時促銷活動訂單為:數十萬(注:具體數字不詳),超過300W本書籍出售;
推測:訂單數30W-50W之間,估計是40W訂單出頭。
(6).??? 事后補償機制:20日內我們會給所有沒搶到的老用戶發放高額優惠券;
點評:不靠譜的做法,即使發放也不需要等待那么長時間,這也更加間接說明技術實力的薄弱。
(三)? 圍繞技術方面如何應對高并發
根據官方微博透露出售的書籍信息,及訂單數量級,我們可以再大膽猜測大概有30W-50W的網絡用戶在三個小時促銷期內參與購買,而且是分二天完成的,相信一天的促銷時間段參與購買者的數字會更低一些,不過這對于一個B2C網站而言確實并發壓力不小,假設一臺Web服務器能支撐5000個并發,所有用戶同時間點添加書籍到購物車中,那么需要600-1000臺Web服務器。不過這只是個極端假設,真實的情況肯定不是有幾個點肯定容易成為瓶頸:購物車服務、MemCached服務、訂單管理服務、支付服務、數據庫服務,不清楚內部具體情況,只能進行猜測性分析:
(1). 京東商城采用購物車系統,方便網購客進行物品挑選,然后集中完成訂單的模式,有區別于淘寶網的模式,為此購物車系統的壓力將會非常大。購物車系統服務涉及大量的數據添加和顯示操作,甚至修改和刪除,數據必須考慮先要你用內存(例如:MemCached、Redis等)方式支持物品數據的增加、修改、刪除,并異步更新到數據庫中,因此購物車系統需要操作的內存緩存區最好能支持分布式部署和提供數據服務的模式,否則容易成為瓶頸,若是無法水平分布式的方式擴容,那必須進行垂直擴容,不得不考慮更換內存更大及性能更優秀的服務器支持;
(2). MemCached提供讀服務是必須的且壓力也會不小,但還必須考慮提供寫操作,即數據先寫入MemCached再隊列方式同步到數據庫;
(3).隊列服務,涉及到一些數據的異步執行和排隊等待等事件,在電子商務領域一樣非常流行和成熟的技術,鄙人曾參與一個分布式隊列項目的研發,達到可以在線部署、停止、調度、監控等功能,尤其是這種網購促銷活動隊列尤其重要,若是能有此類技術服務,會對整個系統的有序控制非常有幫助;
(4). 提供數據服務的數據庫產品為SQL Server,這并不是意味著性能就差,關鍵是要做到:操作系統不需要的服務必須關閉,磁盤RAID要合理,數據庫的設計要合理,索引組織結構要優化好,SQL Server 服務器端參數要配置和優化,重點借助Windows自帶的工具就足夠監控和分析數據庫服務器的性能和瓶頸。主要是數據庫服務器往往不容易進行拆分,而實現水平方向的分布式部署(注釋:SQL Server有一個分布式分區視圖功能,可以輕易實現數據的拆分,且不需要應用做任何修改,只是性能相對而言會降低一點)。故可對于一些靜態的速度提前預存到后端的緩存系統中,減少數據庫服務器的壓力,提高對網購者物品信息查詢的響應速度;
(5). 提供Web服務的程序為.net編寫的,一般做到水平擴展,然后再搭配LVS或F5(注釋:既說京東商城使用F5)實現負載均衡設備即可,Web服務層面不會成為瓶頸。若是.net程序代碼質量不高,則可能成為瓶頸,就需要更多的機器支持;
(6). 訂單管理系統將會成為壓力非常大的服務,需要合并訂單和檢查庫存,分配訂單到不同的倉庫所在地等,建議只做訂單常規的檢查,至于訂單分配到不同地方倉庫處理等事情可以等活動結束之后的1-2個小時內再后臺集中處理的模式;
(7).支付服務方面,京東商場有自己的物流配送服務,且提供在線支付和貨到付款的模式,具體數字不詳,網絡上獲得的京東商城貨代付款比率高達90%;
?
小結:
曾經微博mysqlops上發過一段話形容“產品、運營、技術”的三角戀關系:成功的產品需要優秀的運營團隊;好的運營團隊也需要優秀的產品;再好的產品和運營,也要堅如磐石的技術作支撐,否則最多是一座小洋樓;再牛的技術人要是不能服務于產品和運營,就像深鎖閨房的黃花大閨女。正確看待三者的關系,就是肯定我們大家的工作,公司或團隊才可能取得巨大的成功!
這次大規模的促銷畢竟是京東商城的第一次真正體驗互聯網網購壓力,多少會存在預備不足的情況,以及運營部門和技術部門銜接的信息不暢或不到位的情況,關鍵是出現這些問題之后,是否能借助這些經驗教訓,進行深刻的對內性反思且發現存在的問題,是否在高位的管理者意識到技術將成為業務發展的瓶頸,畢竟京東商城的運營團隊和產品團隊已經做得非常棒了,而且B2C領域的市場占有率也非常高,接下來就是如何把這些優勢如何發揮得更加明顯,那么就需要技術支撐了,相信京東商城2010年至今從阿里系挖了不少技術人員,以及從其他公司搜刮了不少非常優秀的技術人,不至于愿意把他們束之高閣。若是京東商城想成為B2C平臺,必須考慮投入資源和放權,讓真正能結合業務發展需求且能把握技術方向的能人志士成為主導者,從而實現技術的革新,使其成為產品和運營的一把利劍。
?
(四)? 京東商城2012年招聘規劃
前面圍繞圖書音像類滿200元五折促銷活動事件展開的分析和總結,并且分別從管理和技術的角度給出相關改進建議,我們本節談一談京東商城宏偉的2012年招聘計劃,相關背景信息:京東商城現有人員大概1.3萬名員工,2012年將招收2萬名電子商務人才,補充公司發展需要,包括5000名新畢業大學生、1000名軟件工程師和1000名有相關從業經歷的行業人士。
對我們技術圈人員而言是一大盛事,各大公司都爭相聘請更多數量的技術人才,肯定會把技術人員的薪資待遇提高,也許又可以向歐美正常的待遇靠近一步;理智地想一想,這樣的虛假繁榮又能維持多久呢?就像團購行業,一開始團購行業的人才待遇風生水起,資本市場也加入這場游戲,誰又能想到最后的結局可能都玩完,反而被淘寶聚劃算、大眾點評團購等幾大原本就有資源優勢的公司后發制人,最后市場也做萎縮了,也就導致沒有那么多企業生存下來,最后會有很多技術人員被裁掉,好像這樣這樣做對社會,對企業,對個人而言都不是好事情。
我們接著從企業業務發展需求角度分析,京東商城的業務,主要是自營業務平臺,相信后續發展必然會考慮做B2C網購平臺,以及自建的物流配送系統等組合在一起,相對于淘寶網的業務和挑戰,依然是相差甚遠,原因很簡單:淘寶網上的注冊網店和活躍用戶的數量都非常龐大,而且其自己做很多幫助網店賣家如何經營、如何判斷自家網店經營狀況、營銷等方面提供技術支持,也相當多的應用是第三方企業API函數調用的模式提供,也需要管理及監控,另外從訂單量和交易額度而言,更加無法比擬,用一句話概括:淘寶網那么大的布局和業務需求,都不需要你所言的工程師數量,為何京東商城要考慮人海戰術?
我們再從企業管理的角度分析,先大致羅列幾點:
(1).招聘的應屆生需要非常多的培訓資源,而且需要確保培訓的質量,只好要保證幾個方面:技能培訓,正確做事的方式,企業文化熏陶等方面;
(2).企業人數越來越多,不可避免地會出現企業文化稀釋;
(3).部門內部,甚至部門與部門之間的利益或權利的爭斗會越來越嚴重;
(4).正常事情的完成會涉及更多部門或人,而信息傳遞越來越困難,執行力可能越來越差;
(5).公司的管理組織架構和績效考核管理等,都必須做相應的變化,不同的企業可能轉變方式不太一樣,轉變的過程可能會出現很多意想不到的事情發展,容易出現嚴重的不公平性;
(6).技術人員一般都是有一定的技術追求的,若是沒有事情可做就等于要廢了他們,而京東商城未必有那么的業務發展的事情需要他們去承擔,最后的結果可能是優秀的人才走了,剩下的是普通和混日子為主的雇員;
(7).雇傭大量員工,不論管理成本,日常辦公等開銷,還是最直接的薪資待遇開銷,都將是非常客觀的數字,而且薪資待遇低還很難吸引到優秀人才;
(8).在IT企業中,千萬別把技術人員,當IT民工使用。若是聘請普通或平庸型的技術人才,會比優秀人才給企業帶來的成本高得多,優秀人才(備注:指綜合素質,人才肯定需要搭配的,莫鉆牛角尖)不管是做事情的速度,還是完成的質量等各個方面都會遠遠超過其他類型人才,而且還可能給企業降低在管理、帶寬、硬件、機房等設施方面的資金投入,并且贏得更好的用戶體驗;
?
小結:
企業的雇員及業務規模做大并不是萬能的,重要的是企業要注重責任、誠信,踏實做好每一件事情,考慮企業發展的速度,盡量挖掘企業內部現有資源,并且補充必需資源,才能有長遠的發展。
?
(五)? 京東商場的云計算規劃
看到京東劉強東先生及京東商城官方微博,提出京東商城也要做云計算,個人感覺到非常吃驚!不知道京東商城是要為上市做準備,還是為了面子工程或說為了國家提供的云計算補貼基金,還是京東商城有我們外面人都不曾可預計的龐大業務正在秘密研發或業務將以火箭速度增長呢?
以京東商城現在及未來的業務支撐點而言,不管從京東商城現在還是將來的業務規模看,都沒有必要自己做云計算,或說提供云計算服務,國內的情況不能跟國外的Amazon等公司相比較,國內外的環境不一樣,也不要跟阿里巴巴馬云去比較,他是為自身的電子商務圈而服務,且已經形成規模和布局,不這么做可能違法減低其成本和維持其生態圈的運作,而且阿里巴巴已經具備提供云計算服務的硬件設施條件,以及業務發展需求,可以用一句話說:業務促動其必須考慮搞云計算服務,關于阿里巴巴提供云計算服務的個人看法闡述可以查閱阿里云飛天系統的技術架構。
從目前的現狀分析(例如:對于未完成搶購下單的用戶獎勵,需要20天的時間完成,動作太遲緩)及未來業務的發展,京東商城必須搞對內的分布式計算,其內部用戶瀏覽物品信息、購物訂單等數據累計到一定程度,就非常有價值,需要學會用數據佐證商業決策、運營活動的開展和產品的規劃,以便決策者快速地分析企業業務發展現狀,及時地分析自身網站上所產生的用戶行為數據,幫助產品和營銷的人員,更好地優化產品和用戶購物體驗,甚至還可以收集競爭對手的數據并加以分析幫助企業做出正確的商業決策。
?
(六)? 總結
京東商城B2C購物網站,在京東劉強東先生及管理團隊的帶領下,從單一的3C產品,發展到現在種類齊全,而且年交易額度也是超100億元規模,發展的非常迅速,而且京東商城的產品和營銷手段也越來越高明,雖然京東劉強東先生本人非常低調,但是京東商城卻是越來越高調地做事情,而且做事情的手筆對競爭對手越來越有威脅性,本人相信京東商城會繼續領跑獨立的B2C電子商場網購業務,但是京東商場還有需要內功需要修煉,尤其隨業務迅速發展,技術壁壘可能會成為其內部的一道坎,但是早已經從外部挖來大量經驗豐富的員工,只要給予他們舞臺和資源上的支持,相信京東商城下一次促銷活動有辦法規避出現大規模的Server is too busy事件。
總結
以上是生活随笔為你收集整理的IT人角度分析京东商城Server is too busy事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东商城用户资料完全泄露
- 下一篇: 【小程序项目开发-- 京东商城】uni-