云計(jì)算的前世今生

最近因?yàn)槲⒎?wù)項(xiàng)目的實(shí)施,開(kāi)始深入了解云計(jì)算的基礎(chǔ)架構(gòu)。越往前推進(jìn),越發(fā)現(xiàn)微服務(wù)架構(gòu)要能成功,絕對(duì)離不開(kāi)基礎(chǔ)設(shè)施的支撐,基礎(chǔ)架構(gòu)的云化,項(xiàng)目管理的devops化,都是微服務(wù)能夠落地的必不可少的支撐要素。這邊簡(jiǎn)要記錄一下自己學(xué)習(xí)云計(jì)算的學(xué)習(xí)筆記。

注:文章里面比較多的引用了網(wǎng)易劉超老師的不是技術(shù)也能看懂云計(jì)算,大數(shù)據(jù),人工智能這篇文章的觀點(diǎn),特此說(shuō)明。

有人說(shuō),要想深入了解一門(mén)技術(shù),就要去了解它的歷史,它發(fā)展的來(lái)龍去脈,它的誕生是為了解決怎樣的痛點(diǎn),只有這樣你才能知道為什么它要如此發(fā)展,各個(gè)時(shí)間點(diǎn)的技術(shù)抉擇又是基于何種考慮。所以在談云計(jì)算之前,我們先來(lái)談一談軟件交付方式的發(fā)展歷史。

軟件交付發(fā)展階段

客戶(hù)端軟件

在計(jì)算機(jī)誕生的初期,其實(shí)是沒(méi)有軟件這種說(shuō)法的。一般的常用程序都是隨硬件生產(chǎn)商附贈(zèng)預(yù)裝在硬件里面的,算是買(mǎi)硬件送軟件。而且特別難用,不是專(zhuān)業(yè)人士根本用不了(需要打孔神馬的),買(mǎi)去的客戶(hù)一般都是為了完成特定目的(IBM最早就是做人口普查統(tǒng)計(jì)和制表機(jī)的)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,性能不斷提升,價(jià)格不斷下降,這時(shí)候開(kāi)始有了個(gè)人PC,而此時(shí)也誕生了很多的專(zhuān)業(yè)軟件,可以完成各種各樣特定領(lǐng)域的專(zhuān)業(yè)任務(wù)。典型的如早期的windows,office,wps等等軟件。這些軟件一般是以磁盤(pán)或者光盤(pán)的方式交付,運(yùn)行在客戶(hù)PC機(jī)里面,也不需要聯(lián)網(wǎng),安裝完就可以使用了。一直到2000年之前這種方式還是軟件交付的主流方式。


compute.png

B/S階段

隨著軟件工業(yè)發(fā)展越來(lái)越成熟,各種專(zhuān)業(yè)軟件層出不窮,軟件的升級(jí)周期越來(lái)越短,原有的客戶(hù)端軟件模式的弊端開(kāi)始不斷顯現(xiàn)。要升級(jí)的話需要去安裝補(bǔ)丁包,用戶(hù)還要找各種渠道找到這些補(bǔ)丁包,升級(jí)率大大降低。只是升級(jí)還好說(shuō),如果軟件被發(fā)現(xiàn)有重大bug或者漏洞,根本不可能讓所有客戶(hù)快速升級(jí)。此外有些軟件我可能只需要用一兩次,但是也必須安裝,時(shí)間一長(zhǎng)電腦里一大堆用不著的沒(méi)用軟件。這時(shí)候,隨著網(wǎng)絡(luò)的普及,基于萬(wàn)維網(wǎng)的應(yīng)用開(kāi)始漸漸流行,這些軟件不同于傳統(tǒng)軟件,不需要安裝,只需要打開(kāi)瀏覽器,基于標(biāo)準(zhǔn)的http協(xié)議與服務(wù)器進(jìn)行通訊,就可以使用,而且保證用戶(hù)永遠(yuǎn)使用的是最新版本的軟件,各種漏洞的修復(fù)也是即時(shí)的?;诨ヂ?lián)網(wǎng)技術(shù),用戶(hù)體驗(yàn)得以大大提升。為了以示和傳統(tǒng)軟件供應(yīng)商的區(qū)別,這類(lèi)提供互聯(lián)網(wǎng)服務(wù)的一般自稱(chēng)為SP(服務(wù)提供商),他們所提供的一般稱(chēng)之為服務(wù)(service),而不是軟件(software)。


internet.png

