成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

京東大促備戰思路和方法2.0解密

開發 開發工具
提到備戰,實際上不一定要到大型促銷時,工作應該做到平時。京東已發展到了一個比較大的體量,無論是大促還是平時,都容不得出現大問題,我們的思路和方法是:積極預防、及時發現、快速處理,這正是本文前半部分要介紹的。但要做到這十二個字并不容易,本文后半部分會介紹背后的兩個要素:日漸成熟穩定的團隊、日趨完善的流程和規范。

[[179185]]

提到備戰,實際上不一定要到大型促銷時,工作應該做到平時。京東已發展到了一個比較大的體量,無論是大促還是平時,都容不得出現大問題,我們的思路和方法是:積極預防、及時發現、快速處理,這正是本文前半部分要介紹的。但要做到這十二個字并不容易,本文后半部分會介紹背后的兩個要素:日漸成熟穩定的團隊、日趨完善的流程和規范。

下圖是對本文內容的描繪:

京東大促備戰思路和方法2.0解密

1. 積極防預問題

在預防措施上,需要遵循PDCA方法:

P階段:

(1)分析系統職責,確立系統備戰的首要業務目標;

(2)依據業務量評估,對系統處理能力要求進行評估,根據評估結果和系統運行狀況,找出系統瓶頸。*特別地,如果是大促備戰,則要先給大促時的業務量評估。

D階段:

(3)針對系統瓶頸,進行系統改造;

(4)梳理系統間的依賴關系,各系統之間達成SLA,以保證整體性能指標。

C階段:

(5)對系統進行壓力測試,驗證處理能力,確保達標。特別地,如果是大促備戰,則可以考慮在線上進行跨系統軍演;

(6)特別地,如果是大促前夕,則要對系統進行全面體檢。

A階段:

(7)如果系統改造達不到評估要求,則需要修正方案。

1.1. 確定每個系統的首要備戰目標

每個系統都會有自己的邊界,各系統負責人應該分析清楚系統的使命和職責是什么,分清主次,這同時也是制定應急預案的最重要依據,舉例:

(1)訂單交易系統,其最重要的是保證下單,這是剛性的要求,其它的都是有彈性的,例如很多不影響下單的檢驗邏輯,都可以放到下單之后來補償;

(2)OFC,其最重要的是保證訂單生產部門有訂單可生產,盡量不影響其產能,在這個前提下,可以采取各種靈活措施。例如,假設某個庫房的最高生產能力為10萬單,而當時產生的訂單          有20萬,這時系統保障把10萬訂單送給這個庫房生產就能滿足生產要求了,此時可以把系統處理能力分配給POP訂單處理;

(3)物流生產系統,其最重要的是滿足工人的作業需求,保證生產效率,其它的邏輯,如生產數據跟蹤數據處理,可以異步處理。

1.2. 系統性能評估

總體思路:先進行需求評估,然后進行系統評估,找出差距。

1.2.1. 性能需求評估

總體思路:

公司層面首先要給出一個業務量的初估,然后各個團隊可以根據此值來把總的業務量評估分解到自己的系統的吞吐量指標上,接下來就是方案設計的問題了,目標就是將吞吐量指標提高到評估的水平,同時其它性能指標仍能滿足業務要求。這樣兼顧了性能和成本。

吞吐能力評估:

吞吐能力,指的是單位時間內處理請求的數量限制,一般用tps來衡量,指的是每秒處理請求的數量。

前面提到過要把總的業務量評估分解到自己的系統的吞吐量指標,可以把系統看成一個黑桶,看這個桶上邊界輸入的量和下面輸出的量。假設一個系統是客戶訂單處理系統,每一個訂單向它輸入2條處理請求,并向外界輸出4條信息,如果一天的訂單量是1000萬,則這個系統要每天接收2000萬個請求,輸出4000萬條信息。對于直接面對客戶的系統,輸入的評估需要更多的維度(如促銷、推廣),但也有簡單的評估辦法,那把上一次大促作為參照,按業務量同比擴大。

吞吐能力評估

當然,實際評估時,不能只看一天的業務量,還要看峰值,而且要高度重視峰值。前端系統的峰值評估需要考慮比較多的維度(如促銷方式和力度等),后端相對簡單,用于平均值乘以一個系數即可,這個系統可以根據系統以住大促時統計而來,如果是一個新系統,可以讓上游系統協助評估。

并不是所有系統都要承擔高峰值。如果一個業務處理流程比較長,則上游的系統可以平滑峰值,讓下游系統享受一個平滑得多的請求流,這樣可以大大減少系統的建設成本。例如,在訂單處理流程中,OFC扮演了這一個穩壓器的作用,OFC把上游訂單和峰值進行了平滑。所以吞吐能力的評估也需要團隊合作。

