
這個(gè)話題是我一直想寫的內(nèi)容,畢竟里面包含了我一部分青春在里面,還是要簡單紀(jì)念一下的。由于云服務(wù)的技術(shù)發(fā)展實(shí)在是太快,所以要寫完所有自己接觸過的相關(guān)內(nèi)容單靠1,2篇文章,會(huì)顯得篇幅過長了,所以準(zhǔn)備依靠一個(gè)系列來完成所有內(nèi)容。
與云服務(wù)結(jié)緣
在2012年開始,我開始和團(tuán)隊(duì)搭建ECG自己的Selenium Grid的集群(這里面也可以寫蠻多內(nèi)容的,我自己用Perl做的第一個(gè)實(shí)際項(xiàng)目,未來有機(jī)會(huì)介紹給大家),最先我們是采用的VMware workstation來生成和管理我們的VM,當(dāng)時(shí)機(jī)房在歐洲的Amsterdam, 坦白的說,用起來還是不錯(cuò)的。不過呢,隨著我們有更多的美洲項(xiàng)目,在歐洲機(jī)房來跑服務(wù),速度上有一些力不從心了。所以開始準(zhǔn)備找新的解決方案。
13年的時(shí)候 ,云計(jì)算其實(shí)已經(jīng)非常火了,正在不斷地改變傳統(tǒng)IDC的結(jié)構(gòu),逐步取代以昂貴硬件為中心的數(shù)據(jù)中心,重新定義了計(jì)算、存儲(chǔ)以及網(wǎng)絡(luò)。我也開始試用一些AWS的公有云服務(wù)(盡管在國內(nèi)用得并不方便),將自己的一些應(yīng)用服務(wù)放在上面,甚至我們也在利用AWS提供的服務(wù)來做持續(xù)集成發(fā)布。不得不說,云服務(wù)尤其是IaaS層,AWS是最領(lǐng)先的,基本已經(jīng)成為了行業(yè)的標(biāo)準(zhǔn),所以國內(nèi)的很多云產(chǎn)商都是從“模仿”AWS開始的。但AWS畢竟是公有云,即便AWS技術(shù)先進(jìn),但并不開源,只能用它的服務(wù),不能構(gòu)建自己的私有云。所以對(duì)于一些大公司而言,考慮安全性,他們更愿意建設(shè)自己的私有云,把東西放在自己的硬件上,使用自己的私有網(wǎng)絡(luò)。
進(jìn)入OpenStack
之前不是說,AWS不開源嗎?這可好,Open Stack就是模仿AWS做出的一套開源架構(gòu),正如當(dāng)年Google的三駕馬車 GFS, MapReduce, Bigtable, 對(duì)應(yīng)開源社區(qū)做出了hdfs, Hadoop和HBase的感覺。
Open Stack通過將異構(gòu)的物理資源抽象成統(tǒng)一的虛擬資源池,然后根據(jù)用戶的需求再進(jìn)行靈活的虛擬資源分配,為用戶提供虛擬資源服務(wù),即提供IaaS服務(wù),其目的是為了提高資源利用率。其底層的核心技術(shù)有:虛擬化技術(shù),實(shí)現(xiàn)資源抽象;資源動(dòng)態(tài)調(diào)度技術(shù),高效分配虛擬資源;高速網(wǎng)絡(luò)通信技術(shù),實(shí)現(xiàn)用戶與云平臺(tái)的順暢交互;安全技術(shù)。
Openstack的出現(xiàn),終于讓我們看到了曙光,有一個(gè)開源的云基礎(chǔ)資源管理平臺(tái)項(xiàng)目,各家企業(yè)能夠利用Openstack快速構(gòu)建自己的私有云, 那時(shí)候,各大私有云廠商都會(huì)考慮Openstack,比如國內(nèi)的華為,為OpenStack還是貢獻(xiàn)了很多很多代碼的,正是越來越多的企業(yè)客戶對(duì)私有云的需求,推進(jìn)了Open Stack社區(qū)的發(fā)展。
作為互聯(lián)網(wǎng)的元老企業(yè),eBay在這一塊還是肯投入的,所以基本從13年開始,內(nèi)部已經(jīng)在推Open Stack了,也逐步推出了自身的基于Open Stack的私有云服務(wù)。也利用這個(gè)機(jī)會(huì),結(jié)識(shí)了一些eBay當(dāng)時(shí)做OpenStack的牛人們。 記得內(nèi)部推出私有云后,我們也將Selenium Grid集群搬到上面來,雖然過程中也有很多坑,但是解決了我前面提到的地域訪問問題,畢竟機(jī)器在美國,還是比從歐洲走快不少的。
Open Stack目前的問題
雖然我前面花了幾大段吹了吹Open Stack,但是實(shí)際上如果要將Open Stack搬進(jìn)來自己玩,放在生產(chǎn)環(huán)境上用,還是有很多技術(shù)挑戰(zhàn)要解決的,比如高可用CAP方案,系統(tǒng)監(jiān)控,故障隔離,快速部署等等,這些都沒有現(xiàn)成的方案,需要自己二次開發(fā)使用。
下集預(yù)告
Open Stack解決了基于虛擬機(jī)的虛擬化,但在實(shí)際使用場景中,我們使用虛擬化技術(shù)其實(shí)是為了按需分配資源來完成服務(wù)的部署和使用,同時(shí)對(duì)服務(wù)所依賴的環(huán)境進(jìn)行隔離,不被其它服務(wù)感知或干擾。為什么不考慮讓多個(gè)虛擬機(jī)公用一個(gè)操作系統(tǒng)內(nèi)核,只隔離開服務(wù)運(yùn)行環(huán)境同時(shí)控制服務(wù)使用的系統(tǒng)資源呢?基于容器的虛擬化就是這樣一種技術(shù),所以在下一篇,我會(huì)來和大家聊聊這塊技術(shù)實(shí)現(xiàn)的代表- Docker。
掃描二維碼或手動(dòng)搜索微信公眾號(hào)【架構(gòu)?!浚?ForestNotes