世界最大OpenStack私有云是如何運營的
現(xiàn)在國內(nèi)外都不乏大規(guī)模采用OpenStack構(gòu)建企業(yè)私有云的用戶,例如Best Buy, BMW, EBay, 和Walmart,盡管Forrester仍對OpenStack在企業(yè)中的應(yīng)用前景持懷疑態(tài)度。今天我們來學(xué)習(xí)一下PayPal是怎么做的,它擁有目前業(yè)界***OS私有云(10+可用區(qū)、40萬個Core、82000臺虛擬機)。
首先來看看PayPal做這件事的背景。eBay作為老牌的電子商務(wù)公司,曾經(jīng)和AOL、 Yahoo一樣是全球訪問量***的網(wǎng)站,但是最近幾年eBay發(fā)展緩慢,沒有抓住電商市場的迅速崛起的大好時機、被亞馬遜等后起之秀搶去了很大份額,龍頭地位不復(fù)存在。今年早些時候,為了不讓eBay繼續(xù)拖累PayPal的發(fā)展,股東們決定將PayPal分拆出來。
PayPal的IT部門任務(wù)艱巨,他們一方面要盡快把IT系統(tǒng)從eBay分離出來,另一方面還要準(zhǔn)備應(yīng)對假期消費高峰對系統(tǒng)造成的壓力,留給他們的只有7個多月的時間(準(zhǔn)確地說,用6個月時間構(gòu)建新的IT環(huán)境,再用10周時間將業(yè)務(wù)從原有的IT環(huán)境中遷移過來)。
一、構(gòu)建篇
在構(gòu)建方面,PayPal的工程師最關(guān)心擴展性和可用性,具體涉及以下幾個方面:
- 首先是可用性,基于Nova的Cell來實現(xiàn)IT服務(wù)的可用性。
- 其次是棄用那些過時的工具,以負(fù)載均衡為例,eBay和PayPal花了幾年時間試圖自己開發(fā)工具以實現(xiàn)LBaaS,最終還是決定改用社區(qū)的功能組件,因為社區(qū)的組件更開放,合作伙伴更容易在上面開發(fā)插件。
- 在線升級和測試 這一功能對于平臺的健壯性和擴展性尤為重要,能夠在線升級,才能跟上社區(qū)發(fā)展的腳步。
- 實時容量擴展 PayPal的目標(biāo)是新機架到貨之后,只需要1-2天就可以完成部署并上線應(yīng)用。
二、遷移篇
相對于構(gòu)建一個新的系統(tǒng),將應(yīng)用和數(shù)據(jù)遷移到新的架構(gòu)則更具挑戰(zhàn),我們來看看這次遷移任務(wù)的細(xì)節(jié)和面對的挑戰(zhàn):
- 有限的工作人員;
- 超過8000臺機器;
- 2PB的公共數(shù)據(jù),以及大量存儲于虛擬機內(nèi)的本地數(shù)據(jù);
- 上述應(yīng)用和數(shù)據(jù)位于3個不同的地點;
- 通過遷移將可用性技術(shù)從Nova Availability Zone變更為Nova Cell Service以實現(xiàn)更好的可用性和擴展性;
- 變更防火墻配置,制定訪問規(guī)則;
- 檢驗并解決新硬件的兼容性問題,確保新系統(tǒng)的穩(wěn)定性。
下面是PayPal通過這一次遷移總結(jié)出的經(jīng)驗:
- 基礎(chǔ)架構(gòu)的可見性對保持配置一致性非常重要 如果你沒有一個關(guān)于基礎(chǔ)架構(gòu)的完整視圖,那將是致命的。比如你在部署應(yīng)用的過程中如果有虛擬機宕機了,等它重新恢復(fù)工作時,上面的應(yīng)用和配置將是不正確的。
- 不要指望所有的應(yīng)用和開發(fā)工作都能遷移到新的環(huán)境 必然會有無法遷移的部分,在云計算時代,少幾個虛擬機應(yīng)該不是什么大問題。
- 不要一開始就使用自動化配置工具 PayPal先用手工的方式完成5%-10%的配置工作,在確定一定正常之后才引入自動化的方法完成后緒的工作。
- 遷移API服務(wù)的時候要萬分小心 很多自動化操作基于這些API完成,因此你不能隨便停止這些API服務(wù),選擇關(guān)鍵操作的執(zhí)行間隙來遷移服務(wù),并且不要指望在一個時間窗口內(nèi)遷移所有API服務(wù)。
- 要清楚你遷移的是什么 不要為了節(jié)省時間而停止你的生產(chǎn)API或?qū)嵗奶揑P,那樣會增加風(fēng)險。
- 切記,如果遇到問題,你不一定可以回滾配置。
補充說明一下這個Cell,它是用來替代原來的Zone以更好地解決OpenStack的擴展性問題,這部分內(nèi)容OS借鑒了AWS的做法。一個OS云首先分為多個Region,不同的Region通常需要不同的地域,多個Region之間只有 KeyStone和Horizon服務(wù)是共享的,因此Region可以用來實現(xiàn)隔離和優(yōu)化訪問。Region的下一級就是Cell,每個Cell都有一套獨立的數(shù)據(jù)庫和消息隊列服務(wù),另外Cell是樹形結(jié)構(gòu),只有樹根Cell有Nova-API服務(wù),因此也被稱為API-Cell。其它的子Cell都共享這個Nova-API服務(wù),而Nova的其它服務(wù)則分布于每一個Cell,子Cell也稱計算Cell。
PayPal提到Cell這個組件目前功能還不完整,在數(shù)據(jù)同步方面還有一些不足,但是因為擴展性和可用性需要,PayPal必須用Cell來代替原有的Zone。
三、工具篇
PayPal使用了一些開源工具:
- Graphite用于繪圖
- Puppet和Salt用于配置管理
- Zabbix用于監(jiān)視
- Cobbler用于裸機部署
另外PayPal自己開發(fā)了一個名為Flyway的遷移工具,用于從eBay云向PayPal云遷移幾千臺虛擬機和相關(guān)資源。它負(fù)責(zé)完成下述資源的遷移工作:
- Nova虛擬機
- 用戶、租戶、角色、密鑰對和限額
- 鏡像和快照
- Cinder卷和數(shù)據(jù)
- Trove數(shù)據(jù)庫實例
- LBaaS VIP實例和證書
PayPal計劃將這一工具開源到GitHub。此外,PayPal還開發(fā)了其它一些遷移輔助工具:
- Stackwatch/Stackmetrics用于健康檢查和度量
- Reparo用于服務(wù)器修復(fù)和置備,也負(fù)責(zé)硬件監(jiān)測和補丁管理
- Cloudinfo用于云的可見性,將各種視圖和相關(guān)數(shù)據(jù)匯總到一起,也提供Metric視圖。
- CloudMinion用于資源回收 通過掃描網(wǎng)絡(luò)流量發(fā)現(xiàn)閑置虛擬機,管理過期時間,發(fā)送告警,自動回收資源并提供報告。
- CMS 用做中央配置數(shù)據(jù)庫,集中存儲和管理物理和虛擬組件,基礎(chǔ)架構(gòu)和應(yīng)用等所有資源的信息,并可以呈現(xiàn)這些資源之間的關(guān)系。
四、未來篇
- 采用Masterless Puppet構(gòu)建更具擴展性和可用性的配置管理方案,消除單一故障點。
- Infra AZ項目:通過OpenStack來部署OpenStack,開發(fā)更好的控制平面,提高容量擴展速度,實現(xiàn)一鍵擴容。
- 從H版直接升級到Kilo版,數(shù)據(jù)平面不能停,控制平臺只有幾個小時的窗口,部分網(wǎng)絡(luò)需要從Nova-Network升級到Neutron。
五、西蒙亂談
- 采用開源技術(shù)要跟對主流,社區(qū)是靠一個龐大的群體來支持的,你對社區(qū)產(chǎn)品的增強只能是錦上添花,如果那塊繡布爛掉了,你的手藝再好也是白搭。
- OpenStack成長很快,正在不斷完善,可堪大用,但因為它的定位只是一個框架,需要與大量的相關(guān)組件進(jìn)行集成才能落地,因此采用社區(qū)版本自主開發(fā)云平臺并不容易,你需要組建一個與社區(qū)聯(lián)系緊密的專家團隊。
- OS在監(jiān)控和運維管理方面相對薄弱,還有很多不足,PayPal在這方面花的功夫最多,如果不能很好地解決這一問題,就不要大規(guī)模采用OS,否則你會把自己拖死。
- 網(wǎng)絡(luò)也是OpenStack短板之一,PayPal采用Neutron加上NSX來滿足業(yè)務(wù)對網(wǎng)絡(luò)服務(wù)的需求。
【本文來源:瘋云時代微信公眾號】