互聯(lián)網(wǎng)應(yīng)用為我們打開(kāi)了新世界的大門(mén),但是用戶(hù)體驗(yàn)的提升不是免費(fèi)的,B/S架構(gòu)的核心,是client-server模式,即服務(wù)提供方必須提供服務(wù)器,供客戶(hù)端進(jìn)行訪問(wèn),client與server之間基于標(biāo)準(zhǔn)的http協(xié)議進(jìn)行握手通訊,這個(gè)服務(wù)才能訪問(wèn)到。而server對(duì)外能提供的服務(wù)能力,便取決于計(jì)算(服務(wù)有多快)、存儲(chǔ)(服務(wù)的數(shù)據(jù)量)、網(wǎng)絡(luò)(如何訪問(wèn)到服務(wù))這三個(gè)核心問(wèn)題,也就是所謂的IT基礎(chǔ)設(shè)施,SP需要在機(jī)房?jī)?nèi)部署服務(wù)器集群,并解決計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等一系列問(wèn)題,才能對(duì)外提供服務(wù)。

IT基礎(chǔ)設(shè)施發(fā)展階段

自建機(jī)房

一般比較大的公司,都會(huì)有自己的機(jī)房。機(jī)房的配電、溫度、濕度、UPS、機(jī)架、柴油發(fā)電機(jī)、網(wǎng)絡(luò)配置、機(jī)房監(jiān)控等等全部自己搞定,好處是所有環(huán)節(jié)全部掌握在自己手里,相對(duì)自主可控,當(dāng)然壞處是成本非常之高,一般的中小型公司承受不了。

IDC托管

基于上述自建機(jī)房的痛點(diǎn),有了IDC托管模式。因?yàn)殡娦胚\(yùn)營(yíng)商掌握了相當(dāng)多的網(wǎng)絡(luò)資源,所以這種模式電信運(yùn)營(yíng)商搞的比較多。運(yùn)營(yíng)商出資建設(shè)機(jī)房,網(wǎng)絡(luò)、機(jī)架、配電等等頭痛的問(wèn)題都由IDC服務(wù)商來(lái)搞定,SP只需要出錢(qián)租一個(gè)機(jī)架放自己的服務(wù)器就行了,大大降低了運(yùn)維成本。(注意這邊其實(shí)已經(jīng)出現(xiàn)了租戶(hù)的概念)這相當(dāng)于開(kāi)發(fā)商造好了寫(xiě)字樓,里面水,電,網(wǎng)絡(luò),日常辦公用具都幫你準(zhǔn)備好了,你只需要租下一個(gè)格子間,就可以立馬辦公了,省事不少。

云計(jì)算

其實(shí)一般的應(yīng)用,沒(méi)錢(qián)的用IDC托管模式,有錢(qián)的自建機(jī)房,只要訪問(wèn)量的波動(dòng)不是特別大,已經(jīng)滿(mǎn)足絕大部分需求了,為啥會(huì)出來(lái)“云計(jì)算”這東東?大家知道,“云計(jì)算”這個(gè)概念最早是由谷歌的CEO埃里克·施密特在2006年提出的,闡述的是一種基于互聯(lián)網(wǎng)的,能夠提供動(dòng)態(tài)易擴(kuò)展的虛擬化資源的能力。大家剛聽(tīng)到的時(shí)候也是一臉懵逼,云里霧里,不知所謂。但這時(shí)候有一家公司也已經(jīng)持續(xù)在這方面工作了很長(zhǎng)時(shí)間,并在同年推出了全球第一個(gè)大規(guī)模商用落地的云計(jì)算產(chǎn)品。這家公司就是亞馬遜,亞馬遜為何需要云計(jì)算?眾所周知,亞馬遜是一家電商公司,電商的特點(diǎn)就是波峰波谷極為明顯,在促銷(xiāo)期間的用戶(hù)訪問(wèn)量可能是平時(shí)的幾十倍甚至上百倍,為此購(gòu)買(mǎi)了一大堆的服務(wù)器,但平時(shí)卻根本用不著。于是它就老琢磨著平時(shí)這些空閑的計(jì)算資源是否可以出售給其他需要的公司使用,這樣我的服務(wù)器資源就得到了有效利用,也不算白買(mǎi)了,這就是云計(jì)算里面很重要的一個(gè)概念按需付費(fèi),用多少付多少,媽媽再也不擔(dān)心我的服務(wù)器空放在那里吃灰了。所以從一開(kāi)始來(lái)看,亞馬遜的出發(fā)點(diǎn)就是為了盤(pán)活自己的閑置資源。哪知道產(chǎn)品推出后異?;鸨?yàn)?strong>按需付費(fèi),彈性伸縮的理念切實(shí)擊中了市場(chǎng)痛點(diǎn),aws至此賺的盆滿(mǎn)缽滿(mǎn),引得后續(xù)谷歌、微軟等大佬紛紛入局。

image

