到今天,云計(jì)算的工業(yè)實(shí)現(xiàn)已經(jīng)不太難了?,F(xiàn)在有開(kāi)源軟件KVM和Xen,這兩個(gè)東西基本把虛擬化搞定;而OpenStack則把管理、控制系統(tǒng)搞定,也很成熟。PaaS也有相應(yīng)的開(kāi)源,比如OpenShift,而Java里也有N多的中間件框架和技術(shù)。另外分布式文件系統(tǒng)GFS/TFS,分布式計(jì)算系統(tǒng)Hadoop/Hbase等等,分布式的東西都不神秘了。技術(shù)的實(shí)現(xiàn)在以前可能是問(wèn)題,現(xiàn)在不是了。
對(duì)于云計(jì)算工程方面,現(xiàn)在最難的是運(yùn)維。管100臺(tái)、1萬(wàn)臺(tái)還是100萬(wàn)臺(tái)機(jī)器,那是完全不同的。機(jī)器少你可以用人管理,機(jī)器多是不可能靠人的。運(yùn)維系統(tǒng)不屬于功能性的東西,用戶看不見(jiàn),所以這是被大家嚴(yán)重低估的東西。只要你做大了,就必然要在運(yùn)維系統(tǒng)上做文章。數(shù)據(jù)中心/云計(jì)算拼的就是運(yùn)維能力。
為什么說(shuō)運(yùn)維比較復(fù)雜,原因有這么幾個(gè)。
一方面,云計(jì)算要用廉價(jià)設(shè)備取代那些昂貴的解決方案?;ヂ?lián)網(wǎng)就是要用便宜的東西搭建出高質(zhì)量的東西,硬件和資源一定不會(huì)走高端路線--比如EMC、IBM小型機(jī)、SGI超級(jí)計(jì)算機(jī)等等,你如果用它去搭建云計(jì)算,成本太貴。用廉價(jià)的解決方案代替昂貴的解決方案是整個(gè)計(jì)算機(jī)發(fā)展史中到今天唯一不變的事情。所以如果你要讓夏利車跑出奔馳車的感覺(jué),你需要自己動(dòng)手做很多事,搭建一個(gè)智能的系統(tǒng)。用廉價(jià)的東西做出高質(zhì)量的東西,運(yùn)維好廉價(jià)的設(shè)備其實(shí)是云計(jì)算工程里最大的挑戰(zhàn)。
另一方面,因?yàn)闄C(jī)器多了,加上用的又不是昂貴的硬件,所以故障就變成了常態(tài),硬盤、主板、網(wǎng)絡(luò)天天壞。所以,沒(méi)什么好想的,運(yùn)維就必須要跟上。云計(jì)算的目標(biāo)是在故障成為常態(tài)的情況下保證高可用--也就是我們所說(shuō)服務(wù)的可用性,是3個(gè)9、4個(gè)9還是5個(gè)9。
最后,這一大堆機(jī)器和設(shè)備都放在一起,安全問(wèn)題就是一個(gè)挑戰(zhàn),一方面是Security,另一方面是Safety,保證數(shù)十臺(tái)數(shù)百臺(tái)的設(shè)備的安全還好說(shuō),但是對(duì)于數(shù)萬(wàn)數(shù)十萬(wàn)臺(tái)的設(shè)計(jì),就沒(méi)有那么簡(jiǎn)單了。
面對(duì)這樣的難題,人是無(wú)法搞得定的,只能依靠技術(shù)來(lái)管理和運(yùn)維整個(gè)平臺(tái)。比如必須有監(jiān)控系統(tǒng)。這跟操作系統(tǒng)一樣,對(duì)資源的管理,對(duì)網(wǎng)絡(luò)流量、CPU利用率、進(jìn)程、內(nèi)存等等的狀態(tài)肯定要全部收集的。收集整個(gè)集群各種節(jié)點(diǎn)的狀態(tài),是必然每個(gè)云計(jì)算都有的,都是大同小異的。
然后,還要找到可用性更好的節(jié)點(diǎn),這需要有一些故障自檢的功能。比如阿里云就遇到過(guò)磁盤用到一定時(shí)候就會(huì)莫名其妙的不穩(wěn)定,有些磁盤的I/O會(huì)變慢。變慢的原因有可是硬盤不行了,于是硬盤控制器可能因?yàn)镃RC校驗(yàn)出錯(cuò)需要要多讀幾次,這就好比TCP的包傳過(guò)來(lái),數(shù)據(jù)出錯(cuò)了,需要重新傳。在這種硬盤處理半死不活的狀態(tài)時(shí),你肯定是需要一個(gè)自動(dòng)檢測(cè)或自動(dòng)發(fā)現(xiàn)的程序去監(jiān)控這種事情,當(dāng)這個(gè)磁盤可能不行了,標(biāo)記成壞磁盤,別用它,到別的磁盤上讀復(fù)本去。我們要有故障自動(dòng)檢測(cè)、預(yù)測(cè)的措施,才能驅(qū)動(dòng)故障,而不是被動(dòng)響應(yīng)故障,用戶體驗(yàn)才會(huì)好。換句話說(shuō),我們需要自動(dòng)化的、主動(dòng)的運(yùn)維。
為了數(shù)據(jù)的高可用性,你只能使用數(shù)據(jù)冗余,寫多份到不同的節(jié)點(diǎn)--工業(yè)界標(biāo)準(zhǔn)寫三份是安全。然而,你做了冗余,又有數(shù)據(jù)一致性問(wèn)題。為了解決冗余帶來(lái)的一致性問(wèn)題,才有了paxos的投票玩法,大家投票這個(gè)能不能改,于是你就需要一個(gè)強(qiáng)大的控制系統(tǒng)來(lái)控制這些東西。
另外,公有云人來(lái)人往,里面的資源和服務(wù)今天用明天不用,有分配有釋放,有凍結(jié),你還要搞一個(gè)資源管理系統(tǒng)來(lái)管理這些資源的生命狀態(tài)。還有權(quán)限管理,就像AWS的IAM一樣,如果沒(méi)有像AWS的IAM權(quán)限管理系統(tǒng),AWS可能會(huì)不會(huì)像今天這樣有很多大的公司來(lái)用。企業(yè)級(jí)的云平臺(tái),你需要有企業(yè)級(jí)的運(yùn)維和管理能力。
云計(jì)算商業(yè)模式就是要實(shí)現(xiàn)IT即服務(wù),無(wú)論是對(duì)外還是在企業(yè)內(nèi)部,IT自服務(wù)的需求越來(lái)越明顯。另一方面,超大規(guī)模的數(shù)據(jù)中心急需一個(gè)有效的掛歷方式來(lái)降低運(yùn)營(yíng)成本。
在云計(jì)算技術(shù)體系架構(gòu)中,運(yùn)維管理提供IaaS層、PaaS層、SaaS層資源的全生命周期的運(yùn)維管理,實(shí)現(xiàn)物理資源、虛擬資源的統(tǒng)一管理,提供資源管理、統(tǒng)計(jì)、監(jiān)控調(diào)度、服務(wù)掌控等端到端的綜合管理能力。云運(yùn)維管理與當(dāng)前傳統(tǒng)IT運(yùn)維管理的不同表現(xiàn)為:集中化和資源池化。
云運(yùn)維管理需要盡量實(shí)現(xiàn)自動(dòng)化和流程化,避免在管理和運(yùn)維中因?yàn)槿斯げ僮鲙?lái)的不確定性問(wèn)題。同時(shí),云運(yùn)維管理需要針對(duì)不同的用戶提供個(gè)性化的試圖,幫助管理和維護(hù)人員查看,定位和解決問(wèn)題。
云運(yùn)維管理和運(yùn)維人員面向的是所有的云資源,要完成對(duì)不同資源的分配、調(diào)度和監(jiān)控。同時(shí),應(yīng)能夠向用戶展示虛擬資源和物理資源的關(guān)系和拓?fù)浣Y(jié)構(gòu)。云運(yùn)維管理的目標(biāo)是適應(yīng)上述的變化,改進(jìn)運(yùn)維的方式和流程來(lái)實(shí)現(xiàn)云資源的運(yùn)行維護(hù)管理。
云計(jì)算運(yùn)維管理應(yīng)提供如下功能:
第一,自服務(wù)門戶。自服務(wù)門戶將支撐基礎(chǔ)設(shè)施資源、平臺(tái)資源和應(yīng)用資源以服務(wù)的方式交互給用戶使用,提供基礎(chǔ)設(shè)施資源、平臺(tái)資源和應(yīng)用資源服務(wù)的檢索、資源使用情況統(tǒng)計(jì)等自服務(wù)功能,需要根據(jù)不同的用戶提供不同的展示功能,并有效隔離多用戶的數(shù)據(jù)。
第二,身份與訪問(wèn)管理。身份與訪問(wèn)管理提供身份的訪問(wèn)管理,只有授權(quán)的用戶才能訪問(wèn)相應(yīng)的功能和數(shù)據(jù),對(duì)資源服務(wù)提出使用申請(qǐng)。
第三,服務(wù)目錄管理。建立基礎(chǔ)設(shè)施資源、平臺(tái)資源和應(yīng)用資源的邏輯視圖,形成云計(jì)算及服務(wù)目錄,供服務(wù)消費(fèi)者與管理者查詢。服務(wù)目錄應(yīng)定義服務(wù)的類型、基本信息、能力數(shù)據(jù)、配額和權(quán)限,提供服務(wù)信息的注冊(cè)、配置、發(fā)布、注銷、變更、查詢等管理功能。
第四,服務(wù)規(guī)則管理。服務(wù)規(guī)則管理定義了資源的調(diào)度、運(yùn)行順序邏輯。
第五,資源調(diào)度管理。資源調(diào)度管理通過(guò)查詢服務(wù)目錄,判斷當(dāng)前資源狀態(tài),并且執(zhí)行自動(dòng)的工作流來(lái)分配及部署資源,按照既定的適用規(guī)則,實(shí)現(xiàn)實(shí)時(shí)響應(yīng)服務(wù)請(qǐng)求,根據(jù)用戶需求實(shí)現(xiàn)資源的自動(dòng)化生成、分配、回收和遷移,用以支持用戶對(duì)資源的彈性需求。
第六,資源監(jiān)控管理。資源監(jiān)控管理實(shí)時(shí)監(jiān)控、捕獲資源的部署狀態(tài)、使用和運(yùn)行指標(biāo)、各類告警信息。
第七,服務(wù)合規(guī)審計(jì)。服務(wù)合規(guī)審計(jì)對(duì)資源服務(wù)的合規(guī)性進(jìn)行規(guī)范和控制,結(jié)合權(quán)限、配額對(duì)服務(wù)的資源使用情況進(jìn)行運(yùn)行審計(jì)。
第八,服務(wù)運(yùn)營(yíng)監(jiān)控。服務(wù)運(yùn)營(yíng)監(jiān)控將各類監(jiān)控?cái)?shù)據(jù)匯總至服務(wù)監(jiān)控及運(yùn)營(yíng)引擎進(jìn)行處理,通過(guò)在服務(wù)策略及工作請(qǐng)求間進(jìn)行權(quán)衡進(jìn)而生成變更請(qǐng)求,部分標(biāo)準(zhǔn)變更需求別轉(zhuǎn)送到資源供應(yīng)管理進(jìn)行進(jìn)一步的處理。
第九,服務(wù)計(jì)量管理。服務(wù)計(jì)量管理按照資源的實(shí)際使用情況進(jìn)行服務(wù)質(zhì)量審核,并規(guī)定服務(wù)計(jì)量信息,以便于在服務(wù)使用者和服務(wù)提供者之間進(jìn)行核算。