容量規劃:

吞吐量的提升,往往伴隨著容量提升,需要做好容量規劃,主要考慮的因素有:

主業務對象的量(如訂單)以及到大促前的增長量

每個主業務對象會占用多少容量

數據要在線上主系統中存留的時間

出現高峰時,允許積壓的數據量和積壓時間

有了上面這幾個數據,就比較好評估了。特別是針對4進行說明,有一些過程數據,處理完就不必要在主系統中存留了,所以在評估時不必考慮,但當出現高峰值,且系統處理無法及時處理時,可以積壓一部分數據慢慢處理。

流量規劃:

吞吐量的提升,也往往伴隨著流量的提升,需要做好容量規劃,這時主要考慮峰值時流量即可,評估時可以按峰值吞吐量同比擴大。如果這個值比較大,應該和運維同事一起評估并尋求解決辦法。

響應速度評估:

響應速度,是衡量服務對請求響應時間的指標,一般用毫秒計量,通常用tp999,tp99,tp90這幾個指標,其中tp999指99.9%的服務請求的響應時間不會高于這個值。

提高響應速度,可以提高系統吞吐量。假設一個服務的響應時間為100ms,允許的并發數是500,則理論上這個服務的吞吐量上限為 5000(500*1000/100)tps;如果響應時間降低到50ms,則理論上的吞吐量上限會降為10000tps。

但是提高響應速度會增加成本,一般說來可以采用類似下面的標準:

前端系統:

前端系統

后端系統:

后端系統

1.2.2. 系統性能評估與驗證

一般有如下方法:

(1)線上服務的性能一般可以通過UMP來查看響應時間、吞吐量;

(2)對于worker,則可以根據其實際輸入輸出的數據量來統計;

(3)線下壓力測試。梳理出所有開放的接口,進行接口壓力測試,線下進行。測試用的數據可以根據業務邏輯進行編制,也可以利用TCP Copy等技術獲取;

(4)線上讀接口壓力測試;

(5)線上寫接口壓力測試。這種測試應該非常小心,注意不要產生垃圾數據,對業務造成影響。常用的避免影響業務的方法有:a) 給數據打上測試標簽,所有參與測試的系統都要根據此標          簽識別出正式數據和測試數據;b) 設計好數據處理流程,在這個流程的最后一步才是真正地把數據提交到正式的主業務庫,而測試流程不執行這一步,或者結合標簽的方法,在這一步過          慮掉測試數據;

(6)減少線上服務器數量,讓更少的服務器承擔不變的壓力,從而增大單臺服務器的負載;

(7)如果面臨大促,則可以考慮跨系統主流程壓測:在上游積壓一定量的數據,以設計好的速度下發請求,驗證后面的流程在設計的并發請求量下是否暢通。這種方法不但需要跨研發團隊          溝通,也需要和業務團隊進行溝通,因為可能會影響到生產時效,同時可能會影響團隊績效。

1.3. SLA確認

上下游系統之間進行SLA確認,是非常有必要的,如果被依賴的系統達不到性能需求,則依賴方的系統100%達不到性要求。因為問題影響首先會在依賴方顯現,所以依賴方更有動力去推動這項工作,如果沒有達成SLA,則需要承擔責任。當然被依賴方也有義務配合,如果有分歧,則需要協商一個可以接受的SLA。

這一個步驟,需要及早進行,只要指標確定,就可以開展了。下面是一個樣例:

SLA確認步驟

其中,”是否可降級”,指的是當服務不可用或者性能下降,影響了調用方的可用性和響應時間到一定程度時,可以不調用或者有限調用。如果可降級,應該還要有具體的降級措施和補償措施。

“超時”指服務調用方的超時設置,超過這個時間將認為本次調用無效,調用方可以重試。如果存在多級依賴關系,如A調用B,B調用C,則超時設置應該是 A>B>C,否則可能引起DDOS攻擊效果。

1.4. 系統改造

關于如何進行架構升級,不是本文的重點,建議大家去參考架構委員會的架構白皮書,白皮書系統地介紹了架構的原則和方法,非常有指導意義。這里只強調下大促備戰最常用的內容,并且主要從應用角度來闡述。

1.4.1. 提高系統處理能力

在評估階段,我們強調過,最主要的系統改造目標是提高系統處理能力,對應的主要措施是:

第一, 硬件升級,使用配置更高的硬件。但是,有的情況下即使硬件配置上去了,但分配給應用本身的資源沒變,這樣處理能力沒有得到提升,資源利用率很低,這點尤其要注意。

