不卡av在线播放_欧美成人AU在线看_亚洲一区二区 视频_五月天亚洲无码伊人

Article / 文章中心

阿里巴巴高級技術(shù)專家姜文鋒:云服務(wù)器可觀測能力的探索與實踐

發(fā)布時間:2022-01-06 點擊數(shù):850
簡介: 本篇內(nèi)容分享了云服務(wù)器可觀測能力的探索與實踐。

封面-姜文鋒.jpg

圖:阿里巴巴高級技術(shù)專家姜文鋒


2021年10月22日,在云棲大會的《云上運維最佳實踐》分論壇,阿里巴巴高級技術(shù)專家姜文鋒發(fā)表了主題為“云服務(wù)器可觀測能力的探索與實踐”的演講。本篇內(nèi)容根據(jù)他的演講整理成的文章,通過以下三個部分來介紹云服務(wù)器可觀測能力的探索與實踐。

  1. 可觀測的價值
  2. 云服務(wù)器可觀測解決方案
  3. 總結(jié)

一、可觀測的價值

image001.png
什么是可觀測能力,它為什么對云服務(wù)器這么重要?通俗地講,可觀測能力就是了解云服務(wù)器內(nèi)部運行情況的能力。它對于云服務(wù)器的重要性,在我看來主要有三點:
提升確定性,簡化運維,提升信息透明性


無論是物理機還是云服務(wù)器都做不到百分之百可靠。云服務(wù)器具備完善的可觀測能力,可以非常全面的掃描云服務(wù)器的各種運行指標(biāo)和內(nèi)部狀態(tài),得到一個豐富的信息全圖,來提升信息的透明性,避免黑盒。在異常的場景,通過這個掃描的結(jié)果,也可以快速定位問題的原因,簡化運維。


二、云服務(wù)器可觀測解決方案

image003.png
云服務(wù)器可觀測整體解決方案,先來看看阿里云是怎么做的。


一切皆數(shù)據(jù)。阿里云依托強大的數(shù)據(jù)中臺,每天從將近1億的采集單元采集近100TB的數(shù)據(jù),這些數(shù)據(jù)體現(xiàn)了云服務(wù)器內(nèi)部各種運行狀態(tài)、指標(biāo)、參數(shù)。這些數(shù)據(jù)采集上來后經(jīng)過數(shù)據(jù)清洗去除噪音,關(guān)聯(lián)分析與定義的各種指標(biāo)進(jìn)行關(guān)聯(lián)匹配,最后經(jīng)過特征計算得出云服務(wù)器運行的真實畫像。然后再把處理過的數(shù)據(jù)輸出到兩類產(chǎn)品。第一類產(chǎn)品就是我們的內(nèi)部運維保障平臺,它是阿里云主動維護(hù)云平臺穩(wěn)定性的一個主要的解決方案。


另一類,它會輸入到用戶端的可觀測產(chǎn)品,即為了滿足3個目標(biāo):確定性運行、簡化運維和信息透明而提供的運維產(chǎn)品,包括4個產(chǎn)品:
云監(jiān)控、ECS系統(tǒng)事件、健康診斷、健康狀態(tài)。下面我們分別介紹這4個產(chǎn)品。


1、云監(jiān)控

image005.png

提到監(jiān)控系統(tǒng),相信大家都不會感到陌生,云監(jiān)控就是阿里云針對云上的資源和互聯(lián)網(wǎng)應(yīng)用的一個監(jiān)控、報警服務(wù)。云監(jiān)控相對于傳統(tǒng)的監(jiān)控服務(wù)。它有什么樣的優(yōu)勢?我會重點說前面兩點:


  1. 天然集成。不需要購買和開通,只需要有阿里云賬號就可以使用,即查即用。
  2. 報警靈活。有靈活的報警規(guī)則設(shè)置,還有靈活豐富的報警推送渠道。報警推送渠道主要分為兩類:一是消息觸達(dá)類的渠道,比如我們常見的釘釘、短信。更重要的,它可以有一個渠道是自動處理渠道,這是為接下來自動化運維打下一個基礎(chǔ)。自動處理渠道包括函數(shù)計算、運維編排、消息服務(wù)、日志服務(wù)。


