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

穩(wěn)定性與高可用保障的工作思路

開發(fā) 架構(gòu)
憑借經(jīng)驗和感受我們知道,提高系統(tǒng)的這兩項指標(biāo),系統(tǒng)會更加健康,產(chǎn)品也會有更好的用戶體驗。但是如果要給穩(wěn)定性和高可用性下一個定義該如何表述?

一 、深入理解穩(wěn)定性與高可用性

穩(wěn)定性與高可用性是老生常談的兩個詞。憑借經(jīng)驗和感受我們知道,提高系統(tǒng)的這兩項指標(biāo),系統(tǒng)會更加健康,產(chǎn)品也會有更好的用戶體驗。但是如果要給穩(wěn)定性和高可用性下一個定義該如何表述?穩(wěn)定性和高可用性這二者又有何區(qū)別和聯(lián)系?我認(rèn)為首先要理解好這兩個問題,才能夠設(shè)定清晰的目標(biāo),系統(tǒng)地制定完整可行的方案。 在維基百科上搜索穩(wěn)定性,定義如下:

穩(wěn)定性是數(shù)學(xué)或工程上的用語,判別一系統(tǒng)在有界的輸入是否也產(chǎn)生有界的輸出。若是,稱系統(tǒng)為穩(wěn)定;若否,則稱系統(tǒng)為不穩(wěn)定。

再看看高可用性的:

高可用性(英語:high availability,縮寫為 HA),IT術(shù)語,指系統(tǒng)無中斷地執(zhí)行其功能的能力,代表系統(tǒng)的可用性程度。是進(jìn)行系統(tǒng)設(shè)計時的準(zhǔn)則之一。高可用性系統(tǒng)與構(gòu)成該系統(tǒng)的各個組件相比可以更長時間運行。

首先從穩(wěn)定性的定義中提煉出關(guān)鍵的詞語 -- 系統(tǒng)、輸入、輸出。在螞蟻當(dāng)下的技術(shù)架構(gòu)中,可以把一個應(yīng)用當(dāng)做系統(tǒng),應(yīng)用之間的服務(wù)請求為輸入,服務(wù)響應(yīng)為輸出,當(dāng)服務(wù)響應(yīng)符合預(yù)期時認(rèn)為應(yīng)用系統(tǒng)是穩(wěn)定的。當(dāng)他們相互組合形成一個更大的系統(tǒng),作為業(yè)務(wù)產(chǎn)品對用戶表達(dá)時,用戶的請求作為輸入,產(chǎn)品的表達(dá)作為輸出,當(dāng)產(chǎn)品功能正常運行時可以認(rèn)為產(chǎn)品系統(tǒng)是穩(wěn)定的。綜上,關(guān)于穩(wěn)定性的定義我們可以總結(jié)歸納為 -- 當(dāng)系統(tǒng)接收輸入后,能夠產(chǎn)生正確的、符合預(yù)期的輸出,稱系統(tǒng)為穩(wěn)定;否則,稱系統(tǒng)為不穩(wěn)定。 再回到命題上,為什么叫穩(wěn)定性保障?能不能換一個說法叫提高穩(wěn)定性?通過上文的定義我們可以總結(jié)出,穩(wěn)定性描述的是系統(tǒng)的行為。一個系統(tǒng)是否穩(wěn)定,就像我們評價一個人是否健康一樣,很難用陳述的方式進(jìn)行完整的描述,去量化。但是卻可以通過否定的方式進(jìn)行快速地判斷。人們通過良好的飲食和生活習(xí)慣來減少疾病的發(fā)生,保持身體的健康。保障系統(tǒng)的穩(wěn)定性或者說提高系統(tǒng)的穩(wěn)定性也是如此,我們需要通過各種方法來避免那些不穩(wěn)定的情況發(fā)生。所謂的更穩(wěn)定,客觀上并不存在,是主觀上希望避免或者減少不穩(wěn)定的情況發(fā)生。 與穩(wěn)定性不同,可用性是一個可以量化的指標(biāo),計算的公式在維基百科中是這樣描述的:

根據(jù)系統(tǒng)損害、無法使用的時間,以及由無法運作恢復(fù)到可運作狀況的時間,與系統(tǒng)總運作時間的比較。

我們經(jīng)常聽到的3個9(99.9%),4個9(99.99%)度量的就是系統(tǒng)的可用性,高可用就是要保證系統(tǒng)的這個指標(biāo)維持在一個高水平。在公式的定義描述中,將系統(tǒng)的運行時間分成了三個部分

  • 系統(tǒng)正常運作的時間,即系統(tǒng)處于穩(wěn)定狀態(tài)的時間。
  • 系統(tǒng)損害、無法使用的時間,即系統(tǒng)處于非穩(wěn)定狀態(tài)的時間。
  • 系統(tǒng)由無法運作恢復(fù)到可運作狀況的時間,即系統(tǒng)由非穩(wěn)定狀態(tài)恢復(fù)到穩(wěn)定狀態(tài)的時間。

