云計算:拼的是運維

jopen 10年前發布 | 16K 次閱讀 云計算

  云計算的技術難點

  到今天,云計算的工業實現已經不太難了。現在有開源軟件 KVM 和 Xen,這兩個東西基本把虛擬化搞定;而 OpenStack 則把管理、控制系統搞定,也很成熟。PaaS 也有相應的開源,比如 OpenShift,而 Java 里也有N多的中間件框架和技術。另外分布式文件系統 GFS/TFS,分布式計算系統 Hadoop/Hbase 等等,分布式的東西都不神秘了。技術的實現在以前可能是問題,現在不是了。

  對于云計算工程方面,現在最難的是運維。管 100 臺、1 萬臺還是 100 萬臺機器,那是完全不同的。機器少你可以用人管理,機器多是不可能靠人的。運維系統不屬于功能性的東西,用戶看不見,所以這是被大家嚴重低估的東西。只要 你做大了,就必然要在運維系統上做文章。數據中心/云計算拼的就是運維能力。

  為什么我說運維比較復雜,原因有這么幾個。

  一方面,云計算要用廉價設備取代那些昂貴的解決方案。所謂互聯網的文化就是屌絲文化,屌絲就是便宜,互聯網就是要用便宜的東西搭建出高質量的東 西,硬件和資源一定不會走高端路線——比如 EMC、IBM 小型機、SGI 超級計算機等等,你如果用它去搭建云計算,成本太貴。用廉價的解決方案代替昂貴的解決方案是整個計算機發展史中到今天唯一不變的事情。所以如果你要讓夏利 車跑出奔馳車的感覺,你需要自己動手做很多事,搭建一個智能的系統。用廉價的東西做出高質量的東西,運維好廉價的設備其實是云計算工程里最大的挑戰。

  另一方面,因為你機器多了,然后你用的又不是昂貴的硬件,所以故障就變成了常態,硬盤、主板、網絡天天壞。所以,沒什么好想的,運維就必須要跟 上。云計算的目標是在故障成為常態的情況下保證高可用——也就是我們所說的,你服務的可用性是 3 個9、4 個 9 還是 5 個9。

  最后,這一大堆機器和設備都放在一起,你的安全就是一個挑戰,一方面是 Security,另一方面是 Safety,保證數十臺數百臺的設備的安全還好說,但是對于數萬數十萬臺的設計,就沒有那么簡單了。

  面對這樣的難題,人是無法搞得定的,你只能依靠技術來管理和運維整個平臺。比如必須有監控系統。這跟操作系統一樣,對資源的管理,對網絡流量、 CPU 利用率、進程、內存等等的狀態肯定要全部收集的。收集整個集群各種節點的狀態,是必然每個云計算都有的,都是大同小異的。

  然后,你還要找到可用性更好的節點,這需要有一些故障自檢的功能。比如阿里云就遇到過磁盤用到一定時候就會莫名其妙的不穩定,有些磁盤的I/O 會變慢。變慢的原因有可是硬盤不行了,于是硬盤控制器可能因為 CRC 校驗出錯需要要多讀幾次,這就好比 TCP 的包傳過來,數據出錯了,需要重新傳。在這種硬盤處理半死不活的狀態時,你肯定是需要一個自動檢測或自動發現的程序去監控這種事情,當這個磁盤可能不行 了,標記成壞磁盤,別用它,到別的磁盤上讀復本去。我們要有故障自動檢測、預測的措施,才能驅動故障,而不是被動響應故障,用戶體驗才會好。換句話說,我 們需要自動化的、主動的運維。

  為了數據的高可用性,你只能使用數據冗余,寫多份到不同的節點——工業界標準寫三份是安全。然而,你做了冗余,又有數據一致性問題。為了解決冗 余帶來的一致性問題,才有了 paxos 的投票玩法,大家投票這個能不能改,于是你就需要一個強大的控制系統來控制這些東西。

  另外,公有云人來人往,里面的資源和服務今天用明天不用,有分配有釋放,有凍結,你還要搞一個資源管理系統來管理這些資源的生命狀態。還有權限 管理,就像 AWS 的 IAM 一樣,如果沒有像 AWS 的 IAM 權限管理系統,AWS 可能會不會像今天這樣有很多大的公司來用。企業級的云平臺,你需要有企業級的運維和管理能力。

  云計算的門檻

  為啥云計算有這么多開源的東西,卻不是人人都能做?

  一方面,這就跟蓋樓一樣。蓋樓的技術沒什么難的(當然,蓋高樓是很難的),但是你沒地你怎么蓋?我覺得云計算也一樣,帶寬的價格貴得就像土地的 價格。其實云計算跟房地產一樣,要占地、占機房、占帶寬。如果能把中國所有的機房、機柜、帶寬資源都買了,你就不用做云計算了,賣土地就夠了——因為這些 是有限的。最簡單的例子,IP 地址是有限的。你有帶寬、有機房,但是如果你沒有 IP,這就不好玩了。尤其是你要提供 CDN 服務,這個就更明顯,因為有多少物理節點直接決定你的 CDN 服務質量。

  另一方面,正如前面所說的,運維是件很難的事,運維這個事并不是一般人能搞的事。沒有足夠的場景、經驗和時間,這種能力很難出現。

  從用戶的角度來說呢,云計算是一種服務,你需要對用戶企業內的解決方案要有很好的了解,這樣才能提高很好的服務。能提供“好服務”的通常都是把自己真正當成用戶公司。

  賣汽車也是賣服務。造出汽車來,并不代表你搞定這個事了。如果沒有公路、沒有加油站、沒有 4s 店、沒有交通管理、規則等等,你要么用不了,要么就是亂七八糟。不能只讓用戶在那看著你的汽車好牛啊,但是用戶不知道怎么用。所以說,云計算最終旁邊必須 要有一套服務設施,而這套服務設施也是今天被人低估的。

  云計算有兩個東西我覺得是被人低估的,一個是運維,一個是那堆服務。做服務的需要有生態環境,有人幫你做。所以做云計算要落地并不簡單。

  總之,云計算是需要吃自己的狗食才能吃出來的,絕不是像手機上的 Apps 一樣,你想一想、試一試就能搞出來的,你首先需要讓自己有這樣的場景,有這樣的經歷,你才可能會有這樣的經驗和能力。

  還是那句話,云就是服務,只要提供了好的服務,無論公有還是私有都是會有價值的。

                    <span id="shareA4" class="fl">                            
                        </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!