国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

大眾點評高可用性系統運維經驗分享

運維 系統運維
本文主要以大眾點評的交易系統的演進為主來描述如何做到高可用,并結合了一些團隊的運營經驗,包括保證比較高的服務可用率,在出現故障時的應對,及時發現、故障轉移、盡快從故障中恢復等。需要強調的是,高可用性只是一個結果,應該更多地關注迭代過程,關注業務發展。

  所謂高可用性指的是系統如何保證比較高的服務可用率,在出現故障時如何應對,包括及時發現、故障轉移、盡快從故障中恢復等等。本文主要以點評的交易系統的演進為主來描述如何做到高可用,并結合了一些自己的經驗。需要強調的是,高可用性只是一個結果,應該更多地關注迭代過程,關注業務發展。

可用性的理解

  1.理解目標

  業界高可用的目標是幾個9,對于每一個系統,要求是不一樣的。研發人員對所設計或者開發的系統,要知道用戶規模及使用場景,知道可用性的目標。比如,5個9的目標對應的是全年故障5分鐘。

  2.拆解目標

  幾個9的目標比較抽象,需要對目標進行合理的分解,可以分解成如下兩個子目標。

  (1)頻率要低:減少出故障的次數

  不出問題,一定是高可用的,但這是不可能的。系統越大、越復雜,只能盡量避免問題,通過系統設計、流程機制來減少出問題的概率。但如果經常出問題,后面恢復再快也是沒有用的。

  (2)時間要快:縮短故障的恢復時間

  故障出現時,不是解決或者定位到具體問題,而是快速恢復是***要務的,防止次生災害,問題擴大。這里就要求要站在業務角度思考,而不僅是技術角度思考。

  下面,我們就按這兩個子目標來分別闡述。

  頻率要低:減少出故障的次數

  設計:根據業務變化不斷進行迭代

  以點評交易系統的演進過程為例。

  幼兒時期:2012年前

  使命:滿足業務要求,快速上線。

  因為2011年要快速地把團購產品推向市場,臨時從各個團隊抽取的人才,大部分對.NET更熟悉,所以使用.NET進行了***代的團購系統設計。畢竟滿足業務要求是***的,還沒有機會遇到可用性等質量問題。考慮比較簡單,即使都掛了,量也比較小,出現問題,重啟、擴容、回滾就解決問題了。

  系統架構如下圖所示。

  少年時期:垂直拆分(2012-2013)

  使命:研發效率&故障隔離。

  當2012年在團單量從千到萬量級變化,用戶每日的下單量也到了萬級時候,需要考慮的是迭代速度、研發效率。垂直拆分,有助于保持小而美的團隊,研發效率才能更高。另外一方面也需要將各個業務相互隔離,比如商品首頁的展示、商品詳情頁的展示,訂單、支付流程的穩定性要求不一樣。前面可以緩存,可以做靜態化來保證可用性,提供一些柔性體驗。后面支付系統做異地容災,比如我們除了南匯機房支付系統,在寶山機房也部署了,只是后來發現這個系統演進太快,沒有工具和機制保證雙機房更新,所以后來也不好使用了。

  系統演進如下圖所示。服務垂直化了,但是數據沒有完整隔離開,服務之間還需要互相訪問非自己的數據。

  青年時期:服務做小,不共享數據(2014-2015)

  使命:支撐業務快速發展,提供高效、高可用的技術能力。

  從2013年開始,Deal-service (商品系統)偶爾會因為某一次大流量(大促或者常規活動)而掛掉,每幾個月總有那么一次,基本上可用性就在3個9徘徊。這里訂單和支付系統很穩定,因為流量在商品詳情頁到訂單有一個轉化率,流量大了詳情頁就掛了,訂單也就沒有流量了。后來詳情頁的靜態化比較好了,能減少恢復的速度,能降級,但是Deal- service的各個系統依賴太深了,還是不能保證整體端到端的可用性。

  所以,2014年對Deal-service做了很大的重構,大系統做小,把商品詳情系統拆成了無數小服務,比如庫存服務、價格服務、基礎數據服務等等。這下商品詳情頁的問題解決了,后面壓力就來了,訂單系統的壓力增大。2014年10月起,訂單系統、支付系統也啟動了全面微服務化,經過大約1年的實踐,訂單系統、促銷系統、支付系統這3個領域后面的服務總和都快上百個了,后面對應的數據庫20多個,這樣能支撐到每日訂單量***。

  業務的增長在應用服務層面是可以擴容的,但是***的單點——數據庫是集中式的,這個階段我們主要是把應用的數據訪問在讀寫上分離,數據庫提供更多的從庫來解決讀的問題,但是寫入仍然是***的瓶頸(MySQL的讀可以擴展,而寫入QPS也就小2萬)。

  這時系統演變成如下圖所示。這個架構大約能支撐QPS 3000左右的訂單量。

  成年時期:水平拆分(2015至今)

  使命:系統要能支撐大規模的促銷活動,訂單系統能支撐每秒幾萬的QPS,每日上千萬的訂單量。

  2015年的917吃貨節,流量***峰,如果我們仍然是前面的技術架構,必然會掛掉。所以在917這個大促的前幾個月,我們就在訂單系統進行了架構升級和水平拆分,核心就是解決數據單點,把訂單表拆分成了1024張表,分布在32個數據庫,每個庫32張表。這樣在可見的未來都不用太擔心了。

  雖然數據層的問題解決了,但是我們還是有些單點,比如我們用的消息隊列、網絡、機房等。舉幾個我過去曾經遇到的不容易碰到的可用性問題:

  服務的網卡有一個壞了,沒有被監測到,后來發現另一個網卡也壞了,這樣服務就掛了。

  我們使用 cache的時候發現可用性在高峰期非常低,后來發現這個cache服務器跟公司監控系統CAT服務器在一個機柜,高峰期的流量被CAT占了一大半,業務的網絡流量不夠了。

  917大促的時候我們對消息隊列這個依賴的通道能力評估出現了偏差,也沒有備份方案,所以造成了一小部分的延遲。

  這個時期系統演進為下圖這樣:

  未來:思路仍然是大系統做小,基礎通道做大,流量分塊

  大系統做小,就是把復雜系統拆成單一職責系統,并從單機、主備、集群、異地等架構方向擴展。

  基礎通道做大就是把基礎通信框架、帶寬等高速路做大。

  流量分塊就是把用戶流量按照某種模型拆分,讓他們聚合在某一個服務集群完成,閉環解決。

  系統可能會演進為下圖這樣:

  上面點評交易系統的發展幾個階段,只以業務系統的演進為例。除了這些還有CDN、DNS、網絡、機房等各個時期遇到的不同的可用性問題,真實遇到過的就有:聯通的網絡掛了,需要切換到電信;數據庫的電源被人踢掉了,等等。

  易運營

  高可用性的系統一定是可運營的。聽到運營,大家更多想到的是產品運營,其實技術也有運營——線上的質量、流程的運營,比如,整個系統上線后,是否方便切換流量,是否方便開關,是否方便擴展。這里有幾個基本要求:

  可限流

  線上的流量永遠有想不到的情況,在這種情況下,系統的穩定吞吐能力就非常重要了,高并發的系統一般采取的策略是快速失敗機制,比如系統QPS能支撐 5000,但是1萬的流量過來,我能保證持續的5000,其他5000我快速失敗,這樣很快1萬的流量就被消化掉了。比如917的支付系統就是采取了流量限制,如果超過某一個流量峰值,我們就自動返回“請稍后再試”等。