為什么云計(jì)算能如此火爆?正如劉超老師所說(shuō),云計(jì)算的本質(zhì)是實(shí)現(xiàn)資源及架構(gòu)的全面彈性。一個(gè)SP,這個(gè)月生意好了,訪問(wèn)量增大了我想加個(gè)5臺(tái)服務(wù)器,下個(gè)月生意不好了,這5臺(tái)我又不要了,你要是這么去和IDC談,估計(jì)要被他踢出來(lái),因?yàn)镮DC的服務(wù)器管理都是基于實(shí)體服務(wù)器的,加一臺(tái)就是真的搬一臺(tái)服務(wù)器上架。但是云計(jì)算是基于虛擬化技術(shù)的,所以說(shuō)它的資源分配就靈活多了,不需要去動(dòng)實(shí)體機(jī),只要在不同的實(shí)體機(jī)之間進(jìn)行虛擬機(jī)的資源調(diào)度(Vmware的技術(shù)甚至能做到在不停機(jī)的情況下把一臺(tái)虛擬機(jī)從一個(gè)節(jié)點(diǎn)調(diào)度到另外一個(gè)節(jié)點(diǎn),ip地址保持不變,進(jìn)程運(yùn)行不中斷),通過(guò)多租戶(hù)管理劃分給不同的客戶(hù)就行了,客戶(hù)根本不知道自己的虛擬機(jī)是在哪個(gè)機(jī)架上的,也不需要知道。在云計(jì)算平臺(tái)上,用戶(hù)可以獲得真正的時(shí)間靈活性空間靈活性,即我想什么時(shí)候要,就能什么時(shí)候得到,我想要多少,就能得到多少,這是基于傳統(tǒng)的機(jī)房托管模式所完全無(wú)法達(dá)到的高度。

云計(jì)算的開(kāi)源與閉源

云計(jì)算雖然說(shuō)理念很好,市場(chǎng)很大,大家都想做,但其實(shí)技術(shù)壁壘還是相當(dāng)高,不是誰(shuí)想做就能做。第一個(gè)商用落地的云計(jì)算產(chǎn)品是AWS,這也是目前全球云計(jì)算市場(chǎng)的龍頭老大,雖然aws的虛擬化技術(shù)是基于開(kāi)源的kvm和xen,但是它云化的代碼是閉源的。第一名日子過(guò)的很爽,第二名日子就不好過(guò)了,這家公司名字可能很多人都沒(méi)聽(tīng)過(guò),叫Rackspace。這公司想了想,反正也搞不過(guò)老大,索性把技術(shù)開(kāi)源,大家一起來(lái)搞,說(shuō)不定還有機(jī)會(huì),于是他們和NASA聯(lián)合,做出了一個(gè)開(kāi)源項(xiàng)目,這個(gè)項(xiàng)目就是大名鼎鼎的openstack。openstack一開(kāi)源,所有想做云計(jì)算的廠家都瘋了,IBM,惠普,戴爾,華為,聯(lián)想等等,都瘋了。原來(lái)云平臺(tái)大家都想做,看著亞馬遜賺了這么多錢(qián),眼巴巴看著沒(méi)辦法,想自己做一個(gè)好像難度還挺大?,F(xiàn)在好了,有了這樣一個(gè)開(kāi)源的云平臺(tái)OpenStack,所有的IT廠商都加入到這個(gè)社區(qū)中來(lái),對(duì)這個(gè)云平臺(tái)進(jìn)行貢獻(xiàn),包裝成自己的產(chǎn)品,連同自己的硬件設(shè)備一起賣(mài)。有的做了私有云,有的做了公有云,OpenStack已經(jīng)成為開(kāi)源云平臺(tái)的事實(shí)標(biāo)準(zhǔn)。國(guó)內(nèi)的騰訊云和華為云,底層技術(shù)也是基于openstack(阿里云是自研的飛天)。

云計(jì)算各類(lèi)概念

IaaS

基礎(chǔ)設(shè)施即服務(wù):通過(guò)前面的介紹,這個(gè)概念就很好理解了,這也是云計(jì)算的本質(zhì):即通過(guò)虛擬化技術(shù),實(shí)現(xiàn)計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)等資源的彈性調(diào)度以及統(tǒng)一管理及監(jiān)控。我們講云計(jì)算,一定是先要實(shí)現(xiàn)IaaS,沒(méi)有IaaS,云計(jì)算就是無(wú)本之木,無(wú)源之水。IaaS的代表產(chǎn)品,開(kāi)源的有openstack(好像也就這一個(gè)),閉源的有aws、azure、gcp、阿里云等等。

PaaS

