行業資訊
由于香港云服務器資源池的基礎是IAAS層,因此本文提及的開源項目主要以IAAS層視角展開分析。同時考慮到DevOps的重要性,會輔以部分優秀的PAAS層開源項目進行介紹。下面將分別從計算、網絡、存儲、云操作系統、自動化運維工具等五大維度探究運營商對云計算相關開源項目的選型問題。
1、計算:硬件、虛擬化、容器
(1)、硬件:按照人們通常的理解,開源項目都是軟件相關的,然而硬件領域也不乏優秀的開源項目,例如OCP。該項目由FaceBook于2011年發起,旨在通過開源硬件驅動IT基礎設施架構不斷發展。歷經6年多時間,OCP已有近200多家企業會員。由于構筑成本較低,去掉了很多繁瑣的無用功能,OCP可以有效地提升企業數據中心的迭代速度,使軟件升級更加簡單,一改早期數據中心尾大不掉的形象。在國內也有個類似OCP的開源硬件項目,即天蝎計劃。天蝎計劃于2011年問世,百度是主要發起方之一,阿里、騰訊、聯想、中國移動、中國電信等巨頭陸續參與。目前已從1.0發展至3.0版本。據了解,天蝎計劃已經達到OCP中關于整機柜部分的國際水準,甚至在部分設計上超越OCP相關規范。
(2)、虛擬化:這里提到的虛擬化特指X86服務器虛擬化技術。在云計算發展初期,該技術主要由VMware、Citrix等IT巨頭壟斷,相關產品雖然功能全面、性能不俗,但價格也十分昂貴。現如今隨著開源KVM技術日趨成熟,越來越多的企業開始構建基于開源KVM技術的云資源池,以期大幅縮減虛擬化軟件購置成本。KVM的全稱為Kernel Virtual Machine,翻譯為中文就是內核虛擬機。KVM是典型的二類虛擬機架構(從VMM所處層次可將虛擬化軟件劃分為一類虛擬機架構和二類虛擬機架構,一類的VMM處于硬件層之上,自身就是一個操作系統。二類的VMM處于宿主機操作系統層之上,自身可看作一個應用程序),它的宿主機操作系統涵蓋CentOS、Ubuntu、Debian等多個Linux發行版。
(3)、容器:容器是輕量級的操作系統級虛擬化,可以讓我們在一個資源隔離的進程中運行應用及其依賴包。在眾多容器引擎技術中,Docker無疑是明星級解決方案。Docker是PAAS提供商dotCloud開源的一個基于LXC的高級容器引擎,基于go語言開發并遵從Apache2.0協議開源。
2、網絡:虛擬交換機
虛擬交換機:大部分商業虛擬化軟件中都自帶虛擬交換機的組件,例如VMware的vDS、vSS。但對于開源的虛擬化軟件而言,其自帶的網絡功能通常比較簡單,這就需要額外的虛擬交換機彌補這一短板問題,OVS(Open vSwitch)則是該領域最熱門的開源項目。OVS是由Nicira公司使用C和Python語言開發,并遵循開源Apache2.0許可的多層虛擬交換機,其初衷是讓大規模網絡通過可編程實現自動化擴展。它既可以作為一個軟件交換機運行在虛擬化層,也可以作為交換芯片的控制棧實現,支持多種標準管理接口和協議(NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。它也支持多種虛擬化技術,包括KVM、Xen和VirtualBox。
3、存儲:分布式存儲
分布式存儲:云計算發展至今,可以說是一部軟件定義一切(SDX)的技術發展史。從早期的X86服務器虛擬化(可以理解為軟件定義計算),到軟件定義網絡(SDN)、軟件定義存儲(SDS),再到大一統的軟件定義數據中心(SDDC),每種技術都曾在業界倍受關注。在這些SDX技術中,軟件定義存儲可以算是繼軟件定義計算后,最為實用的一類。何為實用技術?筆者認為有兩項評判標準最為關鍵,其一是看這項技術與以往技術相比是否有顯著進步(如架構的革新、功能的增加或性能的提升),其二是看這項技術的性價比。軟件定義存儲技術顯然符合以上兩點要求。首先,SDS與以往的存儲技術相比,是一種全新的分布式架構,因此也有“分布式存儲”的提法。這種“去集中化”的思想源自于谷歌等大型互聯網企業,它不僅降低了IT系統的存儲故障風險,同時可以大幅提升存儲IOPS性能,甚至讓存儲容量在線擴展成為現實,以上三點都是長久以來困擾IT系統存儲管理員的難題。其次,SDS完美地實現了軟、硬件解耦,這點與X86服務器虛擬化類似。二者不同之處在于X86服務器虛擬化的松耦合架構帶來了在線熱遷移、計劃內零宕機等特性,SDS的松耦合架構則使專用存儲硬件演變為通用X86服務器,這大幅降低了IT系統存儲設備的投資開銷。目前業界最熱門的開源分布式存儲項目非Ceph莫屬,作為一款同時支持對象、塊、文件的統一存儲系統,Ceph也是當前OpenStack生態系統中呼聲最高的開源存儲解決方案。
4、云操作系統
在云計算發展初期,有關云操作系統的市場爭奪從未停歇過。除了VMware、Citrix、微軟推出的商業云管理平臺軟件外,開源項目也是遍地開花,包括CloudStack、OpenStack、Eucalyptus、OpenNebula等多個平臺。從現階段的發展形勢來看,OpenStack基本已成為云操作系統的不二選擇。師承亞馬遜AWS的OpenStack自2010年10月第一版(Austin)到最新版(Pike),已歷經16個版本,從最初的Nova、Swift兩大模塊到如今大大小小上百個模塊,被認為是僅次于Linux的第二大開源社區項目。近兩年,各行各業基于OpenStack的云平臺方案如雨后春筍般出現,而真正能給OpenStack一個準確定義的人卻很少。有人認為它是云管理平臺,有人認為它是云計算平臺,還有人把它與VMware虛擬化相對應,正所謂“一千個人眼里有一千個哈姆雷特”,你把它看作什么只能表示你關注它哪方面,并不表示它就是什么。筆者傾向于將其看作是“現行最通用的云計算標準體系架構”,它的日益成熟規范了以往云計算領域各類錯綜復雜的技術概念,實現了各廠家云解決方案的和諧統一。可別小看這一點,畢竟能讓全世界不同語言(各類IT產品接口)的國家(各IT廠家)擱置爭議、溝通合作(統一適配)的組織也就聯合國了。從這點來看,OpenStack就是云計算世界的“聯合國”角色。
5、自動化運維工具
嚴格意義上說,自動化運維工具不能算是云計算特有的,在傳統IT架構下也有自動化運維的需求與實現。只不過近些年業界興起的DevOps與云計算相結合,重新賦予了自動化運維新的理念,在此背景下,也出現了不少優秀的開源自動化運維工具,Ansible就是目前業界最為熱門的一個。Ansible是一種模型驅動型配置管理工具,充分利用SSH技術,改善安全、簡化管理。除了配置管理外,它還能夠實現應用程序部署(甚至多層部署)、工作流程編排和云配置自動化等功能。Ansible基于五大設計原則,包括易于使用(不需要編寫腳本或自定義代碼)、易于掌握(對管理員和開發者來說都是如此)、全面的自動化(讓你可以做到你環境中的幾乎一切都實現自動化)、高效率(因為它在OpenSSH上運行,因而不依賴內存或處理器資源),以及安全性(它天生來得更安全,因為不需要代理、額外端口或根級守護程序)。與其他許多開源項目一樣,Ansible也有一款收費產品,使用一種名為Ansible Tower的Web用戶界面。