無狀態

  應用系統要完全無狀態,運維才能隨便擴容、分配流量。

  降級能力

  降級能力是跟產品一起來看的,需要看降級后對用戶體驗的影響。簡單的比如:提示語是什么。比如支付渠道,如果支付寶渠道掛了,我們掛了50% ,支付寶旁邊會自動出現一個提示,表示這個渠道可能不穩定,但是可以點擊;當支付寶渠道掛了100% ,我們的按鈕變成灰色的,不能點擊,但也會有提示,比如換其他支付渠道(剛剛微信支付還掛了,就又起作用了)。另一個案例,我們在917大促的時候對某些依賴方,比如誠信的校驗,這種如果判斷比較耗資源,又可控的情況下,可以通過開關直接關閉或者啟用。

  可測試

  無論架構多么***,驗證這一步必不可少,系統的可測試性就非常重要。

  測試的目的要先預估流量的大小,比如某次大促,要跟產品、運營討論流量的來源、活動的力度,每一張頁面的,每一個按鈕的位置,都要進行較準確的預估。

  此外還要測試集群的能力。有很多同學在實施的時候總喜歡測試單臺,然后水平放大,給一個結論,但這不是很準確,要分析所有的流量在系統間流轉時候的比例。尤其對流量模型的測試(要注意高峰流量模型跟平常流量模型可能不一致)系統架構的容量測試,比如我們某一次大促的測試方法。

  從上到下評估流量,從下至上評估能力:發現一次訂單提交有20次數據庫訪問,讀寫比例高峰期是1:1,然后就跟進數據庫的能力倒推系統應該放入的流量,然后做好前端的異步下單,讓整個流量平緩地下放到數據庫。

  降低發布風險

  嚴格的發布流程

  目前點評的發布都是開發自己負責,通過平臺自己完成的。上線的流程,發布的常規流程模板如下:

  灰度機制

  服務器發布是分批的,按照10%、30%、50%、100%的發布,開發人員通過觀察監控系統的曲線及系統的日志,確定業務是否正常。

  線上的流量灰度機制,重要功能上線能有按照某種流量灰度上線能力。

  可回滾是標配,***有最壞情況的預案。