系統(tǒng)的可用性和系統(tǒng)的穩(wěn)定性是成正相關(guān)的。不過在現(xiàn)實生活中,系統(tǒng)是不可能永遠(yuǎn)處于穩(wěn)定狀態(tài)。逆向思考,將上述的公式進(jìn)行轉(zhuǎn)換,更有利于我們進(jìn)行分析:

至此,本次命題的目標(biāo),KPI就清晰了。保障系統(tǒng)的穩(wěn)定性和高可用的目標(biāo)是使系統(tǒng)處于穩(wěn)定的工作狀態(tài),對用戶不產(chǎn)生負(fù)面的影響,避免線上問題和P級故障的發(fā)生。核心kpi是系統(tǒng)的可用性。為了提高系統(tǒng)的可用性,我們應(yīng)該首先保障系統(tǒng)的穩(wěn)定性,減少非穩(wěn)定狀況的發(fā)生,其次當(dāng)系統(tǒng)由于各個組成部分發(fā)生故障,出現(xiàn)非穩(wěn)定狀態(tài)時,能夠快速發(fā)現(xiàn)并將其恢復(fù)到穩(wěn)定可用的狀態(tài)。

二、 穩(wěn)定性與高可用保障的核心思路

通過上文的推演,針對提高系統(tǒng)可用性這一目標(biāo),我們能夠得到兩個基本的解題思路。按圖索驥,為了解決問題,首要的任務(wù)是發(fā)現(xiàn)和定義問題。因此為了提高系統(tǒng)的穩(wěn)定性,我們先列舉應(yīng)用系統(tǒng)中常見的非穩(wěn)定的情況,再一一對癥下藥:

  • 功能:應(yīng)用程序執(zhí)行的功能出現(xiàn)錯誤,不符合預(yù)期。
  • 容量:當(dāng)系統(tǒng)接收的請求數(shù)量增加時,應(yīng)用程序無法正常處理,出現(xiàn)異?;虺瑫r,導(dǎo)致服務(wù)失效。
  • 安全:當(dāng)系統(tǒng)接收到的沒有授權(quán)的或者惡意攻擊的請求時,應(yīng)用程序出現(xiàn)異常甚至服務(wù)失效。
  • 容錯:對于用戶錯誤的使用方式, 應(yīng)用程序無法合適地處理。

當(dāng)上述情況發(fā)生時,就意味著系統(tǒng)處于不穩(wěn)定的狀態(tài),需要我們能夠及時發(fā)現(xiàn)并進(jìn)行處理。而造成這些問題的原因,在軟件系統(tǒng)中通常可以歸結(jié)為以下三類:

  • 人為故障:在開發(fā)軟件的各個環(huán)節(jié)中思考不充分,或者執(zhí)行時粗心導(dǎo)致的各類問題。
  • 硬件故障:網(wǎng)絡(luò)不通,硬盤空間不夠,內(nèi)存崩潰等。
  • 軟件故障:線程池異常,JVM異常,中間件或其他依賴的應(yīng)用服務(wù)異常。

對于一個動態(tài)演進(jìn)的系統(tǒng)而言,我們沒有辦法將故障發(fā)生的概率降為0,只能通過在軟件生產(chǎn)的過程中,建立流程規(guī)范和機制來盡量減少其發(fā)生。其次對于一個運行的系統(tǒng),我們需要建立并完善監(jiān)控和預(yù)警機制來及時發(fā)現(xiàn)系統(tǒng)中的故障,并通過執(zhí)行預(yù)案使系統(tǒng)快速恢復(fù)?;谏鲜鼋Y(jié)論,為了提高系統(tǒng)的可用性,需要從以下三個方面入手開展工作:故障預(yù)防,故障發(fā)現(xiàn)和故障恢復(fù)。

人犯錯的幾率是遠(yuǎn)遠(yuǎn)大于機器的,因此故障預(yù)防最重要的是建立一套機制,在團(tuán)隊內(nèi)達(dá)成共識并持續(xù)按照此流程開展研發(fā)工作,從而減少個人因素(思考、執(zhí)行、狀態(tài)等方面)對系統(tǒng)穩(wěn)定性的影響。而故障發(fā)現(xiàn)以及故障恢復(fù),則是需要通過系統(tǒng)監(jiān)控和應(yīng)急方案來快速發(fā)現(xiàn)系統(tǒng)異常并恢復(fù),從而盡量減輕故障的影響面。下面以螞蟻日常的產(chǎn)品研發(fā)流程為例,從功能、容量、安全、容錯這4個核心要素出發(fā),給出一套方案僅供參考。