關(guān)于云監(jiān)控,下面再重點分享一下它強大的主機監(jiān)控項。云監(jiān)控除了支持常見的CPU、內(nèi)存、LOAD、磁盤、網(wǎng)卡之外,它還能對進(jìn)程做監(jiān)控。通過進(jìn)程監(jiān)控,你可以知道你的進(jìn)程是不是存活,以及當(dāng)前進(jìn)程資源消耗的情況。所以云監(jiān)控是最基本、最常用的手段。


2、ECS系統(tǒng)事件

image007.png

阿里云會主動上報影響ECS實例運行的底層運維事件或者非預(yù)期的維修事件,并且給用戶提供維修建議。ECS系統(tǒng)事件怎樣改善和提高云服務(wù)器可觀測能力呢?

  1. 主動上報底層問題,提升服務(wù)器運行的確定性。
  2. 能簡化運維。系統(tǒng)事件上報上來之后,我們訂閱這個事件,實現(xiàn)事件自動化處理,提升事件處理效率、簡化運維。
  3. Event-Driven 能夠帶來系統(tǒng)效率的提升。大家都知道,異步場景,PUSH模式PULL模式有明顯的效率優(yōu)勢。舉個非常熟悉的例子:創(chuàng)建ECS實例,一般我們會先調(diào)用RunInstances API,得到一個實例ID,然后不斷地調(diào)用DescribeInstances接口查詢實例狀態(tài)直到變成Running,客戶測編程復(fù)雜不說,效率還低,改成事件驅(qū)動模式則只需訂閱實例狀態(tài)變化事件,等變成Running自動觸發(fā)后續(xù)的業(yè)務(wù)邏輯,簡單高效。上圖的右側(cè)是ECS事件服務(wù)流程圖,事件推送會直接復(fù)用云監(jiān)控異常推送渠道,為我們接下來實現(xiàn)自動化處理事件打下基礎(chǔ)。

image009.png

我們對ECS系統(tǒng)容量有一個基本了解之后,重點看一下它怎么實現(xiàn)事件的自動化處理?上圖左側(cè)是目前事件分類,重點看一下右邊,這里推薦了兩種實現(xiàn)事件自動化處理的方案:

  • 第一是把系統(tǒng)事件通過云監(jiān)控推送到函數(shù)計算服務(wù),特定的事件觸發(fā)特定的函數(shù)計算能力,從而實現(xiàn)事件的自動化處理。
  • 第二是可以把事件推送給運維編排服務(wù),特定的事件觸發(fā)我們預(yù)先設(shè)置好的特定運維編排模板,從而實現(xiàn)事件的自動化處理,這里要提醒函數(shù)計算是付費的服務(wù),但運維編排是免費的。


ECS系統(tǒng)事件能夠主動上報影響實例運行的底層事件,是云服務(wù)器可觀測能力的重要一環(huán),能夠較好解決確定性運行的問題。但這還不夠。因為實際情況是云平臺出現(xiàn)嚴(yán)重問題的概率還是很小的,總的來看,云平臺是很穩(wěn)定的。大部分運維問題都是跟用戶的操作和使用有關(guān),也就是說問題往往發(fā)生在客戶OS和客戶應(yīng)用內(nèi)部。而系統(tǒng)事件對客戶OS內(nèi)的異常覆蓋是比較有限的。所以為了進(jìn)一步完善云服務(wù)器的觀測能力,我們又推出了診斷服務(wù)。診斷服務(wù)具體分為三個產(chǎn)品:實例健康診斷、實例健康狀態(tài)和網(wǎng)絡(luò)連通診斷。

image011.png

3、健康診斷

image013.png

先看一下實例健康診斷,即針對客戶OS內(nèi)的問題,以及云服務(wù)器所依賴的云平臺軟硬件問題做全面檢測的服務(wù)。我們的診斷項目前分為兩大類:客戶OS診斷項和云平臺診斷項。