平臺(tái)即服務(wù):通過(guò)IaaS,實(shí)現(xiàn)了計(jì)算資源的彈性,但離真正的彈性還是差一口氣,這口氣差在了應(yīng)用的部署上面。試想我原來(lái)10個(gè)虛擬機(jī),上面跑著應(yīng)用,通過(guò)IaaS平臺(tái)擴(kuò)到100臺(tái)虛擬機(jī),但是這多出來(lái)的90臺(tái)虛擬機(jī)上面是空的,沒(méi)有應(yīng)用,于是我還得一臺(tái)一臺(tái)去部署應(yīng)用,這顯然是愚蠢且不可接受的。所以說(shuō)云平臺(tái)還得管應(yīng)用,用戶(hù)體驗(yàn)才能做到最好,這就是PaaS干的活了。PaaS上面部署應(yīng)用主要分為兩種模式:

  1. 通用軟件部署
    這部分我們一般稱(chēng)之為通用中間件,或者說(shuō)中間件PaaS化,這些中間件一般是以應(yīng)用商店的形式展現(xiàn)在云計(jì)算平臺(tái)上面(比如mysql、redis、kafka、rabbitmq、mongodb等等)。大家可以去阿里云或者華為云上面看一下,那些云數(shù)據(jù)和消息中間件都是屬于這種模式,點(diǎn)一下,就可以自動(dòng)創(chuàng)建了,還可以創(chuàng)建HA高可用集群,你都不用管,并且有專(zhuān)門(mén)的運(yùn)維團(tuán)隊(duì)負(fù)責(zé)維護(hù)。比如mysql集群,自己裝一個(gè)是非常麻煩的,但是在云平臺(tái)上面就是點(diǎn)幾下鼠標(biāo)的事情,都自動(dòng)幫你弄好了,且有云平臺(tái)的專(zhuān)家進(jìn)行維護(hù),通過(guò)中間件PaaS化,大大降低了中間件的運(yùn)維成本。

  2. 客戶(hù)軟件部署
    客戶(hù)軟件就是客戶(hù)自己的業(yè)務(wù)系統(tǒng)了,這部分的功能由于涉及業(yè)務(wù),維護(hù)方面肯定需要客戶(hù)自己維護(hù)了,云平臺(tái)做不了,但是云平臺(tái)可以幫你解決自動(dòng)部署的問(wèn)題,即我準(zhǔn)備好了部署包,PaaS平臺(tái)可以自動(dòng)幫你部署到100臺(tái)虛擬機(jī)上去,不需要自己一臺(tái)一臺(tái)去部署(當(dāng)然你也可以寫(xiě)ansible腳本去做自動(dòng)部署,本質(zhì)一樣的)。


    image

PaaS的代表產(chǎn)品,開(kāi)源的有pivotal的cloud foundry,redhat的openshift。其中cf一度有成為PaaS平臺(tái)標(biāo)準(zhǔn)的可能,如果不是后來(lái)殺出一個(gè)K8S的話,當(dāng)然k8并不完全做的是PaaS的工作,這是后話,后面再表。

其實(shí)技術(shù)發(fā)展到今天,PaaS不光是管應(yīng)用部署,涉及應(yīng)用生命周期的很多方面它都在管,比如應(yīng)用監(jiān)控、告警、日志收集、灰度發(fā)布、CI/CD等等。如果應(yīng)用是微服務(wù)架構(gòu),甚至還要包括網(wǎng)關(guān)、注冊(cè)中心、配置中心、熔斷、限流、降級(jí)、調(diào)用鏈跟蹤等等一系列功能,這些在廣義上都可以稱(chēng)之為PaaS平臺(tái)的功能?,F(xiàn)在一般主流的云平臺(tái),都會(huì)提供微服務(wù)的解決方案,比如阿里云的EDAS,華為云的servicestage,但這些還是相對(duì)產(chǎn)品化的(一般都是基于spring cloud或者dubbo開(kāi)發(fā)的一套微服務(wù)框架,云平臺(tái)幫你部署好了),現(xiàn)在的技術(shù)發(fā)展趨勢(shì),是把這些服務(wù)治理的功能進(jìn)一步下沉到云平臺(tái)的基礎(chǔ)設(shè)施,即PaaS平臺(tái)里面去。(比如以Istio為代表的service mesh技術(shù))??吹竭@里,你應(yīng)該理解了,為什么微服務(wù)的落地,離不開(kāi)云化基礎(chǔ)設(shè)施的建設(shè)了吧。

SaaS

