專訪阿里柯旻:云計算運維與傳統(tǒng)運維的探討
原創(chuàng)【51CTO專稿】在云計算各種概念風起云涌的今天,信息化管理觀念的不斷成熟發(fā)展,各種趨勢分析和熱點論壇都在討論云計算帶給我們的各種好處。IT基礎(chǔ)設(shè)施高度集中使得傳統(tǒng)的IT運維變得越來越被動,是不是有那么一天,我們的企業(yè)中的IT服務(wù)全部由云服務(wù)提供,就不再需要IT運維人員呢?傳統(tǒng)運維與云計算運維的差異性在哪里?本文中,來自阿里集團技術(shù)保障部云計算運維高級技術(shù)專家柯旻(花名:大舞)就這些問題表明了自己的觀點和看法。跟隨小編一起來看看吧。
(阿里巴巴云計算運維-高級技術(shù)專家 柯旻)
【嘉賓簡介】柯旻:花名大舞,2007年加入阿里,前期負責sa方面的一些工作,后期云計算運維部門,主要負責整個阿里Hadoop集群(即云梯)的運維工作,以及離線的HBase集群方面的工作。
以下是采訪實錄:
云計算運維與傳統(tǒng)運維的差異性
51CTO:阿里巴巴云計算運維是在什么樣的背景下產(chǎn)生的?
柯旻:由于阿里巴巴業(yè)務(wù)的發(fā)展需要,數(shù)據(jù)量飛速膨脹。云計算、分布式計算等(包括我們自主開發(fā)的飛天系統(tǒng)),都是在這樣的背景下產(chǎn)生的。
51CTO:云計算運維與傳統(tǒng)運維的區(qū)別在哪里?
柯旻:其實最主要區(qū)別是量的膨脹。
傳統(tǒng)的運維可能只有幾十,或者上百的機器,這些機器上面有十個、二十個應(yīng)用,但是在云計算運維這塊,可能面臨的情況是三千臺、五千臺機器這么一個量級的,是一個極速膨脹的狀態(tài)。再者,關(guān)注點可能會有一些偏差,因為傳統(tǒng)運維可能涉及的業(yè)務(wù)線會很多,所以對于某些技術(shù)點的深挖可能精力不夠。
云計算運維主要是對整體的把控,包括機房網(wǎng)絡(luò)、帶寬之類的,一些服務(wù)器的性能優(yōu)化,服務(wù)器的價格等,比方說像飛天或者Hadoop這上面的應(yīng)用,這些方面都需要去關(guān)注,底層的東西也需要了解得更多。
從大的方向來講,云計算運維和傳統(tǒng)運維都是做保證服務(wù)器穩(wěn)定運行之類的這些事情,沒有什么本質(zhì)的偏差,因為這個是運維人員的職責,不過在具體的執(zhí)行層面,可能偏向的會不一樣。
51CTO:云計算的核心是虛擬化技術(shù),而在云計算時代,系統(tǒng)規(guī)模更加龐大,結(jié)構(gòu)更加復(fù)雜,系統(tǒng)運維自動化是必然趨勢,阿里巴巴有沒有虛擬化平臺的運維自動化案例呢?
柯旻:我們內(nèi)部會有一些系統(tǒng)做相對來說自動化的一些工作,但是這個東西也是云計算運維或者大數(shù)據(jù)運維這方面的,跟傳統(tǒng)運維有一些差別,可能傳統(tǒng)運維一臺兩臺機器去運行的時候,你需要快速的響應(yīng)去處理,對線上的影響比較大,而對于云計算運維來說,可能三臺、五臺或者十臺機器掛掉,也不會產(chǎn)生很大的一些影響,或者說某種意義上來講,對于這種單機的處理上面,我們可能比傳統(tǒng)的運營商運維人員面臨的條件會更好,我們更容易去處理一些故障。我們目標是希望一臺普通的機器,它在上線整個生命周期里面,是不需要人為去干預(yù)的,都是一套自動的東西,對于我們現(xiàn)場的工作人員來說,可能就是他接到一個工單就是這臺機器什么方面壞掉了,他去把它換掉,然后確認后會自動的把它恢復(fù)了,加入到集群里面去。
51CTO:云計算運維過程中,需要運維人員注意的方面是什么?
柯旻:在云計算過程中,你需要更多的去了解系統(tǒng)底層的東西,怎么樣跟這個應(yīng)用上面的優(yōu)化達到最合適的情況。同時也需要去關(guān)注一下,用戶的需求是什么樣的。因為你的使用方可能相對來說是一個比較集中的狀態(tài),而實際上使用的是你的大的平臺,所以說他們基本上都是在這個上面,這個上面他們可能根據(jù)自己的任務(wù)的情況,有一些優(yōu)化一些東西,可能對這個平臺有一些不同的需求,這個地方你也需要去更多的去了解,或者說幫助用戶去更好地使用這些平臺。
51CTO:這整個過程中,遇到的最大的挑戰(zhàn)是什么?
柯旻:我們目前來說遇到的最大挑戰(zhàn)可能就是軟件層面的,我們規(guī)模越大,挑戰(zhàn)就越大,這個上面可能更多的需要開發(fā)人員在代碼上的做一定的更改和優(yōu)化,或者構(gòu)架上的調(diào)整,然后去解決這個問題。在這個過程中間,運維人員是需要配合開發(fā)人員的。#p#
阿里巴巴的自動化運維案例
51CTO:自動化運維有很多方面,比如系統(tǒng)部署,監(jiān)控,代碼自動部署與回滾,命令執(zhí)行與資源配置等。阿里巴巴主要運用的是自動化哪個方面?
柯旻:阿里巴巴自動化運維是全方位的,你提到的這些都是要做的,因為這個東西需要整體一套全部打通,你才能談得上自動化去運維。然后這里面會有不同的分工,比方說從我們應(yīng)用層面上面來說,舉一個簡單的例子,假如一臺機器某塊盤壞掉以后,你的應(yīng)用需要自動的能夠把這個壞的盤下線掉,我們后臺的監(jiān)控程序會去輪詢?nèi)フ业竭@個發(fā)現(xiàn)這個盤,會把這些盤從sys里進行下線,重新做一些修復(fù)處理,看能不能加過去,如果加不回去,那就說明這個盤可能就徹底壞掉了,壞掉了以后,然后我們會自動在工單系統(tǒng)里面去提交一個報修,這整個過程中間是沒有人為干預(yù)的。
然后到了報修的時候,可能我們現(xiàn)場的工作人員就會接到這個工單以后,他們會安排時間,一周兩次或者說一次,他們會統(tǒng)一去把這些盤全部都換掉。如果是這些盤是系統(tǒng)盤都掛掉以后,他們可能會幫我們換掉以后,也會觸發(fā)自動安裝,然后它會自動去安裝,部署完了以后,如果是某一塊數(shù)據(jù)盤壞掉的話,他把盤換掉以后,因為這個本身就是在線上在運轉(zhuǎn),我們后臺有程序會發(fā)現(xiàn)這個盤正常以后,我們會把這個加到系統(tǒng)里面去,然后應(yīng)用發(fā)現(xiàn)這塊盤后它會自動的識別添加到服務(wù)中來。也就是說在這整個過程中間,可能就只是現(xiàn)場的人員更換硬件,需要人為處理。
如果對于機器重裝的情況,我們會統(tǒng)一在一個時間段,比方說我一周或者一個月的時間,我把這個機器整理以后,會統(tǒng)一有一個自動化的部署的觸發(fā),它會把這整個機器初始化掉,讓里面的系統(tǒng)環(huán)節(jié)各個方面應(yīng)用部署的狀態(tài),它會去找到自己的兄弟節(jié)點去做一次克隆,恢復(fù)成跟線上的"兄弟姐妹"一模一樣的狀態(tài),然后再上線。這個地方也是人員的觸發(fā),就是一個很簡單的命令或者web點擊觸發(fā)。當然后續(xù)目標是能做到更加自動的恢復(fù)
51CTO:阿里在監(jiān)控方面用了哪些工具?監(jiān)控系統(tǒng)的報警流程是什么樣?
柯旻:由于傳統(tǒng)的監(jiān)控工具可能滿足不了我們現(xiàn)在的需求,所以我們內(nèi)部有一套自己開發(fā)的監(jiān)控系統(tǒng),像阿里巴巴、百度、騰訊這樣的公司,因為量比較大,所以說基本上都是內(nèi)部開發(fā)的一套系統(tǒng),可能騰訊有騰訊自己的,百度有百度自己的,可能都是根據(jù)企業(yè)自身的發(fā)展需求來定的。
就拿我們來說,除了一些重要節(jié)點的單機報警以外,這個系統(tǒng)可能會加一些基礎(chǔ)的報警,它可能是一種批量的,我們會設(shè)一個閥值,比方說下面同時有十臺機器掛了,或者十五臺機器掛了,同時掛掉,在一個檢查周期里面同時掛掉的時候,可能才會發(fā)一個報警,如果掛掉一臺兩臺,可能我們就不報警了?;蛘哒f我可能發(fā)了報警就只是一個消息,可能一個郵件出來,可能哪天我花點時間去看看今天大概有多少,然后會去看一眼,或者說覺得今天可能做別的事情比較多,可能這個事情我會放在后面集中再去處理。
51CTO:在大規(guī)模集群的情況下,如何才能做好自動化運維呢?
柯旻:我個人覺得這是一個意識問題,如果是熱衷于去手動處理的話,可能自動化這些東西,你就會投入精力去更少,而應(yīng)當你發(fā)現(xiàn)一件事情重復(fù)三次以后,就應(yīng)該需要去考慮怎么能夠不需要人為自動去處理,但是這個過程中間,是有一些陣痛。如果正常的情況下,你不停的人為去處理的話,到了一個階段以后,就會成為一個瓶頸了,因為你的精力已經(jīng)不夠用。所以要去做自動化,可能在剛剛開始的時候,你效率的提升比較小,因為你要花很多時間去想怎么樣自動化,怎么樣不要出現(xiàn)問題,但是如果你這個自動化做好以后,你就會發(fā)現(xiàn)后面你的效率會越來越高。#p#
阿里Hadoop集群性能優(yōu)化和故障排查
51CTO:阿里是什么時候開始有Hadoop集群的?現(xiàn)階段Hadoop集群大致的規(guī)模是?
柯旻:2009年開始應(yīng)該是200臺左右開始慢慢發(fā)展。目前來說,基本上接近單集群五千臺。
51CTO:對于Hadoop集群性能優(yōu)化這方面,您認為比較可行的方法有哪些?
柯旻:性能優(yōu)化這個東西,這塊開發(fā)方面去要優(yōu)化很多東西的,對于運維來說,我們的性能優(yōu)化,可能更多的專注在硬件設(shè)備,sys層面和應(yīng)用層面結(jié)合的一些優(yōu)化。我們會根據(jù)情況跟開發(fā)人員提需求和建議,但是真正來說,本質(zhì)上的性能優(yōu)化來說,更多的還是開發(fā)在代碼上的改動,減少各類開銷和鎖的力度,提高并發(fā)度等。
51CTO:云計算環(huán)境下,傳統(tǒng)的網(wǎng)絡(luò)運維人員壓力倍增,您怎么看待這個問題?
柯旻:其實這跟運維的職業(yè)有關(guān),運維的職業(yè)基本上24小時要oncall,可能隨時隨地會有電話打給你,因為你不知道這個故障會什么時候發(fā)生,所以說運維人員的壓力是比較大的。對于變化比較小的行業(yè)運維人員而言,可能會相對輕松一點,但對云計算來說目前整個行業(yè)在飛速發(fā)展,可能會有各種各樣的問題,作為運維人員來說的話,可能這方面的壓力是更大的。
自動化運維這個東西是一個長期過程,可能隨著你的云計算,或者大數(shù)據(jù)發(fā)展,外在的環(huán)境,機房網(wǎng)絡(luò),這些環(huán)境都在變,你的自動化是一個持續(xù)性發(fā)展下去的事情。而且你要通過這些自動化工具提高你的工作效率,你才能有精力去做更重要的一些事情。所以不會出現(xiàn)自動化了就不需要運維人員的情況。
隨著現(xiàn)在的發(fā)展自動化,下一步從我們這邊來看的話,可能就變成一個數(shù)字化運維??赡芨枰幽X子去想怎么樣去實現(xiàn),所以說自動化不是說是會讓你失業(yè)的東西。而是說能夠讓你有更多的精力去做一些更有一些意義的事情。
51CTO:您認為數(shù)字化運維這條路應(yīng)該怎么走?
柯旻:隨著集群規(guī)模的擴大,機器的數(shù)量的膨脹,用戶數(shù)量的增加,我們已經(jīng)很難再去找到一些經(jīng)驗借鑒。當你沒有經(jīng)驗可以借鑒的時候,唯一有一個東西是不會去忽悠你,那就是數(shù)據(jù),數(shù)據(jù)一定是真實的,怎么樣能夠快速的真實的拿到這些真實的數(shù)據(jù),然后通過我們的數(shù)據(jù)化分析去得到我們想要得到結(jié)果。這實際是一個探索的過程,我們現(xiàn)在有一點點的想法,但是這個想法的實現(xiàn),我們還在做,這條路是不是一定是這么走的,其實我們也不是那么有把握。因為這種硬件的投入和成本投入非常大,所以說如果依靠拍腦袋或者怎么樣,你可能會有一些失誤的判斷,而你這個失誤的判斷,可能給公司造成的損失是巨大的,通過這些數(shù)據(jù)分析去預(yù)測的話,可能不能百分之百的避免出問題,但是它可能會最大化的去減少到出問題的概率。因為數(shù)據(jù)是真實的,你只要把這些數(shù)據(jù),去挖掘得足夠深,它其實是能夠告訴你很多東西該怎么去做。你可以通過這些東西去推斷,去分析,可能最后到某種意義上來說,一個靠譜的數(shù)據(jù)分析師就能去做一些運維決策工作,因為其實做數(shù)據(jù)分析這塊是非常需要想象力的。對于我們運維來說,因為我們自己的運維數(shù)據(jù)也非常多,比方說程序的溫度、負載、磁盤、應(yīng)用的狀況,各個方面的數(shù)據(jù),其實也是在一個飛速的膨脹,然后怎么樣能夠快速的去分析這些數(shù)據(jù),這也是一個比較大的挑戰(zhàn)。
好的,專訪就到這里,非常感謝大舞的分享。也歡迎大家留言討論云計算運維這些事兒。