今天重點會和大家說一下客戶OS診斷項,基于健康診斷,目前能夠檢測到客戶OS內(nèi)的哪些問題?

  1. 首先基于健康診斷,能夠發(fā)現(xiàn)常見的CPU打滿、內(nèi)存不足、磁盤空間不足,占用資源最高的top5進(jìn)程等資源使用率的問題。
  2. 其次通過健康診斷還能發(fā)現(xiàn)常見的網(wǎng)絡(luò)設(shè)置、磁盤設(shè)計、文件系統(tǒng)設(shè)置的問題。以網(wǎng)絡(luò)設(shè)置為例,網(wǎng)卡是否up,網(wǎng)絡(luò)服務(wù)是否在運行,網(wǎng)卡多隊列是否開啟從而保障網(wǎng)絡(luò)性能,網(wǎng)卡ip配置方式是否正確(比如我們經(jīng)常遇到用戶的實例理應(yīng)使用dhcp方式動態(tài)分配ip,卻因為使用了自定義鏡像配置了靜態(tài)ip導(dǎo)致網(wǎng)絡(luò)不可訪問的問題)等常見的網(wǎng)絡(luò)問題。
  3. 通過健康診斷,我們還能看到影響實例正常運行的服務(wù)是否正常進(jìn)行,如常見端口是否在監(jiān)聽(比如linux 22端口,windows 3389端口),動態(tài)分配ip的dhcp進(jìn)程是否存在,負(fù)責(zé)系統(tǒng)初始化的systemd是否正常運行等。
  4. 通過健康診斷還能看客戶OS內(nèi)有沒有設(shè)置自定義防火墻,自定義路由表。這往往會造成網(wǎng)絡(luò)連通方面的問題。云服務(wù)器,我們建議使用安全組作為唯一的防火墻解決方案,因為安全組是處于虛擬網(wǎng)絡(luò)層面,用戶無法篡改的,所以它既簡單又安全。

以上這些能力是截止到目前我們具備的診斷能力,但這遠(yuǎn)不是終點。還有很多新的診斷能力在研發(fā)中。我還想分享下我們做診斷的一些體會,坦白地說把診斷做好很難,因為客戶的問題千差萬別,很難通過事先的設(shè)計把診斷能力做強做準(zhǔn)。我們的經(jīng)驗是要問題驅(qū)動,即發(fā)現(xiàn)問題解決問題快速迭代不斷豐富診斷能力。


接下來我們看一下健康診斷典型的用法。這里我列了兩個典型的場景:

image015.png
首先,
做異常實例的原因檢測。比如上圖能夠看到服務(wù)器load突然飆高,你當(dāng)然可以通過更細(xì)粒度的監(jiān)控指標(biāo)來定位原因,但還有一個更方便的做法,即運行一下實例的健康診斷。以這個case為例,我們會清晰告訴你占用CPU資源最高的進(jìn)程是誰?它的ID是什么?接下來能夠幫助你快速定位問題??梢钥匆幌逻@個進(jìn)程是不是業(yè)務(wù)自身的問題造成的?是正常的業(yè)務(wù)流量增長還是代碼的實現(xiàn)有問題?是不是有最近的發(fā)布等。


第二,建議基于健康診斷和運維編排來實現(xiàn)對實例
周期性的健康巡檢。我們的運維編排服務(wù)是支持定期周期執(zhí)行的能力,你只要針對需要巡檢的實例,定期周期的調(diào)用實例健康診斷接口,就可以產(chǎn)生診斷報告。然后根據(jù)診斷報告的提示來做人工或者自動的處理。如果說實例規(guī)模比較大,可以針對提示非常嚴(yán)重的問題,實現(xiàn)自動化的異常響應(yīng),自動化運維。


4、健康狀態(tài)

image017.png

接下來看一下實例的健康狀態(tài)。健康狀態(tài)和健康診斷的原理是一致的,但是健康狀態(tài)有三個明顯的區(qū)別。


一是診斷項的范圍。實例的健康狀態(tài)診斷項更加精練,我們選擇的是保證實例健康運行的、基本的計算、網(wǎng)絡(luò)、存儲的診斷項。從現(xiàn)在開始ECS是有兩種狀態(tài),一種是管控狀態(tài),還有一種就是運行時狀態(tài),也就是健康狀態(tài)。而實例的健康診斷呈現(xiàn)給用戶的是一份診斷報告,除了有問題,還會告知你這個問題的原因是什么?所以說通過這三項對比,我們發(fā)現(xiàn)實例健康狀態(tài)其實是有自己特殊的適用場景。上圖是我們精選的實例健康狀態(tài)支持的診斷項,大家可以簡單了解一下。

image019.png