1. 研發(fā)規(guī)范

(1)設(shè)計階段

    1)團(tuán)隊細(xì)分文檔模板

    2)高可用設(shè)計規(guī)范

 (2)編碼階段

     1)代碼規(guī)范

  • 通用代碼規(guī)范
  • 工程結(jié)構(gòu)規(guī)范

      2)單測覆蓋率

  • 單測通過率
  • 代碼覆蓋率

       3)日志規(guī)范

       4)安全漏洞修復(fù)規(guī)范

 (3)發(fā)布階段

 (4)變更規(guī)范:三板斧

2.容量保障

 (1)容量評估

       1)機器容量

        2)DB容量

         3)緩存容量

  (2)壓測摸底

  (3)限流方案

  (4)降級方案

3. 監(jiān)控告警

  (1)日志規(guī)范

  (2)監(jiān)控梳理

        1)應(yīng)用基礎(chǔ)監(jiān)控

         2)網(wǎng)關(guān)監(jiān)控

         3)服務(wù)監(jiān)控

         4)業(yè)務(wù)監(jiān)控

         5)限流監(jiān)控

 (3)告警規(guī)范

 (4)數(shù)據(jù)核對

4. 應(yīng)急快反

 (1)日常預(yù)案

        1)硬件異常預(yù)案

        2)中間件異常預(yù)案

        3)業(yè)務(wù)異常預(yù)案

 (2)大促預(yù)案

 (3)預(yù)案執(zhí)行規(guī)范

三、總結(jié)

如何做好穩(wěn)定性和高可用保障是一個很龐大的命題,其中的任一小部分內(nèi)容在內(nèi)網(wǎng)都可以搜到大量的文章。寫這篇文章的目的是總結(jié)一下自己對穩(wěn)定性和高可用保障工作的理解,給大家分享一套系統(tǒng)的框架思路。希望大家在讀后能夠更全面的了解安全生產(chǎn),不陷于細(xì)節(jié)。

責(zé)任編輯:武曉燕 來源: 阿里技術(shù)
相關(guān)推薦

2022-10-20 12:04:08

2022-06-14 14:57:47

穩(wěn)定性高可用流程

2016-12-21 09:33:40

2021-01-27 11:48:34

高可用系統(tǒng)Review

2021-03-10 11:18:21

高可用系統(tǒng)限流

2022-05-05 11:04:35

技術(shù)高可用系統(tǒng)

2023-06-30 08:43:36

2022-12-15 09:56:27

2024-12-12 09:18:21

2023-05-30 07:27:45

高可用架構(gòu)流量

2014-05-19 11:58:21

世紀(jì)互聯(lián)微軟云服務(wù)

2023-04-26 18:36:13

2023-08-28 06:58:40

2011-12-21 09:46:46

程序員

2023-08-28 10:40:12

Java分布式

2023-08-29 11:38:27

Java內(nèi)存

2023-02-27 18:31:20

架構(gòu)服務(wù)監(jiān)控

2024-07-08 12:37:29

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美精品在线观看 | 一a一片一级一片啪啪 | 精精精精xxxx免费视频 | 男女羞羞免费网站 | 精品一区国产 | 精品久久久久一区二区国产 | 色综合激情 | 九九在线| 伊人二区 | 久久精品中文字幕 | 超碰在线播 | 久久亚洲一区二区三区四区 | 久久久久久一区 | 综合成人在线 | 亚洲一区二区三区免费在线 | 韩国久久精品 | 在线91 | 中文字幕 在线观看 | 五月天天色 | 国产精品日韩在线观看一区二区 | 日日干日日操 | 欧美一级艳情片免费观看 | 精品国产精品 | 美女视频三区 | 久久99精品久久久久久国产越南 | 欧美黄在线观看 | 日韩三级在线 | 国产亚洲高清视频 | 国产一区999 | 一区二区欧美在线 | 国产精品久久国产精品久久 | 国产高清在线精品一区二区三区 | 亚洲视频在线一区 | 一区二区三区四区在线视频 | 精品日韩一区二区三区av动图 | 国产清纯白嫩初高生视频在线观看 | 91看片在线观看 | 成人精品毛片国产亚洲av十九禁 | 欧美日韩精品一区二区天天拍 | 欧美一区二区三区视频在线 | 91av视频在线观看 |