軟件即服務(wù):SaaS的定義有很多,大家理解都不一樣。一般來(lái)說(shuō),我不認(rèn)為面向最終用戶(hù)的軟件可以稱(chēng)之為SaaS,比方說(shuō)用戶(hù)登陸一個(gè)電商網(wǎng)站購(gòu)物,其實(shí)這個(gè)網(wǎng)站是跑在云平臺(tái)上的,還是一個(gè)服務(wù)器的tomcat里面,用戶(hù)是不關(guān)心的,他只管買(mǎi)買(mǎi)買(mǎi),網(wǎng)站的IT架構(gòu)和他無(wú)關(guān)。當(dāng)然你也可以說(shuō)電商網(wǎng)站通過(guò)賣(mài)會(huì)員,出租網(wǎng)上店鋪提供各類(lèi)云服務(wù),但這些本質(zhì)上都是一種商業(yè)模式。如果這樣的服務(wù)也能稱(chēng)之為SaaS,那其實(shí)所有基于B/S架構(gòu)的應(yīng)用都可以稱(chēng)之為SaaS,這和我們傳統(tǒng)認(rèn)知的云計(jì)算理念不符。我理解,SaaS服務(wù)是面向企業(yè)用戶(hù)的,而且一般是由云計(jì)算廠商提供的,中小企業(yè)沒(méi)有技術(shù)能力或者算力去做的服務(wù)。

SaaS典型的應(yīng)用場(chǎng)景是大數(shù)據(jù)和人工智能。大數(shù)據(jù)一般需要進(jìn)行大規(guī)模的并行計(jì)算,中小企業(yè)沒(méi)有這個(gè)算力,也不想搭建復(fù)雜的大數(shù)據(jù)集群,那么可以把這個(gè)計(jì)算放到云服務(wù)商搭建好的hadoop或者spark集群上面去算,計(jì)算結(jié)果包裝成服務(wù)給企業(yè)用。而人工智能,一般需要大量的基礎(chǔ)鋪底數(shù)據(jù)進(jìn)行訓(xùn)練,中小型企業(yè)也沒(méi)有這些數(shù)據(jù),但是云服務(wù)商有,于是也可以包裝成服務(wù)去賣(mài)。比如人臉識(shí)別算法,即使廠商給你部署了一套環(huán)境,你也用不起來(lái),因?yàn)槟銢](méi)有數(shù)據(jù)。而我們可以調(diào)用云服務(wù)商的api,直接進(jìn)行人臉識(shí)別。而且前面說(shuō)了,云計(jì)算的一個(gè)特點(diǎn)是按需付費(fèi),在前期業(yè)務(wù)量不是很大的情況下,企業(yè)就不需要去買(mǎi)一套完整的人臉識(shí)別產(chǎn)品,只需要按照api的調(diào)用次數(shù)付費(fèi),成本也大大下降了。所以說(shuō),一般云計(jì)算平臺(tái)上,都會(huì)有大數(shù)據(jù)和人工智能的相關(guān)產(chǎn)品,他們的關(guān)系是很緊密的,也是能充分發(fā)揮出云計(jì)算廠商優(yōu)勢(shì)的地方。

說(shuō)到這里,云計(jì)算的三兄弟IaaS、PaaS和SaaS終于湊齊了。相信通過(guò)上面的介紹,你也了解了,不管是哪種aaS,都是面向企業(yè)用戶(hù)的,和終端用戶(hù)(個(gè)人)沾不上邊。云計(jì)算本質(zhì)上來(lái)說(shuō)提供了企業(yè)IT資源彈性管理和應(yīng)用開(kāi)發(fā)、部署、運(yùn)維的一種全新模式?,F(xiàn)在市面上充斥的諸如醫(yī)療云、市民云等等xx云,如果是給最終用戶(hù)提供服務(wù)的話,我認(rèn)為本質(zhì)上與普通的互聯(lián)網(wǎng)應(yīng)用無(wú)異,純粹是搭云計(jì)算的熱度炒作,和云計(jì)算本身搭不上邊,你把它換成醫(yī)療平臺(tái)、市民平臺(tái)是一樣的。

云計(jì)算的分類(lèi)

公有云

云計(jì)算最早的形式就是公有云,公有云也最符合谷歌最初提出的云計(jì)算模型。公有云部署在公網(wǎng)上,客戶(hù)通過(guò)云平臺(tái)按需申請(qǐng)資源,使用資源,一般面向的客戶(hù)是中小型企業(yè)。目前公有云,國(guó)際上來(lái)說(shuō),亞馬遜aws,微軟azure,谷歌gcp,ibm的ibm cloud并稱(chēng)四大巨頭,國(guó)內(nèi)的話是阿里云、華為云、騰訊云構(gòu)成頭部企業(yè),一般只有大廠有實(shí)力去做公有云(一般公有云節(jié)點(diǎn)都會(huì)達(dá)到幾十萬(wàn)甚至上百萬(wàn),全球部署幾十個(gè)可用區(qū)),而且這塊的市場(chǎng)現(xiàn)在瓜分得已經(jīng)差不多,新玩家也很難入場(chǎng)。公有云一般提供的功能比較完整,迭代速度也很快,云計(jì)算廠商最新的技術(shù)都會(huì)優(yōu)先放到公有云上。