第二,擴容。系統要擴容,首先要使系統具備水平擴展能力,應用的每一層都要能水平擴展,不能留有瓶頸。系統到了一定規模后,可以考慮以集群為單位進行擴容,每一個標配的集群的有定量處理能力。而且線上系統出現瓶頸時,可以擴容或者替換若干個集群,這樣簡單高效。數據訪問層的擴展能力尤其重要,從京東系統現狀上來看,這一層往往是瓶頸,而且瓶頸一旦出現,解決起來時間比較長,建議大家引入公司內部的JDAL等中間件來實現。

第三,將系統進行拆分,從而將負載分攤,同時也降低問題影響面。可以按自頂向下,自業務到技術的線路去考慮對系統進行拆分,首先看是不是可以從業務域上切分,然后再從功能的相互依賴關系上分析,將相互依賴緊密但與其它應用交互很少的功能作為一個子系統拆分出來。當然,對于有用戶界面的系統,出于客戶體驗的考慮,系統拆分后,要注意盡量保持UI的統一。

第四,提高響應速度。詳見保持響應速度一節。

第五,使用編程技巧,如串行變并行、單個處理變批量處理等。

1.4.2. 保持響應速度

大促備戰一般不會提出更高響應速度的要求,主要是能保持原來的響應速度,甚至允許有一定程度的下降。主要是因為系統負載增大后,處理過程中可能出現等待資源的情況,傳輸過程中也可能出現阻塞情況,從而增大了處理時長。提高響應速度的方法一般有:

第一,Review系統。對系統的每一層,甚至硬件都進行審查,低性能的代碼和SQL,低性能的中件間,有問題的硬件,都會影響性能,都需要改造或者替換。

第二,使用緩存。首先描繪出從客戶端發請求到接到服務端應答的全路徑,然后分析這條路徑上的每一個節點,是否有必要增加緩存。實際上,緩存的本質就是把內容存到離客戶端更近、訪問速度更快的節點上;緩存的內容可以整個網頁、一個完整的請求-應答、一個對象、一個變量值,等等。常用的緩存技術有:

常用的緩存技術

第三,優化依賴。如果一個系統服務對外有依賴,則有必要對其進行分析,看是否要以優化。首先要進行流程分析,識別出主流程,對不是主流程中的邏輯,通常有優化的余地。常用的方法有:

保持響應速度常用的方法

第四,系統分解。涉及到的方法有很多,例如:

保持響應速度系統分解

1.4.3. 保持可用性

為保持可用性,一般可以采取如下措施:

保持可用性,一般可以采取如下措施

1.5. 處理能力確認

系統性能評估與驗證的方法同樣適用于本工作。

1.6. 大促前夕的系統體檢

就像運動員備戰運動會一樣,需要進行體檢,以保證系統以優良的狀態迎接大促。下表列出了重要的檢查項:

系統體檢重要的檢查項

2. 及時發現問題

為一個互聯網企業,業務發展和變更速度比較快,系統很難一直保持穩定,出現問題在所難免。問題發現的越早,才能越早介入處理;更進一步,如果能在問題發生之前就發現問題的趨勢,并及時介入處理,就可能避免問題發生。

及時發現問題的主要手段是完善監控與報警體系,涵蓋從業務,到應用再到硬件、網絡全方面的監控。本文主要涉及應用級別的監控。

應用級別的監控

3. 快速決策和處理

系統運行時可能遇到各種各樣的問題,如果有對應的應急預案,并演練到位,則可從容面對。當真的出現了緊急情況,最要緊并不是去尋找問題的根源,而是果斷采取措施控制住影響。越早決策,影響就越小。

3.1. 應急預案

3.1.1. 風險分析

系統運行時可能遇到各種各樣的問題,常見的有:

系統運行時可能遇到各種各樣的問題

3.1.2. 預案重要元素

 預案重要元素

3.1.3. 常用預案和處理方法

常用預案和處理方法

3.2. 快速決策

  • 做好分工
  • 了解對業務的影響
  • 檢查確認系統是否在正常工作;檢查日志分析異常等信息
  • 檢查機器負載;檢查應用響應時長和吞吐量
  • 關注報警
  • 做好演練
  • 演練操作的熟練程度
  • 演練協調能力
  • 注意總結,某些問題可以直接做出決策

3.3. 快速執行

  • 提前打開配置界面,配置好;提前收集好各類信息
  • 提前建好上線任務
  • 進行培訓和實際操作

4. 成熟穩定的團隊

