OPENSTACK如何套牢雅虎400萬核伺服器

作者:Timothy Prickett Morgan 譯:李昊陽

OPENSTACK如何套牢雅虎400万核服务器

原文鏈接:https://www.nextplatform.com/2018/09/26/how-openstack-lassoes-yahoos-4-million-server-cores/

做為全球首批超大規模數據中心用戶之一,隸屬於Oath集團的一部分,該集團也包括了AOL,並且由電信巨頭Verizon所擁有,雅虎知道在極端規模下運行應用程序這件事意味著什麼,甚至更多。在過往的時期,這些都是依靠手工完成的,但時至今日,Oath的大部分服務器基礎設施都安置在了OpenStack集群中,這些集群徹底改變了大容量服務器的部署和使用方式。

雅虎以其在線門戶網站,搜索引擎和電子郵件服務而聞名 - 當然還有那個我們永遠不會用在它的名字拼寫中的感嘆號後綴,以及那個瘋狂的約德爾調- 然而它並沒有立竿見影得實現其服務器基礎設施的自動化。像許多其他公司一樣,雅虎也不得不經歷大量的即面向虛擬化又面向裸機的試驗和磨難,才達到能夠像輕鬆部署虛擬機一樣部署裸機的能力。

這讓雅虎耗費了一段時間來獲得基於虛擬化的可行性方案,即使在迄今仍依賴裸機服務器來承擔大量工作負載的公司,這也是一個優先事項。

雅虎的開端與谷歌2005年所做的大致相同,最初做了一些關於chroot jails的實驗 - 一種早期的Linux容器虛擬化。然後,雅虎使用VMware的ESXi虛擬機管理程序和Citrix Systems的Xen虛擬機管理程序進行了一些進一步的實驗和部署,但仍然不滿意。再這之後,雅虎搭建了Odin,一個集群控制器,它構建在Red Hat的KVM管理程序之下,並且被捆綁在一個自行研發的硬件採購系統中,可以完成所需的大部分工作。但雅虎希望從事媒體業務,而不是軟件開發業務,就像它已經取代了自行研發的MObStor / DORA對象存儲一樣,該對象存儲使用開源的Ceph對象存儲來支持它的許多服務。雅虎看到了OpenStack背後的勢頭,並在六年前做了一項承諾,在OpenStack平臺之上構建雲。

雅虎長久以來試圖解決的問題不僅僅是一項技術問題,而是文化和商業實踐問題。雅虎的所有不同部門 - 在公司內部稱為“資產” - 都有自己獨特的基礎設施,並且它們都是獨特的運營著。但每個人都知道,所有東西都需要像雲一樣運行,一種集中的共享資源的方式。為了實現這一目標,雅虎不僅深度挖掘進入OpenStack雲控制器的代碼,同時還徹底剔除了原有網絡,使其能夠支持一種新型的共享數據中心規模的計算環境,這個計算環境被雅虎的所有的“資產”部門所共享。

為了瞭解雅虎雲計算演進的內幕,The Next Platform與Oath的架構總監James Penick進行了交談,James參與繪製了雅虎整合裸機和虛擬化雲的道路。

Timothy Prickett Morgan: 在您決定採用OpenStack之前,管理雅虎的基礎設施是一種什麼感覺?您從這一轉型中獲得了什麼?

James Penick:這實際上是一個很好的問題,它給你的是整個組織更廣泛的一致性。

我們曾經有過一些零散的計算資源的“小水坑”,這是基於老式的網絡設計實現的。因此,作為一家公司,我們做出了一系列的決定。我們選擇對我們的網絡基礎設施進行現代化改造,我們的網絡架構師提出了一種新型多層的由Leaf和Spine層構成的Clos拓撲架構,這是一個層3網絡環境,我們決定轉向使用它。這意味著作為一家公司,我們必須擺脫一些舊的假設。我們的應用程序依賴於多播這樣的層2網絡構造,但在這個新的網絡環境中我們不能再有它了。

有了這些層3網絡環境,我們就可以建立一個能夠為我們提供大型“湖泊”的網絡骨幹網,然後通過這樣做,通過推動我們的應用程序使用層3網絡環境,我們現在能夠採取下一步,在所有這些網絡骨幹網中預先分配計算硬件。不再像從前的那些“小水坑”,我們現在有了一個巨大的“湖泊”,我們可以在那裡存放數千臺機器。然後,如果一個公司內部的“資產”部門過來說它需要十臺或一百臺機器,我們只需要將需求發送到統一的門戶平臺即可獲得配額。

最重要的是,在過去,可能需要數月才能獲得硬件資源分配,現在我們將其改變為數分鐘內,這是一個巨大的文化變革。

