到今天,云計(jì)算的工業(yè)實(shí)現(xiàn)已經(jīng)不太難了。現(xiàn)在有開源軟件KVM和Xen,這兩個(gè)東西基本把虛擬化搞定;而OpenStack則把管理、控制系統(tǒng)搞定,也很成熟。PaaS也有相應(yīng)的開源,比如OpenShift,而Java里也有N多的中間件框架和技術(shù)。另外分布式文件系統(tǒng)GFS/TFS,分布式計(jì)算系統(tǒng)Hadoop/Hbase等等,分布式的東西都不神秘了。技術(shù)的實(shí)現(xiàn)在以前可能是問題,現(xiàn)在不是了。
一方面,云計(jì)算要用廉價(jià)設(shè)備取代那些昂貴的解決方案。互聯(lián)網(wǎng)就是要用便宜的東西搭建出高質(zhì)量的東西,域名購(gòu)買 directadmin購(gòu)買,硬件和資源一定不會(huì)走高端路線——比如EMC、IBM小型機(jī)、SGI超級(jí)計(jì)算機(jī)等等,你如果用它去搭建云計(jì)算,成本太貴。用廉價(jià)的解決方案代替昂貴的解決方案是整個(gè)計(jì)算機(jī)發(fā)展史中到今天唯一不變的事情。所以如果你要讓夏利車跑出奔馳車的感覺,你需要自己動(dòng)手做很多事,搭建一個(gè)智能的系統(tǒng)。用廉價(jià)的東西做出高質(zhì)量的東西,運(yùn)維好廉價(jià)的設(shè)備其實(shí)是云計(jì)算工程里最大的挑戰(zhàn)。
為了數(shù)據(jù)的高可用性,你只能使用數(shù)據(jù)冗余,寫多份到不同的節(jié)點(diǎn)——工業(yè)界標(biāo)準(zhǔn)寫三份是安全。然而,你做了冗余,又有數(shù)據(jù)一致性問題。為了解決冗余帶來的一致性問題,才有了paxos的投票玩法,大家投票這個(gè)能不能改,于是你就需要一個(gè)強(qiáng)大的控制系統(tǒng)來控制這些東西。
另一方面,因?yàn)闄C(jī)器多了,加上用的又不是昂貴的硬件,所以故障就變成了常態(tài),硬盤、主板、網(wǎng)絡(luò)天天壞。所以,沒什么好想的,運(yùn)維就必須要跟上。云計(jì)算的目標(biāo)是在故障成為常態(tài)的情況下保證高可用——也就是我們所說服務(wù)的可用性,是3個(gè)9、4個(gè)9還是5個(gè)9。
另外,公有云人來人往,里面的資源和服務(wù)今天用明天不用,有分配有釋放,有凍結(jié),你還要搞一個(gè)資源管理系統(tǒng)來管理這些資源的生命狀態(tài)。還有權(quán)限管理,就像AWS的IAM一樣,如果沒有像AWS的IAM權(quán)限管理系統(tǒng),AWS可能會(huì)不會(huì)像今天這樣有很多大的公司來用。企業(yè)級(jí)的云平臺(tái),你需要有企業(yè)級(jí)的運(yùn)維和管理能力。
為啥云計(jì)算有這么多開源的東西,卻不是人人都能做?
為什么說運(yùn)維比較復(fù)雜,原因有這么幾個(gè)。
云計(jì)算有兩個(gè)東西個(gè)人覺得是被人低估的,一個(gè)是運(yùn)維,一個(gè)是服務(wù)。做服務(wù)的需要有生態(tài)環(huán)境,有人幫你做。所以做云計(jì)算要落地并不簡(jiǎn)單。還是那句話,云就是服務(wù),只要提供了好的服務(wù),無論公有還是私有都是會(huì)有價(jià)值的。