這個(gè)話題是我一直想寫的內(nèi)容祈匙,畢竟里面包含了我一部分青春在里面,還是要簡(jiǎn)單紀(jì)念一下的鲜侥。由于云服務(wù)的技術(shù)發(fā)展實(shí)在是太快褂始,所以要寫完所有自己接觸過的相關(guān)內(nèi)容單靠1,2篇文章描函,會(huì)顯得篇幅過長(zhǎng)了崎苗,所以準(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í)際使用場(chǎng)景中,我們使用虛擬化技術(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