私有云

公有云有很多優(yōu)點(diǎn),尤其適合初創(chuàng)型企業(yè),可以快速構(gòu)建完整、可靠的基礎(chǔ)設(shè)施,節(jié)省了大量建設(shè)成本。但是就像《人月神話》里面所說(shuō),“沒(méi)有銀彈”,公有云不能解決所有問(wèn)題,尤其在企業(yè)規(guī)模變大后,企業(yè)更加傾向于自建數(shù)據(jù)中心,一方面是數(shù)據(jù)安全性的考慮,另一方面也可以對(duì)于IT架構(gòu)的規(guī)劃有更強(qiáng)的自主性。公有云的提供商一般不是中立的,本身也在經(jīng)營(yíng)很多業(yè)務(wù),有些領(lǐng)域甚至有競(jìng)爭(zhēng)關(guān)系,一旦做大后,你就很難去用這些公有云了。你無(wú)法想象京東會(huì)把所有服務(wù)托管在阿里云上,也無(wú)法想象支付寶會(huì)把業(yè)務(wù)托管在騰訊云上。這時(shí)候,企業(yè)就有建設(shè)私有云的需求。

而如果跳出互聯(lián)網(wǎng)這個(gè)圈子,私有云這種模式,更對(duì)傳統(tǒng)企業(yè)的胃口。對(duì)于傳統(tǒng)企業(yè),我總結(jié)了下,稱(chēng)之為“三有三無(wú)”。有錢(qián)(一般都是行業(yè)巨頭不差錢(qián)),有資源(機(jī)房和服務(wù)器),有人(運(yùn)維人員),無(wú)技術(shù)(云計(jì)算技術(shù)),無(wú)流程(devops),無(wú)理念(云原生思想)。企業(yè)想上云而不得法門(mén),市場(chǎng)就是這樣的,有需求自然就會(huì)產(chǎn)生供給,各類(lèi)私有云公司順勢(shì)而生。做私有云的公司很多,有多少?可以去看一下CNCF的官方網(wǎng)站,底下白銀會(huì)員的位置,一堆xx云,xx cloud公司(國(guó)內(nèi)的大概占了一半,你就知道云計(jì)算在中國(guó)多火了),基本都是這種模式,這些公司早先靠給大企業(yè)部署運(yùn)維私有化的openstack起家,這些年docker火了之后,基本都轉(zhuǎn)型做基于kubernetes的容器云了。而這些公司,一般都是輕資產(chǎn)公司,本身不會(huì)也無(wú)能力去運(yùn)行大規(guī)模的服務(wù)器集群,他們一般給企業(yè)做流程咨詢(xún),賣(mài)自己開(kāi)發(fā)的基于開(kāi)源技術(shù)的云管產(chǎn)品,幫助那些傳統(tǒng)企業(yè)建立敏捷流程,將基礎(chǔ)設(shè)施進(jìn)行云化改造,并提供基于openstack或者kubernetes的技術(shù)支持。這和傳統(tǒng)企業(yè)的需求一拍即合,現(xiàn)在有越來(lái)越多的傳統(tǒng)企業(yè)在進(jìn)行數(shù)字化轉(zhuǎn)型,所以這塊的市場(chǎng)也是越來(lái)越火,傳統(tǒng)的公有云巨頭也在慢慢切入這個(gè)市場(chǎng)。但是一旦實(shí)施了私有云,考慮到企業(yè)的私有化數(shù)據(jù)中心規(guī)模是相對(duì)固定的,云計(jì)算的一個(gè)巨大優(yōu)勢(shì)彈性便幾乎損失殆盡了。

混合云

公有云和私有云都各有利弊,所以現(xiàn)在的技術(shù)趨勢(shì)就是兩種云的混合使用,稱(chēng)之為混合云。一般傾向于核心業(yè)務(wù),不太變更的服務(wù)(穩(wěn)態(tài))放私有云,互聯(lián)網(wǎng)業(yè)務(wù)、需要承載大并發(fā)量的業(yè)務(wù)(敏態(tài))放公有云,這樣混合使用,既保證了核心業(yè)務(wù)數(shù)據(jù)的安全性,也充分利用了云計(jì)算的彈性資源這一巨大優(yōu)勢(shì),可以說(shuō)是取兩家所長(zhǎng)。著名的12306就是典型的混合云架構(gòu),占巨大流量和計(jì)算資源的余票查詢(xún)服務(wù)部署在阿里云上,而核心的購(gòu)票服務(wù)部署在私有云上,這是一個(gè)結(jié)結(jié)實(shí)實(shí)利用云計(jì)算彈性的絕好實(shí)例。目前混合云的實(shí)施落地占比在逐年穩(wěn)步提升,也反映了市場(chǎng)的取向。