由于互聯網業務發展變化較快,系統變更也比較頻繁,不適合開發和運營分家的模式,而是自己建設的系統,自己負責運營。這樣,不但能提高運營效率,大家又可以在運營過程中發現問題,體驗問題帶來的痛苦,所以會想辦法改進設計,以避免問題發生。這樣的團隊建設的系統會更易于運營,性能更加穩定,團隊的設計能力也會顯著提升,也就會趨于穩定和成熟,這樣就形成了良性循環。

5. 流程和規范

備戰大促,涉及到許多團隊,需要大家通力合作,也就需要遵循一定的制定和流程規范,下表列舉了其中一部分。

備戰大促的流程和規范

6. 總結

我們回顧一下備戰的思路和方法,這是平時就要認真做好的:

  • 積極預防,遵循PDCA模型,在系統建設之初就注重非功能設計,注重如何方便日常運營,并持續改進系統
  • 提高發現問題的能力,能及早發現問題,甚至在問題發生前就介入處理
  • 提高問題決策和處理問題的速度,迅速控制住問題影響,并解決問題

如果面臨大促,則有必要采取的措施有:

  • 用大促的業務量預估來對系統進行評估
  • 采取更加嚴格的檢查措施,考慮進行跨系統的線上軍演;大促前夕對系統進行全面的健康體檢。
  • 大促來臨時,執行嚴格的現場值班制度
  • 建立統一的大促組織,統一指揮

要能很好地執行以上方法,應該具備兩個要素:

  • 日漸成熟的團隊。開發團隊即運營團隊,團隊在運營過程中發現問題,并通過系統設計解決問題,設計和運營能力一起提升。
  • 日趨完善的流程和規范,保障備戰措施的順利實施,促進團隊進步。

作者:林世洪,畢業于北京交通大學,2011年加入京東,先后負責京東訂單履約體系和零售平臺架構工作,連續兩屆架構委員會成員,此期間主導和參與了京東研發若干規范的制定,著力推動電商核心系統架構升級,總結形成了大型促銷備戰方法論,保障了電商主流程系統的穩定性,降低了整體系統建設成本。個人技術方面更多關注根據業務特點和技術要求對系統進行可運營化改造和治理。

 【本文來自51CTO專欄作者張開濤的微信公眾號(開濤的博客),公眾號id: kaitao-1234567】

責任編輯:趙寧寧 來源: 開濤的博客
相關推薦

2016-01-13 14:54:50

京東京東大腦

2018-07-05 10:56:42

白熊視頻 京東618

2024-10-15 08:14:51

2018-12-08 11:14:00

京東

2015-07-14 09:24:03

京東618MySQL

2014-08-08 15:34:49

京東大數據技術

2012-08-02 11:01:40

投影機

2015-11-05 14:35:36

京東大腦計劃雙十一

2017-01-15 13:45:20

Docker大數據京東

2012-08-07 15:18:30

投影

2017-01-10 14:01:01

企業辦公

2015-09-09 14:50:53

億瑪電商

2017-11-24 09:20:11

數據中心網絡運維

2017-01-15 18:51:57

京東手機商品詳情頁

2018-06-21 09:07:58

京東實踐京麥平臺

2017-11-02 16:16:19

雙十一

2018-07-11 06:06:20

物流倉儲運維數據庫

2015-11-10 11:46:17

京東雙十一

2016-06-06 11:36:06

數據中心

2013-12-20 14:43:01

微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人干人人爽 | 一区二区小视频 | 国产黄色av网站 | 福利视频大全 | 在线电影日韩 | 欧美精品一区在线发布 | 黄色成人免费看 | 久久久久久久亚洲精品 | www日本在线 | 天天插天天射天天干 | 中文字幕在线观看 | 国产精品免费看 | 国产精品久久久久久久久久三级 | 九九久久国产精品 | 狠狠干狠狠操 | 日韩在线免费电影 | 日本黄色一级片视频 | 亚洲一区二区三区久久 | 日日操av | 日韩精品视频在线免费观看 | 久久网日本 | 国产视频在线观看一区二区三区 | 中文字幕高清 | 国产探花在线精品一区二区 | 最新中文字幕在线 | 日韩视频在线免费观看 | 久国产| 欧美视频在线看 | 久久成人免费 | 国产精品久久久久久影视 | 久久久国产视频 | 玖玖在线免费视频 | 成人综合视频在线观看 | 精久久 | 欧美国产大片 | 欧美成年人 | 亚洲欧美日韩精品久久亚洲区 | 拍拍无遮挡人做人爱视频免费观看 | 黄色成人在线观看 | 青青久久av北条麻妃海外网 | 国产精品九九 |