雲端計算:拼的就是運維!

Linux雲端計算資料自學發表於2019-01-25

640?


  雲端計算的IaaS、PaaS、SaaS最後那個S都是Service。就是說,無論你雲端計算長成什麼樣,都得要向使用者提供“服務”而不僅僅是軟硬體和各種資源。


雲端計算的技術難點640?wx_fmt=png

  到今天,雲端計算的工業實現已經不太難了。現在有開源軟體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可能會不會像今天這樣有很多大的公司來用。企業級的雲平臺,你需要有企業級的運維和管理能力。


雲端計算的門檻640?wx_fmt=png

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


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


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


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


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


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


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


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

本文作者陳皓,CoolShell.cn博主。

640?wx_fmt=other

雲端計算免費課程火熱開講中,5天運維經典課程免費學,會雲端計算的運維人才到底需要掌握哪些技術,未來前景發展怎麼樣?跟隨行業大咖一起剖根究底,點選文末“閱讀原文”長按下方二維碼即可報名免費課程抓住免費學習的機會,逆襲2019~~

 640?wx_fmt=png

PS:記得查收小編送你的免費大禮包呦~

福利 | 一萬多套PPT模板等你免費來拿!無條件領取!

免費送 | 1000多套簡歷模板免費拿,附贈簡歷製作教程!

免費領 | 《Shell指令碼 100例》電子書免費拿,運維必備乾貨~

640?640

▼▼點選【閱讀原文】,5天運維免費課程,開講在即!

相關文章