我正在使這種文化變革發揚光大。我們必須與我們的“資產”部門合作,幫助他們瞭解我們在做什麼,為什麼要這樣做,以及從長遠來看它將如何使他們受益。我們必須與我們的供應鏈組織合作並改變他們開展業務的方式,因為這不再是一個完全需求驅動的模型,我們在這個舊有模型中指定硬件並交付它,而是我們創建了十種類型的硬件配置列表,這是我們的標準並且幾乎涵蓋了所有用例。我們必須根據我們的預測提前購買這些產品。因此,供應鏈團隊瞭解公司的這些“資產”部門需要什麼以及他們的應用程序和用戶如何增長,因此當“資產”部門實際需要時,他們會按需提供。

我們發現了一件清晰的事。如果你與公司談論基礎設施,你將聽到有關囤積的表訴。各個部門獲得硬件,並且硬件也非常容易獲得,所以他們就一直堅持這個策略。然後他們就開始討價還價了,因為他們害怕一旦放棄了這些硬件,他們就會永遠失去它。可是,當人們發現他們可以通過OpenStack獲得服務器配額時,我們很快發現他們希望能夠有返還這些配額的功能實現,這讓我感到震驚。我們沒有優先考慮將這項功能在門戶平臺上的實現,因為我們認為這需要一段時間才能讓人們意識到他們需要這個功能。但很快人們就想擺脫OpenStack獲得的舊硬件。實際上,我們可以看到精簡供應鏈流程,管理服務器資源以及培育靈活性的好處。

這並不是說管理裸機就沒有挑戰。

TPM:虛擬化了多少,裸機佔了多少?

James Penick:我們的大部分基礎設施都是裸機,我們正在努力改變這種狀況,但進展緩慢。我們的裸機節點數量已經在下降 - 現在是220,000但過去接近於300,000。我意識到,這個原因是由於很多應用程序都被虛擬化了。大多數計算資源仍然是裸機 - 大概60%到70%的服務器資源是裸機,剩下的就是使用KVM管理程序進行的虛擬化資源。總共大約是400萬核的服務器。

TPM:所有的這些基礎設施是如何擴展的?您的管理域大小是多少,集群爆炸區域是什麼?將一個OpenStack集群堆在一起相對容易,但是很難管理許多個OpenStack集群。

James Penick:我們有八個大型數據中心,每個數據中心都有自己的OpenStack裸機集群,我們正在努力實現通過它們管理遠程數據中心。因此,例如,我們在新加坡有一個數據中心,我們在越南有一個遠程邊緣站點,新加坡的站點將管理外部計算資源。

對於虛擬機,我將分開來講,描述一下我們的四種環境。首先,我們有預備好了的虛擬機和裸機,您可以從資源池那裡選擇配置並啟動實例。

我們還有另外一個叫做OpenHouse的環境,我認為這是使我們的環境可以被OpenStack管理的一個非常重要的部分。我們創建了這些OpenHouse集群,其中有四個,一個在美國西海岸,一個在美國東海岸,一個在亞洲,一個在歐洲。澳大利亞也有一個集群,但是有點不同。基於OpenHouse環境,租戶就變成了基於用戶,而不是“資產”部門,和公司中的每個人,無論工作角色如何,都被授權在這些OpenHouse集群上最多使用五個計算資源。我們這樣做的原因之一是我們想要推動和培養敏捷性和創新能力。我們想要一個工程師可以快速啟動計算資源做為嘗試他們的想法的地方,如果它有效,那麼他們就可以將其移動到預備好的虛擬機中。

這是主要目的。但它也是我們將OpenStack API放在用戶面前的方式,也就是他們控制計算資源的方式。它幫助人們感到適應一件事,就是沒有實際的團隊在為他們創建基礎設施。另一件事是,我們永遠不會為任何人增加OpenHouse的配額。這有助於幫助人們瞭解計算資源是一次性的,並且你不需要手動調整以用於永久保存 - 而且他們也不能將OpenHouse用於產品化負載。我們非常堅定地遵守這些規則。

TPM:針對容器,你做了什麼?Oath不像一些大型企業,在那些企業裡可能沒有成千上萬的應用程序,儘管它確實在數十到數百個應用程序上有大規模的擴展需求。我認為裸機上的容器是未來的,一旦容器的安全問題得到解決,虛擬機最終將逐步淘汰。

James Penick:作為一個組織,容器是臨時完成的。一個組織有一個他們使用Docker容器構建的容器管理系統,除此之外,公司中有另一個團隊已經生成了Kubernetes棧和一個如何管理這些容器的參考架構,其他團隊仍然負責自己創建Kubernetes集群和控制平面。

你提出了這個有趣的觀點,人們說虛擬機在容器方面存在不必要的複雜,容器要簡單得多。有一種直覺是認為虛擬機的開銷比它們實現的功能要多。事實上,一個非常常見的設計模式是為了進程隔離而將容器放在虛擬機中,以增加安全層面的考慮。這將是另一種解決容器安全問題的方法出現前的設計模式。

TPM:OpenStack環境將如何隨時間發生變化?您的環境在OpenStack上的百分比是多少?

