全文包括三部分:
需求 5 - 擴展、彈性和性能
企業級的內容很豐富。過去,企業級往往和高可靠、高擴展和高性能的高質量系統相關。漸漸地,企業級的含義開始演變為 ”雲級(coud-grade)“ 或者 ”網絡級規模(web-scale)“。我想表達的是,隨着 IT 時代向下一代應用演進,以及企業紛紛采用新的 IT 模型,交付一個高質量系統的需求也發生了很大的變化。
我喜歡的一個例子是 Hadoop。隨 Hadoop 而來的是它的一個參考架構,包括使用商用服務器、商用磁盤、不使用 RAID。上次你看到一個企業基礎架構方案沒有使用硬件級的數據保護還是什么時候呢?當然,盡管我也看到過,我們是沒有必要在連接光纖存儲網絡的高級刀片服務器上運行 Hadoop 的。甚至微軟 Exchange 也開始推薦從 RAID 向 JBOD 演進,他們轉而依賴應用軟件層去容錯。
我們來具體看看企業級 OpenStack 的三大需求。
擴展性和性能(Scalability & Performance)
擴展性是系統能夠滿足不斷增長的系統規模和負載需求的一個特性。性能是系統內單個資源而不是系統本身的吞吐量的維度。也許亞馬遜的CTO Werner Vogels 說的最好:
”當我們在系統中增加資源后,其性能會按照所增加資源的某種比例增加時,我們就可以說其服務是可擴展的。“
從多方面看,OpenStack 自身就是個高擴展性的系統。它被設計為松耦合、基於消息通信的架構 - 這些技術在已經在各種中級到高級擴展的系統中得到應用和驗證,它們也可以適應小規模的部署。問題在於當你配置和部署 OpenStack 時所做的設計上的決定。一部分默認的配置,以及許多廠商的插件和方案在設計時並沒有考慮擴展性。從前面的文章中你會了解到,一個參考架構對於部署混合雲是非常的關鍵。你需要確定的是,你所選擇的企業級產品的參考架構在選擇它的各種組件和配置項時就已經考慮到了擴展性和性能。
一個完整的規模和性能測試超出了了本文所討論的范疇;然而,我們需要注意到大多數用戶會碰到的頭號問題:網絡性能和擴展性。
OpenStack默認使用的網絡是個半成品(OpenStack Default Networking is a Bust OpenStack)
OpenStack 計算(Nova)有三種內在的默認網絡模型:flat,single_host 和 multi_host。這三種網絡模式對大多數企業來說都是無法接受的。除了這些默認的網絡模型,你還可以部署 OpenStack 網絡(Neutron),它使用一種高度插件式架構,支持若干不同的廠商插件去管理物理網絡設備以及網絡虛擬設備(所謂的軟件定義網絡 SDN)。
接下來我會依次介紹 Nova 默認的網絡模型。我會盡量地簡單,但是如果在將來有機會需要更詳細地闡述,我也會很樂意去做。flat 和 multi_host 網絡模型中所有的浮動 IP 地址需要一個共享的 VLAN。這就要求你的物理網絡使用 STP 協議,而它是一個在你需要高速網絡時非常有名的危險辦法。我在多次會議上問過與會者:“多少人認為 STP 很惡劣?”,然后幾乎會議室內的所有人都舉手了。
也許更重要的,flat 和 multi_host 網絡模型要求網絡流量從你的公共 IP 地址經過你網絡的邊界路由到 Hypervisor 節點。這在任何現代企業中都是不可接受的。下面是 multi_host 的示意圖:
當你使用 multil_host 網絡模型時,你需要能夠將代碼部署到 Hypervisor 上,有時候這也許沒什么,但是在 ESXi 或者 Hyper-V 平台上你就沒那么幸運了。
相對地,single_host 模型的問題在於,它將一個x86服務器作為核心網絡的中心(hub),所有 VLAN 和 Internet 之間的網絡流量都得經過它。基本上,你可以將你高性能交換機扔進垃圾桶了,因為你的網絡最大帶寬將取決於那個 Linux 服務器。同樣,這不是一個對網絡來說能夠接受的方式。但是公平地說,OpenStack 的競爭對手們也是用一個類似的方式。下面是 single_host 模型的示意圖:
所有這些方法都有基礎性的擴展性和性能問題。這也是為什么后來有了Neutron。
膽小的人不合適依賴 Neutron (Depending on OpenStack Neutron NOT for the Faint of Heart)
直到2013年9月,就像在 Argonne National Labs (ANL) 的 Scott Devoid 發給 OpenStack 運維人員的郵件列表中描述的那樣,看起來 Neutron 仍然有嚴重的問題。在我寫這篇文章的時候,Neutron 支持 single_host 和 flat 模式,但是不支持 multi_host 模式。顯然,我們會在 Juno 版本中看到 multi_host 模式的替代者(譯者注:應該是指 DVR - 分布式虛擬路由器),盡管這個功能已經缺位很久了。
應該說,Neutron 已經有了長足的進步,實事求是地講,如今報出的很多問題都是來源於那些編程實現不佳的插件。也意味着,要想成功地使用 Neutron,你需要使用Neutron 核心功能加上那些在設計時就考慮了擴展性和性能的插件。再加上,你的雲操作系統的供應商應該擁有的一些被證明了的大規模的部署方式,以及使用一些窮盡式測試框架去盡可能地排除網絡中的一些潛在問題。
關於企業級OpenStack驅動的產品的性能和擴展性,我可以說得更多。然而,上面這些應該能夠讓你清楚,你需要跟你的供應商確認好他們已經了解並解決了這些問題。
更重要的是,不管你用哪家供應商,他們都必須能夠提供一個詳細的多機櫃式的參考網絡架構。如果沒有這種架構,你要從一個機櫃開始擴展的話,就會完全依賴於你的供應商那些有效或者無效的所謂保證了。
彈性(Elasticity)
基礎架構從來沒有真正的彈性過,可是它的特性能支持彈性的應用在它上面運行。一個彈性雲,需要被設計為每個資源,比如虛機、塊存儲和對象存儲,其成本盡可能的低。這和傑文斯悖論( Jevon’s Paradox)直接相關,他說隨着技術的進步,效率的提升將會帶來該技術被采用速度的提升。
簡單地說,隨着系統中各組件相對成本不斷下降,應用不僅可以使用更多的資源來保證容錯性,而且為了按需擴展而可以使用更多的資源。實質上,如果每個組件和資源的成本盡可能地低,你可以讓資源池變得很大,以及購買更多的容量。主要的彈性雲,象 Google、亞馬遜 和微軟已經在提供這種特性,而這些正是你需要在你企業內為了實現混合雲而所需要的。
企業級 OpenStack 會通過同時支持彈性應用、擴展性和性能來引領你走向未來。小心那些需要讓你使用光纖存儲網絡和刀片服務器的 OpenStack 驅動的雲操作系統。那個時代已經過去了,就象我們在 Hadoop 上看到的那樣。
需求 6 - 全球性實施所需要的雲支持、培訓和服務模型 (Cloud Support, Training & Services Model for Global Enablement)
假設你的企業是個全球性企業,計划在你的私有雲、公有雲和混合雲上交付 7*24 小時運行的下一代雲原生應用,那么你將需要這樣的供應商,他們能夠支持你全球性的業務,有國際性運作經驗,以及能夠支持 24x7x365 的環境。
培訓你的IT管理員成為新的雲管理員
IT 管理員正在轉型為雲管理員。這是在企業內部一個深層次的和持續性的變革。他們需要學習一系列全新的技術,以及其它技能,來適應新的雲時代。當你評估企業級私有雲供應商時,你需要找一個家有出色培訓能力的公司,他們不僅要在 OpenStack 層面,還要在其它的特定雲操作系統產品層面有相應能力。最重要的是,當評估一家可以幫助你升級你團隊技術的供應商時,請注意確認他們不只是來給你看看如何在 OpenStack 上做開發或者安裝 OpenStack 的。
真正需要的運維為中心的培訓應該聚焦在:
- 典型的 OpenStack 架構和特定的產品框架
- 各種架構的優劣勢和插件/驅動的選型
- 擴展性、兼容性和性能問題及選型
- 常見“全棧”問題定位和解決方法
- 向開發人員介紹如何使用雲
- 理解雲原生應用模型
雲支持模型(Cloud Support Model)
不管你的 IT 團隊如何優秀,你都需要一個值得信賴的支持團隊 - 一個可以端到端完整支持你整個系統的團隊。請確認你的供應商之前有過支持高事務 24*7 環境的經驗。請確認他們有“全棧”的支持能力。他們有調試定位 Linux 內核問題的能力嗎?他們有幫助做 Hypervisor 選型、解決網絡架構和性能問題的能力嗎?他們深入地理解存儲嗎?雲是整合的系統,其中計算、存儲和網絡都非常基礎性地互相整合。你的供應商需要比如何配置和開發 OpenStack 知道得多得多。他們必須是雲全棧專家。你一定要向他們提出這個要求。
全球服務交付(Global Service Delivery)
通過全球服務來交付雲,不管規模小還是大,都不是簡單的事情。這種交付比只是部署要求的多得多。它需要了解各地的文化,需要能夠了解每個地區獨特的要求。打個比方,你知道大多數數據中心中對電力的擔心大於對空間的擔心,而在日本情況是相反的嗎?在那里,能使用盡量小的空間是一個主要的優勢。他們這種對空間的需求是非常獨特的。
你的雲操作系統供應商需要有過國際交付的記錄,以及有一個全球合作伙伴網絡,他們可以在特定區域提供幫助。
結論(Conclusion)
OpenStack 是一個令人激動的可擴展的打造下一代彈性雲的基礎架構,但是它還不是完美的。所有和它差不多的開源產品都不是完美的。相反,每一個產品都是一種雲操作系統的內核,都可以用來交付一個更加完整的、經得起檢驗的企業級雲操作系統(CloudOS)。你需要一個有經驗的企業供應商,來交付你的雲操作系統,不管是使用 OpenStack 還是其它方案,我都希望你把這些需求放在心上。
我希望你們會喜歡這個系列文章。最后小結一下,我們談到了六大需求:
- 99.999% API 可用性和可擴展的雲控制面板
- 健壯的管理和安全模型
- 開放架構
- 混合雲兼容
- 擴展和彈性架構
- 全球支持和交付
當你們在評估各家供應商時,請確認你已經很清楚他們到底可以滿足這些需求中的多少。
原文:The 6 Requirements of Enterprise-grade OpenStack, Part 3,Posted on May 6, 2014 by