時間要快:縮短故障的恢復時間

  如果目標就要保證全年不出故障或者出了故障在5分鐘之內能解決,要對5分鐘進行充分的使用。5分鐘應該這樣拆解:1分鐘發現故障,3分鐘定位故障出現在哪個服務,再加上后面的恢復時間。就是整個時間的分解,目前我們系統大致能做到前面2步,離整體5個9的目標還有差距,因為恢復的速度跟架構的設計,信息在開發、運維、DBA之間的溝通速度及工具能力,及處理問題人員的本身能力有關。

  生命值:

  持續關注線上運行情況

  熟悉并感知系統變化,要快就要熟,熟能生巧,所以要關注線上運營情況。

  了解應用所在的網絡、服務器性能、存儲、數據庫等系統指標。

  能監控應用的執行狀態,熟悉應用自己的QPS、響應時間、可用性指標,并對依賴的上下游的流量情況同樣熟悉。

保證系統穩定吞吐

  系統如果能做好流量控制、容錯,保證穩定的吞吐,能保證大部分場景的可用,也能很快地消化高峰流量,避免出現故障,產生流量的多次高峰。

  故障時

  快速的發現機制

  告警的移動化

  系統可用性的告警應該全部用微信、短信這種能保證找到人的通信機制。

  告警的實時化

  目前我們只能做到1分鐘左右告警。

  監控的可視化

  我們系統目前的要求是1分鐘發現故障,3分鐘定位故障。這就需要做好監控的可視化,在所有關鍵service里面的方法層面打點,然后做成監控曲線,不然3分鐘定位到具體是哪個地方出問題,比較困難。點評的監控系統CAT能很好的提供這些指標變化,我們系統在這些基礎上也做了一些更實時的能力,比如訂單系統QPS就是秒級的監控曲線。