James Penick:我們現在沒有用OpenStack管理所有的東西,原因是我們正在增強管理遠程站點的能力,對於其中一些站點,我們一直在推遲到這些功能實現為止。我們還在等待添加與Affinity和Non-Affinity相關的功能 - 例如啟動計算資源,並確保它們都在同一個機架中或分散在不同的機架中,視情況而定。我們也在等待能夠啟動一個支持自定義硬盤佈局的裸機實例。有了這些即將部署的功能,我們期待在2019年第二季度末之前實現百分之百的OpenStack環境。

TPM:您如何保障OpenStack環境?

James Penick:我們在這裡做了一些非常有趣的工作,創建一個名為Athens的工具,這個工具是我們已經開源了的認證和授權系統。我們已經能夠使用它來推動一種獨特的服務標識概念,我們正在將全公司轉向使用它,以便我們所有的計算資源都是安全的。

現在,在Oath的OpenStack上啟動計算資源,並讓它們以X.509證書的形式提供唯一標識,是可行的。該證書包含許多內容,包括一個服務標識字符串。這意味著如果使用此安全系統啟動所有節點,您還可以使用Athens工具來定義策略並解決許多基礎架構特有的安全問題。

我們已經能夠解決如何啟動一個實例,並賦予它一個機密信息,通過這樣,實例能夠標識出它是它所說的樣子。每個服務器都有一個由安全的信任根簽名的標識,您不必使用網絡控件來定義哪些應用程序可以相互通信。現在仍然是Athens工具的早期階段,我們還在讓每個人都參與進來。它實際上已經融入OpenHouse開發者環境中。

TPM:除了從採用OpenStack之前的幾個月或幾天到採用OpenStack之後變成了幾小時或幾分鐘部署服務器的時間之外,你如何衡量OpenStack部署的成功?

James Penick:通過OpenHouse,我們幾乎消除了開發者使用物理臺式機的局面。這些已經消失了,這對公司來說是一筆可觀的開銷節省。我認為,看到我們的物理機計算資源出現如此大幅下降也是一項重大改進。

TPM: 您的OpenStack集群在實現虛擬化時會繼續收縮,還是會穩定下來?

James Penick:我認為它最終會達到穩定水平。我認為我們的虛擬機環境會隨著時間的推移而增長,但我預計裸機環境再達到一定水平後不會再收縮,因為有些應用使用裸機會更有意義。可以改變嗎?有可能。

TPM:您可以在服務器內以及群集上的節點之間進行哪種利用?谷歌在集群上的利用率達到了50%,有時他們可以將其提高到65%,而在分析工作量上則高達80%。在虛擬化或容器化環境中提高利用率更容易,因為您可以在服務器上安排多個工作負載,然後根據需要在群集中以不同的比例對其進行群集。

James Penick:我們的整體平均峰值利用率在過去四年中肯定有所增加,對於虛擬化工作負載來說,它要高得多,而對於我們的分析工作負載,它與你上面所引用的數字非常相似,從50%到80%。未註冊大數據分析工作負載或未運行密集容器的裸金屬利用率會相對低一些。

TPM:Oath從哪裡獲得服務器,以及您維護多少種不同的配置?當您按比例運營時,您希望減少供應商數量和不同配置的數量,以獲得規模效益。很多超大規模的設備商在任何給定的時間內都可能有三到四個服務器設計用於工作,可能是六個,八個或十個不同的服務器設計在一組裡。

James Penick:我們與許多不同的供應商合作。至於不同的配置,情況是類似的。它實際上歸結為分析總體成本以及查看所有的用例,把它們整理起來,還有我們如何將它們縮小到特定範圍。根據不同的年份,我們有六到十個不同的配置。

TPM:這一切有多難?

James Penick:這並不容易。管理裸機是一項挑戰,因為你所正在嘗試做的 - 這是我們一直在改進的事情 - 是一件非常複雜的事:管理不同供應商的硬件,每項技術都有自己的缺點,並提供一個面向用戶保持一致性的環境,當他們要求計算資源時,它就會出現。改變整個公司的業務方式並不容易。這是非常困難的,但它也是非常有回報的。有時,我們必須回顧並記住我們所吸收的所有變化。

後記:

最近一段時間OpenStack行業的確有了不少傳聞,但是更多時候我們還是需要聽聽真實的客戶聲音。不僅如此,如果能夠親身參與其中,定能夠分辨出傳聞的真偽。

如今,OpenStack柏林秋季峰會報名活動正在火熱開啟中,登錄官網就可以享受999美元的早鳥註冊價。11月13-15日,德國柏林,屆時大嘴哥也將在現場全程進行直播,為大家帶來最新最快的OpenStack資訊。

有興趣的朋友可以點擊下面的鏈接或者直接“閱讀原文”,和我們一起來感受OpenStack的魅力吧。

https://www.openstack.org/summit/berlin-2018


分享到:


相關文章: