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