有效的恢復機制

  比如運維的四板斧:回滾、重啟、擴容、下服務器。在系統不是很復雜、流量不是很高的情況下,這能解決問題,但大流量的時候就很難了,所以要更多地從流量控制、降級體驗方面下功夫。

  幾點經驗

  珍惜每次真實高峰流量,建立高峰期流量模型。

  因為平常的壓力測試很難覆蓋到各種情況,而線上的真實流量能如實地反映出系統的瓶頸,能較真實地評估出應用、數據庫等在高峰期的表現。

  珍惜每次線上故障復盤,上一層樓看問題,下一層樓解決問題。

  線上出問題后,要有一套方法論來分析,比如常見的“5W”,連續多問幾個為什么,然后系統思考解決方案,再逐漸落地。

  可用性不只是技術問題。

  系統初期:以開發為主;

  系統中期:開發+DBA+運維為主;

  系統后期:技術+產品+運維+DBA。

  系統較簡單、量較小時,開發同學能比較容易地定位問題并較容易解決問題。

  當系統進入較復雜的中期時,就需要跟運維、數據庫的同學一起來看系統的瓶頸。

  當系統進入復雜的后期時,系統在任何時候都要考慮不可用的時候如何提供柔性體驗,這就需要從產品角度來思考。

  單點和發布是可用性***的敵人。

  可用性要解決的核心問題就是單點,比如常見的手段:垂直拆分、水平拆分、灰度發布;單機到主備、集群、異地容災等等。

  另外,系統發布也是引起系統故障的關鍵點,比如常見的系統發布、數據庫維護等其他引起系統結構變化的操作。

責任編輯:火鳳凰 來源: 美團點評技術團隊
相關推薦

2016-03-22 16:11:31

高可用性系統實踐經驗

2015-07-16 13:23:13

2012-04-25 18:07:17

大眾點評網王宏網站平臺遷移

2010-08-12 17:22:06

網站運維可用性

2018-06-19 08:29:00

2022-07-07 11:27:14

技術搜索模型

2013-06-20 14:29:49

2016-05-23 16:22:49

大眾點評支付網關系統

2016-01-14 10:33:35

FusionServe華為大眾點評網

2016-09-29 15:03:50

大眾 點評

2024-08-13 15:42:19

2015-10-12 11:25:20

android大眾點評下拉動畫

2020-04-30 16:38:21

數據分析可視化代碼

2013-04-12 13:30:47

2024-02-27 09:48:25

Redis集群數據庫

2012-09-04 13:43:31

SQL Server

2013-08-28 10:30:39

vSphere

2010-12-21 17:31:48

2013-03-18 16:49:50

大眾點評315央視

2012-07-04 11:21:07

OpenStack
點贊
收藏

51CTO技術棧公眾號