云計(jì)算的演化路徑

這個(gè)題目比較大,自己嘗試著說(shuō)一下。大家都知道云計(jì)算的概念是在2006年提出,距今也有10多年了,在這些年里云計(jì)算的市場(chǎng)發(fā)生了巨大的變化,云計(jì)算也從一個(gè)虛無(wú)縹緲的理念演變成了你手中實(shí)實(shí)在在的賬單。在這段發(fā)展過(guò)程中,我想分幾個(gè)階段來(lái)說(shuō)。

PaaS

如果要我用一句話形容PaaS,就是“出師未捷身先死”,還沒(méi)火起來(lái)就被docker干掉了。就像我之前說(shuō)的,在2013年左右,cloud foundry已經(jīng)幾乎成了開(kāi)源PaaS平臺(tái)的事實(shí)標(biāo)準(zhǔn),眼看能一統(tǒng)天下。這邊我先說(shuō)說(shuō),PaaS項(xiàng)目被大家接受的一個(gè)主要原因,就是它提供了一種名叫應(yīng)用托管的能力。傳統(tǒng)的基于aws或者openstack的虛擬機(jī),你要部署一批應(yīng)用,就需要寫(xiě)腳本或者用手工的方式,而這個(gè)部署過(guò)程難免會(huì)碰到云端虛擬機(jī)和本地環(huán)境不一致的問(wèn)題,而PaaS項(xiàng)目恰好就是為了解決這個(gè)問(wèn)題的,cf在虛擬機(jī)上啟動(dòng)應(yīng)用時(shí),會(huì)使用內(nèi)核的cgroups和namespace機(jī)制為每個(gè)應(yīng)用單獨(dú)創(chuàng)建一個(gè)“沙盒”的隔離環(huán)境,在“沙盒”中啟動(dòng)進(jìn)程,這就是PaaS項(xiàng)目最核心的能力--環(huán)境隔離,各個(gè)用戶(hù)開(kāi)發(fā)的應(yīng)用跑在獨(dú)立的沙盒里面,以此保證你本地和云端的開(kāi)發(fā)及運(yùn)行體驗(yàn)是一致的。

Docker

看了上面的介紹,你不難發(fā)現(xiàn),這個(gè)所謂的“沙盒”,就是容器嘛!并沒(méi)有什么特別的高深的技術(shù),而docker,也無(wú)非就是容器技術(shù)的一種,本質(zhì)上和cf用的容器技術(shù)沒(méi)有太多的區(qū)別(cf用的容器技術(shù)叫做warden)。Docker能火的真正原因,是它提供了容器鏡像,這一個(gè)創(chuàng)造性的發(fā)明,一下子打通了開(kāi)發(fā)、測(cè)試、生產(chǎn)等等所有環(huán)境,通過(guò)模版化的環(huán)境申明,保證了一個(gè)鏡像,不管在哪里運(yùn)行,效果都是一致的,這對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)吸引力太大了。docker憑借這一發(fā)明,瞬間完成了對(duì)PaaS平臺(tái)的絕殺。

Kubernetes

docker通過(guò)容器鏡像,解決了環(huán)境標(biāo)準(zhǔn)化的問(wèn)題,但對(duì)于云上的應(yīng)用來(lái)說(shuō),還是必須要解決應(yīng)用如何部署的問(wèn)題,于是人們發(fā)現(xiàn),兜兜轉(zhuǎn)轉(zhuǎn)之后,其實(shí)現(xiàn)在又回到了PaaS深耕多年的領(lǐng)域--應(yīng)用的打包和分發(fā)。怎么把docker容器部署在不同的節(jié)點(diǎn)上,整個(gè)集群如何去調(diào)度容器,現(xiàn)在有了一個(gè)新的名詞-容器編排。關(guān)于容器編排之爭(zhēng),又可以寫(xiě)一大篇,這邊就不展開(kāi)了,總之競(jìng)爭(zhēng)也是非常慘烈,最后kubernetes殺出重圍,目前已經(jīng)成為了容器編排的事實(shí)標(biāo)準(zhǔn)。

