雲計算:拼的是運維

發布日期:2014-05-15首頁 > IT資(zī)訊

 

                                  雲計算.jpg
        雲計算的IaaS、PaaS、SaaS最後那個S都是Service。就是說,無論你雲計算長成什麽樣,都得要向用戶提供“服務”而不僅僅是軟硬件和各種資(zī)源。
 【雲計算的技術難點】
  到今天,雲計算的工(gōng)業實現已經不太難了。現在有開(kāi)源軟件KVM和Xen,這兩個東西基本把虛拟化搞定;而OpenStack則把管理、控制系統搞定,也很成熟。PaaS也有相應的開(kāi)源,比如OpenShift,而Java裏也有N多的中(zhōng)間件框架和技術。另外(wài)分(fēn)布式文件系統GFS/TFS,分(fēn)布式計算系統Hadoop/Hbase等等,分(fēn)布式的東西都不神秘了。技術的實現在以前可能是問題,現在不是了。
  對于雲計算工(gōng)程方面,現在最難的是運維。管100台、1萬台還是100萬台機器,那是完全不同的。機器少你可以用人管理,機器多是不可能靠人的。運維系統不屬于功能性的東西,用戶看不見,所以這是被大(dà)家嚴重低估的東西。隻要你做大(dà)了,就必然要在運維系統上做文章。數據中(zhōng)心/雲計算拼的就是運維能力。
           爲什麽我(wǒ)說運維比較複雜(zá),原因有這麽幾個。
  一(yī)方面,雲計算要用廉價設備取代那些昂貴的解決方案。所謂互聯網的文化就是屌絲文化,屌絲就是便宜,互聯網就是要用便宜的東西搭建出高質量的東西,硬件和資(zī)源一(yī)定不會走高端路線——比如EMC、IBM小(xiǎo)型機、SGI超級計算機等等,你如果用它去(qù)搭建雲計算,成本太貴。用廉價的解決方案代替昂貴的解決方案是整個計算機發展史中(zhōng)到今天唯一(yī)不變的事情。所以如果你要讓夏利車(chē)跑出奔馳車(chē)的感覺,你需要自己動手做很多事,搭建一(yī)個智能的系統。用廉價的東西做出高質量的東西,運維好廉價的設備其實是雲計算工(gōng)程裏最大(dà)的挑戰。
  另一(yī)方面,因爲你機器多了,然後你用的又(yòu)不是昂貴的硬件,所以故障就變成了常态,硬盤、主闆、網絡天天壞。所以,沒什麽好想的,運維就必須要跟上。雲計算的目标是在故障成爲常态的情況下(xià)保證高可用——也就是我(wǒ)們所說的,你服務的可用性是3個9、4個9還是5個9。
  最後,這一(yī)大(dà)堆機器和設備都放(fàng)在一(yī)起,你的安全就是一(yī)個挑戰,一(yī)方面是Security,另一(yī)方面是Safety,保證數十台數百台的設備的安全還好說,但是對于數萬數十萬台的設計,就沒有那麽簡單了。
  面對這樣的難題,人是無法搞得定的,你隻能依靠技術來管理和運維整個平台。比如必須有監控系統。這跟操作系統一(yī)樣,對資(zī)源的管理,對網絡流量、CPU利用率、進程、内存等等的狀态肯定要全部收集的。收集整個集群各種節點的狀态,是必然每個雲計算都有的,都是大(dà)同小(xiǎo)異的。
  然後,你還要找到可用性更好的節點,這需要有一(yī)些故障自檢的功能。比如阿裏雲就遇到過磁盤用到一(yī)定時候就會莫名其妙的不穩定,有些磁盤的I/O會變慢(màn)。變慢(màn)的原因有可是硬盤不行了,于是硬盤控制器可能因爲CRC校驗出錯需要要多讀幾次,這就好比TCP的包傳過來,數據出錯了,需要重新傳。在這種硬盤處理半死不活的狀态時,你肯定是需要一(yī)個自動檢測或自動發現的程序去(qù)監控這種事情,當這個磁盤可能不行了,标記成壞磁盤,别用它,到别的磁盤上讀複本去(qù)。我(wǒ)們要有故障自動檢測、預測的措施,才能驅動故障,而不是被動響應故障,用戶體(tǐ)驗才會好。換句話(huà)說,我(wǒ)們需要自動化的、主動的運維。
  爲了數據的高可用性,你隻能使用數據冗餘,寫多份到不同的節點——工(gōng)業界标準寫三份是安全。然而,你做了冗餘,又(yòu)有數據一(yī)緻性問題。爲了解決冗餘帶來的一(yī)緻性問題,才有了paxos的投票(piào)玩法,大(dà)家投票(piào)這個能不能改,于是你就需要一(yī)個強大(dà)的控制系統來控制這些東西。
  另外(wài),公有雲人來人往,裏面的資(zī)源和服務今天用明天不用,有分(fēn)配有釋放(fàng),有凍結,你還要搞一(yī)個資(zī)源管理系統來管理這些資(zī)源的生(shēng)命狀态。還有權限管理,就像AWS的IAM一(yī)樣,如果沒有像AWS的IAM權限管理系統,AWS可能會不會像今天這樣有很多大(dà)的公司來用。企業級的雲平台,你需要有企業級的運維和管理能力。
 【雲計算的門檻】
  爲啥雲計算有這麽多開(kāi)源的東西,卻不是人人都能做?
  一(yī)方面,這就跟蓋樓一(yī)樣。蓋樓的技術沒什麽難的(當然,蓋高樓是很難的),但是你沒地你怎麽蓋?我(wǒ)覺得雲計算也一(yī)樣,帶寬的價格貴得就像土地的價格。其實雲計算跟房地産一(yī)樣,要占地、占機房、占帶寬。如果能把中(zhōng)國所有的機房、機櫃、帶寬資(zī)源都買了,你就不用做雲計算了,賣土地就夠了——因爲這些是有限的。最簡單的例子,IP地址是有限的。你有帶寬、有機房,但是如果你沒有IP,這就不好玩了。尤其是你要提供CDN服務,這個就更明顯,因爲有多少物(wù)理節點直接決定你的CDN服務質量。
  另一(yī)方面,正如前面所說的,運維是件很難的事,運維這個事并不是一(yī)般人能搞的事。沒有足夠的場景、經驗和時間,這種能力很難出現。
  從用戶的角度來說呢,雲計算是一(yī)種服務,你需要對用戶企業内的解決方案要有很好的了解,這樣才能提高很好的服務。能提供“好服務”的通常都是把自己真正當成用戶公司。
  賣汽車(chē)也是賣服務。造出汽車(chē)來,并不代表你搞定這個事了。如果沒有公路、沒有加油站、沒有4s店(diàn)、沒有交通管理、規則等等,你要麽用不了,要麽就是亂七八糟。不能隻讓用戶在那看着你的汽車(chē)好牛啊,但是用戶不知(zhī)道怎麽用。所以說,雲計算最終旁邊必須要有一(yī)套服務設施,而這套服務設施也是今天被人低估的。
  雲計算有兩個東西我(wǒ)覺得是被人低估的,一(yī)個是運維,一(yī)個是那堆服務。做服務的需要有生(shēng)态環境,有人幫你做。所以做雲計算要落地并不簡單。
           總之,雲計算是需要吃自己的狗食才能吃出來的,絕不是像手機上的Apps一(yī)樣,你想一(yī)想、試一(yī)試就能搞出來的,你首先需要讓自己有這樣的場景,有這樣的經曆,你才可能會有這樣的經驗和能力。
  還是那句話(huà),雲就是服務,隻要提供了好的服務,無論公有還是私有都是會有價值的。
           作者陳皓,CoolShell.cn博主。15年軟件開(kāi)發相關工(gōng)作經驗,8年以上項目和團隊管理經驗。擅長底層技術架構,團隊建設,軟件工(gōng)程,軟件研發咨詢,以及全球軟件團隊協作管理。對高性能,高可用性,分(fēn)布式,高并發,以及大(dà)規模數據處理系統有一(yī)些經驗和心得。