中国一级黄色录像| 你懂的视频在线播放| 久久男女视频| 国产精品视频入口| 久久久久久婷| 自拍亚洲欧美老师丝袜| 粉嫩av一区二区三区在线播放| 亚洲国产精品无码观看久久| 国产欧美一区二区三区在线老狼| 91佛爷在线| 在线观看视频一区二区| 精品精品导航| 中文字幕一精品亚洲无线一区| 色悠久久久久综合先锋影音下载 | 欧洲成人av| 日韩一级视频免费观看在线| 色资源二区在线视频| 欧美精品videossex88| 欧美综合久久| 欧美日韩亚洲一区二区三区四区| 国产精品一区在线| 男人免费av| 日韩情涩欧美日韩视频| 欧美日韩黄网站| 亚洲自拍欧美色图| 国产乱国产乱300精品| www 四虎| 欧美精品一区男女天堂| 猫咪成人在线观看| 农村寡妇一区二区三区| 国产91精品免费| 亚洲国产精品va在线看黑人| 国内精品久久影院| 天堂成人娱乐在线视频免费播放网站 | 你懂的在线观看| 色天使综合视频| 成人自拍爱视频| 国产日韩综合av| 欧美在线日韩精品| 黑人巨大精品欧美一区免费视频| 欧美日韩国产免费观看视频| 成人黄色免费看| 精品美女国产在线| 国产精品久久久久久久久免费丝袜| 亚洲精品三区| 亚洲精品乱码视频| 亚洲伊人久久大香线蕉av| 午夜亚洲福利| 亚洲视频一起| 免费羞羞视频网站| 国产成人女人毛片视频在线| 欧美大片在线观看一区| 93久久精品日日躁夜夜躁欧美 | 97精品资源在线观看| 欧美不卡在线播放| 日本精品一区二区三区在线播放视频| 日韩午夜电影| 一本色道久久加勒比88综合| 91福利视频网| 亚洲天天做日日做天天谢日日欢 | 久久理论片午夜琪琪电影网| 亚洲国产综合在线| 人体久久天天| av免费网站在线| 深夜视频在线免费| 久久久久人妻精品一区三寸| 激情视频在线观看一区二区三区| 欧洲亚洲免费视频| 欧美日韩激情视频8区| 999在线精品| 男女污污视频在线观看| 国产一区二区免费在线观看| 韩国精品久久久999| 成人综合婷婷国产精品久久| 欧美日韩夜夜| h网站视频在线观看| 久操视频在线免费播放| 老司机激情视频| 国产精品一二三在线| 久久精品中文字幕电影| 精品国产露脸精彩对白| 久久裸体视频| 天使萌一区二区三区免费观看| 成人福利片在线| 国产夫妻在线视频| 亚洲欧美国产日韩天堂区| 亚洲调教视频在线观看| 五月婷婷开心综合| 久久不射电影网| 成人黄色综合网站| 在线一区视频观看| 亚洲自拍偷拍二区| 日韩视频不卡中文| 亚洲大胆在线| yiren22综合网成人| 91色视频在线导航| 日本韩国欧美一区二区三区| 91精品观看| 国产一区电影| 精品国产一区二区三区免费| 欧美色老头old∨ideo| 99视频一区| 特级毛片在线| 精品国产三级a∨在线| 亚洲国产欧美日韩精品| 蜜芽一区二区三区| 一本大道色婷婷在线| 特级西西444| 日韩中文字幕在线播放| 成人深夜福利app| 亚洲青青久久| 自拍偷拍21p| 亚洲成人黄色网| 精品夜夜嗨av一区二区三区| 成人视屏在线观看| www黄色日本| 欧美国产在线电影| 一区二区三区免费网站| 亚洲激情久久| 国产精品剧情| 青青草综合在线| 久久成人一区二区| 亚洲资源中文字幕| 黄色在线一区| 国产盗摄一区二区| 日韩一级免费看| 欧美放荡办公室videos4k| 亚洲欧美日韩精品久久久久| 久久久久久美女精品 | 欧美一二三区| 亚洲精品久久久一区二区三区| 国产精品18久久久久久vr| 亚洲精品一区二区三区在线| 色资源网在线观看| 亚洲欧美国产不卡| 欧美黄色www| 在线免费观看成人短视频| 麻豆精品在线看| 亚洲性视频在线| 男人的天堂在线视频| 一个色的综合| 欧美一级淫片aaaaaaa视频| 欧美体内she精视频| 国产一区二区三区久久久 | 国产精品精品视频| 日韩午夜三级在线| 国产日产精品1区| 久久在线视频| 日韩成人伦理| 国产偷人视频免费| 国产精品免费小视频| 日韩一区二区三区视频在线观看| 成人激情动漫在线观看| 午夜欧美在线| 成人黄色图片网站| 青青操视频在线| 美国av在线播放| 欧美综合在线观看| 亚洲成人久久一区| 亚洲第一av色| 国产美女精品一区二区三区| 久久一区91| 国产精品免费精品自在线观看| 国产一二三区在线视频| 欧美日韩一区二区在线免费观看 | 男人的天堂久久精品| 天海翼亚洲一区二区三区| 成人观看网址| 一级在线观看| 老头吃奶性行交视频| 欧美一区亚洲二区| 国产精品亚洲аv天堂网| 中文字幕在线看视频国产欧美| 欧美丝袜丝交足nylons| 国产目拍亚洲精品99久久精品| 久久福利一区| 香蕉国产精品| 欧洲亚洲成人| 素人一区二区三区| 一区二区三区视频网站| 69中国xxxxxxxxx69| 无码毛片aaa在线| 国产日韩中文字幕在线| 日韩精品免费在线播放| 亚洲一区二区三区美女| www亚洲一区| 免费人成精品欧美精品| 最近国产精品视频| 韩国一区二区三区视频| 在线看三级电影| 在线观看免费视频高清游戏推荐| 一区精品视频| 亚洲尤物视频网| 欧美高清性猛交| 国产午夜精品久久久 | 蜜臀av一区二区三区| 国内精品久久久久久久影视简单| 欧美日韩电影免费看| 男人天堂资源在线| 成人免费看黄网址|