實例健康狀態(tài)的典型用法。如果你的實例很少,可以通過控制臺及時感知到當(dāng)前實例運行狀態(tài)是什么?是不是健康的?

  • 如果不是健康,一定是底層或者用戶設(shè)置出現(xiàn)了什么問題,可以采取相應(yīng)的運維手段,或者尋求技術(shù)支持。
  • 如果集群規(guī)模比較大,而且對基礎(chǔ)設(shè)施的可靠性要求非常高。我們建議采用右圖,通過彈性伸縮的自動汰換異常實例功能,保障整個集群的基礎(chǔ)設(shè)施高可用。具體就是通過彈性伸縮的控制臺,來開啟實例健康狀態(tài)檢測功能。接下來彈性伸縮服務(wù)就會代替客戶周期檢查實例健康狀態(tài)。發(fā)現(xiàn)異常則立刻用相同規(guī)格的健康實例汰換異常實例,確保整個基礎(chǔ)設(shè)施層面保持高可用。

image021.png

最后,介紹一個我們正在處于公測的產(chǎn)品,網(wǎng)絡(luò)連通診斷。大家都知道網(wǎng)絡(luò)不通問題的原因可以非常復(fù)雜,我們的客戶經(jīng)常受網(wǎng)絡(luò)不通問題的困擾,而根據(jù)長期幫用戶排查問題的經(jīng)驗,發(fā)現(xiàn)三類問題高頻出現(xiàn):

  1. 目標(biāo)進(jìn)程監(jiān)聽不正確;
  2. 防火墻設(shè)置的問題。包括客戶OS內(nèi)自定義的防火墻和安全組;
  3. 實例自身的網(wǎng)絡(luò)設(shè)置問題。


所以針對高頻這三種問題,我們研發(fā)了網(wǎng)絡(luò)的端到端診斷。它能夠比較準(zhǔn)確地發(fā)現(xiàn)通信的源和目的節(jié)點的:

  • 安全組以及客戶OS防火墻設(shè)置問題
  • 子網(wǎng)ACL設(shè)置問題
  • 實例自身網(wǎng)絡(luò)狀態(tài)/設(shè)置問題
  • 端口是否在正常監(jiān)聽


三、總結(jié)

1、幾個產(chǎn)品對比

image023.png

好的,以上我們針對云服務(wù)器可觀測能力的3個目標(biāo):確定性運行、簡化運維和信息透明向大家介紹了5個產(chǎn)品:云監(jiān)控,ECS系統(tǒng)事件,實例健康診斷、實例健康狀態(tài)和網(wǎng)絡(luò)端到端診斷。最后,做一個總結(jié)和回顧。 首先看下幾個產(chǎn)品的特點對比:


  • 云監(jiān)控:特別適合客戶OS和客戶進(jìn)程的指標(biāo)監(jiān)控和報警
  • 系統(tǒng)事件:覆蓋的問題域比較廣,但主要還是上報因為云平臺系統(tǒng)維護(hù)或系統(tǒng)錯誤導(dǎo)致影響實例運行的問題??蛻鬙S和客戶進(jìn)程的問題涉及的比較少。
  • 健康診斷:覆蓋的問題域很廣,診斷項比事件更豐富,尤其是客戶OS相關(guān)的診斷項很豐富,而且仍然在不斷豐富。
  • 健康狀態(tài):原理與健康診斷類似,但診斷項更精煉,適合特定的場景。


2、不同場景下的產(chǎn)品選擇

image025.png

最后從場景角度,看一下不同的場景適合使用什么樣的產(chǎn)品和工具,來解決我們的問題。

  • 如果我們想做業(yè)務(wù)或者主機監(jiān)控/度量和報警,優(yōu)先使用云監(jiān)控。
  • 如果我們的實例出現(xiàn)了異常,我們想周期性對實例做一個健康的巡檢,我們建議使用ECS系統(tǒng)事件和ECS健康診斷。
  • 如果你的場景是容器或二次虛擬化的場景,對基礎(chǔ)設(shè)施的高可用要求非常高。那么我們建議彈性伸縮+實例健康狀態(tài)的異常實例自動探算能力,保證整個集群的高可用。
  • 如果遇到網(wǎng)絡(luò)不通問題,優(yōu)先使用網(wǎng)絡(luò)端到端診斷??匆幌鲁R姷陌踩M,客戶安全防火墻,進(jìn)程監(jiān)聽以及自身實例網(wǎng)絡(luò)設(shè)置有沒有問題。


點擊大會官網(wǎng),觀看姜文鋒的精彩演講視頻。