關(guān)于kubernetes,本身也是一個(gè)比較奇葩的所在。深入了解之后,你會(huì)發(fā)現(xiàn)它不僅僅只是一個(gè)容器編排工具(swarm真的就只是一個(gè)容器編排工具)。它做了一部分的IaaS的事情(計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源的管理,根據(jù)namespace進(jìn)行的多租戶(hù)管理),一部分PaaS的事情(應(yīng)用的自動(dòng)部署、調(diào)度、回滾),甚至還有一部分微服務(wù)架構(gòu)要做的事情(服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、網(wǎng)關(guān),如果再配合istio那基本是全功能型了)。K8所承載的功能,介于IaaS和PaaS之間,我更愿意稱(chēng)之為IaaS+。K8的出現(xiàn)是劃時(shí)代的,對(duì)于規(guī)模在800個(gè)節(jié)點(diǎn)以下的中小型集群,甚至都不需要傳統(tǒng)的IaaS基礎(chǔ)設(shè)施,全部交給k8接管,這也是現(xiàn)在比較流行的所謂“裸金屬云”。

從云到容器云

傳統(tǒng)的云計(jì)算是基于虛擬化技術(shù)來(lái)進(jìn)行資源調(diào)度的,而現(xiàn)在的技術(shù)趨勢(shì),是基于容器來(lái)進(jìn)行資源調(diào)度,顆粒度更?。ㄟM(jìn)程級(jí)別),與應(yīng)用的結(jié)合更加緊密。從云到容器云,我形容是云計(jì)算從1.0到2.0的升級(jí)演化,從市場(chǎng)表現(xiàn)來(lái)看,這種升級(jí)是得到市場(chǎng)認(rèn)可的,目前那些私有云公司,紛紛從openstack轉(zhuǎn)kubernetes,也能看出這種技術(shù)演變的趨勢(shì)。docker干掉了PaaS,kubernetes幾乎能干掉IaaS,基于docker+kubernetes的容器云解決方案已經(jīng)是目前云計(jì)算的主流方案,K8已經(jīng)模糊了IaaS和PaaS的邊界,以后IaaS、PaaS這類(lèi)名詞可能會(huì)越來(lái)越少的提及。(當(dāng)然超大規(guī)模的服務(wù)器節(jié)點(diǎn)管理,IaaS還是必不可少的,只是重要性沒(méi)有以前那么高了)

云原生

了解了上述理念,是時(shí)候來(lái)談?wù)勗圃?,什么是云原生?按照CNCF組織的官方定義,云原生技術(shù)幫助公司和機(jī)構(gòu)在公有云、私有云和混合云等新型動(dòng)態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。云原生的代表技術(shù)包括容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API。這是比較官方的說(shuō)法,說(shuō)白話的話就是云原生應(yīng)用就是匹配云計(jì)算基礎(chǔ)設(shè)施的應(yīng)用開(kāi)發(fā)及管理的模式,這些應(yīng)用開(kāi)發(fā)出來(lái)天生就是適合跑在云里的,或者說(shuō)沒(méi)有云是跑不起來(lái)的。注意這邊提到的這朵“云”,絕非傳統(tǒng)意義的“云”(虛擬化云),而是“容器云”,更明確的說(shuō),是基于kubernetes的云(至于為什么是k8,你看看cncf都是誰(shuí)在搞就知道了)。所以說(shuō),如果你還沒(méi)上k8,那對(duì)不起了,云原生的應(yīng)用生態(tài)你享受不到了,谷歌爸爸不帶你玩了,上了k8,你就算在云原生里入門(mén)了(不得不說(shuō)谷歌的生態(tài)建設(shè)能力太牛)。

cloud native.png

從業(yè)界的最佳實(shí)踐來(lái)講,云原生有一個(gè)所謂的黃金三角,即微服務(wù)+devops+容器化,微服務(wù)是優(yōu)化應(yīng)用架構(gòu),容器化是優(yōu)化IT基礎(chǔ)架構(gòu),devops是優(yōu)化企業(yè)組織架構(gòu)及項(xiàng)目管理流程。傳統(tǒng)的IaaS、PaaS、SaaS是基于分層機(jī)制,自基礎(chǔ)設(shè)施慢慢上升到應(yīng)用這一層,而云原生從一開(kāi)始就把項(xiàng)目看成是一個(gè)整體,從項(xiàng)目立項(xiàng)就開(kāi)始切入,打通項(xiàng)目的設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署、運(yùn)維、監(jiān)控全流程,通過(guò)devops串起開(kāi)發(fā)(微服務(wù))和運(yùn)維(容器)更加緊密的合作,從理念上來(lái)說(shuō)我覺(jué)得更加先進(jìn)。關(guān)于云原生相關(guān)話題,下次有機(jī)會(huì)再展開(kāi)討論。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容