在本文作者丹·羅賓遜(Dan Robinson)看來,數(shù)據(jù)中心業(yè)界的一切都正在進(jìn)行軟件定義,而這其中最為主要的便是自動(dòng)化。
在過去幾年中,“軟件定義”在數(shù)據(jù)中心業(yè)界已然經(jīng)成為了另一大被廣泛的大肆炒作的術(shù)語,甚至使得其意義已經(jīng)變得模糊了。然而,軟件定義的基礎(chǔ)設(shè)施卻恰恰是數(shù)據(jù)中心目前正在重塑的方式的關(guān)鍵組成部分,以滿足現(xiàn)代IT和應(yīng)用程序的不斷變化的需求,畢竟,現(xiàn)如今的IT和應(yīng)用程序更具分布性和動(dòng)態(tài)性。
當(dāng)前,企業(yè)和數(shù)據(jù)中心運(yùn)營商們所面臨的絆腳石之一就是IT基礎(chǔ)架構(gòu)越來越復(fù)雜化,需要進(jìn)行部署和配置。而應(yīng)用程序通常又要依賴于一系列其他的服務(wù)和資源才能正常運(yùn)行。
IDC歐洲數(shù)據(jù)中心基礎(chǔ)架構(gòu)和客戶端設(shè)備咨詢經(jīng)理Andy Buss表示說:“解決這個(gè)問題需要一定程度的自動(dòng)化。任何正在進(jìn)行數(shù)字化轉(zhuǎn)型的企業(yè)都將需要部署自動(dòng)化,因?yàn)樽詣?dòng)化的部署能夠?qū)⑵髽I(yè)的IT政策真正貫徹到日常的IT行動(dòng)中。”他還補(bǔ)充說,“從研發(fā)到運(yùn)營的轉(zhuǎn)變就是盡可能實(shí)現(xiàn)IT基礎(chǔ)架構(gòu)的輕松部署。”
這意味著,IT基礎(chǔ)設(shè)施必須能夠通過借助使用軟件來進(jìn)行重新配置或重新利用,而不是讓工程師們進(jìn)入數(shù)據(jù)中心本身,并在物理設(shè)備上重新配置基礎(chǔ)架構(gòu)。
許多著名的大型互聯(lián)網(wǎng)企業(yè),如谷歌和亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)已經(jīng)在廣泛使用這種方法了,因?yàn)檫@是運(yùn)營公共云服務(wù)平臺(tái)的基本要求,其中服務(wù)可能會(huì)不斷開始、規(guī)模化擴(kuò)展,最終在終止時(shí)再次釋放資源。
換句話說,“軟件定義”是指與其正在運(yùn)行的硬件分離的基礎(chǔ)架構(gòu)和資源,并且能夠在軟件的控制下(通常使用應(yīng)用程序編程接口(API))進(jìn)行動(dòng)態(tài)配置和重新配置。
在IT基礎(chǔ)設(shè)施中,頭一波獲得軟件定義的處理的組成部分是服務(wù)器,其是通過虛擬化技術(shù)實(shí)現(xiàn)的。在云中運(yùn)行的虛擬機(jī)實(shí)際上是一臺(tái)軟件定義的服務(wù)器,因?yàn)槠湟呀?jīng)從底層物理硬件中分離出來,并且在發(fā)生硬件故障(或者出于其他原因,如負(fù)載平衡)時(shí),可以從一臺(tái)物理服務(wù)器遷移到另一臺(tái)物理服務(wù)器。
過去幾年來,容器集裝箱技術(shù)的興起,該技術(shù)比虛擬機(jī)所需要的資源要少。Docker等平臺(tái)也將更多的重點(diǎn)放在應(yīng)用程序的分發(fā)和管理方面,作為集合化的集裝箱功能。
鑒于云計(jì)算的發(fā)展已經(jīng)成為數(shù)據(jù)中心日益重要的一部分,數(shù)據(jù)中心將越來越多的轉(zhuǎn)變?yōu)檐浖x的基礎(chǔ)設(shè)施,并隨之變得越來越靈活敏捷。
當(dāng)被不同的供應(yīng)商使用時(shí),“軟件定義”的這一術(shù)語可能意味著不同的東西,而這一術(shù)語并不總是有著廣泛認(rèn)可的標(biāo)準(zhǔn)化定義。例如,軟件定義的存儲(chǔ)可以包括存儲(chǔ)虛擬化,例如EMC公司的ViPR平臺(tái),使客戶能夠使用多個(gè)混合的陣列(包括來自多家供應(yīng)商的陣列)來構(gòu)建其存儲(chǔ)基礎(chǔ)設(shè)施,并從單個(gè)控制臺(tái)進(jìn)行管理。
但是,軟件定義的存儲(chǔ)更普遍的是指諸如在商品化服務(wù)器節(jié)點(diǎn)群集之間運(yùn)行的開源GlusterFS等軟件,并使用這些存儲(chǔ)來創(chuàng)建可擴(kuò)展的存儲(chǔ)池。這種模式往往在超融合的基礎(chǔ)架構(gòu)(HCI)系統(tǒng)、高性能計(jì)算(HPC)集群以及像Google和Facebook這樣的大型互聯(lián)網(wǎng)公司中被看到,因?yàn)樗子谂渲煤蛿U(kuò)展。
軟件定義的存儲(chǔ)僅僅只是與其所運(yùn)行的硬件水平相當(dāng),可能不如專用的企業(yè)存儲(chǔ)陣列那么可靠。這一假設(shè)前提是:冗余和其他功能(如數(shù)據(jù)復(fù)制)將在軟件堆棧中的其他位置處理。
軟件定義的網(wǎng)絡(luò)類似地涵蓋了許多不同的方法,旨在使網(wǎng)絡(luò)基礎(chǔ)設(shè)施更加動(dòng)態(tài)化,并且易于根據(jù)需要進(jìn)行配置。
一種方法是分離控制面板,或從轉(zhuǎn)發(fā)面板管理部分網(wǎng)絡(luò)(通常是圍繞著網(wǎng)絡(luò)上實(shí)際路由數(shù)據(jù)包的交換機(jī)硬件)。這里的理念是:使用諸如OpenFlow等工具集中控制網(wǎng)絡(luò)流量,OpenFlow是旨在為其提供標(biāo)準(zhǔn)機(jī)制的協(xié)議,該協(xié)議由許多交換機(jī)供應(yīng)商(如Dell、HPE和Cisco)支持。
另一種方法是虛擬化網(wǎng)絡(luò),允許使用物理網(wǎng)絡(luò)遷移數(shù)據(jù)來創(chuàng)建邏輯網(wǎng)絡(luò),但不一定有相同的IP地址方案,并可能在他們各自的服務(wù)和安全質(zhì)量策略方面存在差異。
后一種方法以VMware的NSX和OpenStack平臺(tái)中的Neutron模塊為代表,對(duì)于數(shù)據(jù)中心支持多租戶,特別是托管公共云服務(wù)是至關(guān)重要的。
虛擬化網(wǎng)絡(luò)不僅可以創(chuàng)建新的網(wǎng)絡(luò)連接,而無需物理地移動(dòng)跳接電纜(patch cable),但在VMware的NSX的情況下,其也可以更好地監(jiān)控網(wǎng)絡(luò)流量,因?yàn)榻粨Q機(jī)和路由被集成到了hypervisor 管理程序,分布在整個(gè)基礎(chǔ)設(shè)施中。
這些軟件定義的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)并不是單獨(dú)存在的,而是經(jīng)常相互依賴的。將它們整合在一起是最終的目的,以便實(shí)現(xiàn)英特爾等企業(yè)稱之為的“軟件定義的數(shù)據(jù)中心”(SDDC)。
借助SDDC,整個(gè)數(shù)據(jù)中心基礎(chǔ)設(shè)施應(yīng)該可以在軟件的控制下進(jìn)行配置,從而更容易實(shí)現(xiàn)自動(dòng)化,以便IT人員們可以將更少的時(shí)間花費(fèi)在日常的簡單IT運(yùn)維方面,而這也就意味著第四大難題是管理和orchestration業(yè)務(wù)流程安排。
Buss表示說:“沒有自動(dòng)化和業(yè)務(wù)流程安排的軟件定義是毫無意義的。他引用了諸如Microsoft的System Center Operations Manager(SCOM)和VMware的vCloud Director之類的工具,但又補(bǔ)充說,這些工具尚未達(dá)到與大型云服務(wù)提供商所使用的工具的相同程度的成熟度。
同樣不太成熟,但卻獲得服務(wù)提供商的支持的是OpenStack,OpenStack是開放的且非專有的,因此獨(dú)立于任何一家單一的供應(yīng)商,并且提供一組可用于插入其他軟件和服務(wù)的API。
總的來說,SDDC方法已經(jīng)過了一個(gè)轉(zhuǎn)折拐點(diǎn),并且越來越重要,根據(jù)Buss介紹說:“公共云服務(wù)表明這是可行的,當(dāng)我們轉(zhuǎn)向一個(gè)多云的世界時(shí),會(huì)引發(fā)一個(gè)由云所推動(dòng)的,在現(xiàn)有云服務(wù)之間提供兼容性的需要的大量思考。”
HPE的Synergy基礎(chǔ)設(shè)施平臺(tái)
惠普企業(yè)公司(HPE)的Synergy基礎(chǔ)設(shè)施平臺(tái)是該公司于今年1月份正式出貨的一款基礎(chǔ)設(shè)施平臺(tái)。該平臺(tái)即是將高端設(shè)計(jì)的基礎(chǔ)架構(gòu)設(shè)計(jì)為軟件定義的一個(gè)例子,盡管HPE并沒有將其稱為“可組合的基礎(chǔ)設(shè)施架構(gòu)”。
根據(jù)該公司的說法,Synergy背后的主要意圖是“由代碼定義”,這意味著其被設(shè)計(jì)為幾乎完全由指定的特定應(yīng)用程序和服務(wù)所需資源的模板以及如何配置這些模板所驅(qū)動(dòng)。
“這是一種無狀態(tài)的計(jì)算機(jī),旨在成為可重構(gòu)的資源池。”Buss說。它可以被視為一組存儲(chǔ)、網(wǎng)絡(luò)、計(jì)算和內(nèi)存資源,可以一起創(chuàng)建一個(gè)虛擬計(jì)算機(jī),用于任何任務(wù)的處理。
Synergy的關(guān)鍵部分是,HPE更新的OneView管理系統(tǒng)可以配置和管理裸機(jī),因此可以輕松地支持在專用硬件上運(yùn)行的數(shù)據(jù)庫集群,同時(shí)提供在容器中運(yùn)行的虛擬服務(wù)器和應(yīng)用程序。
值得注意的是,Synergy可以有效地將HPE所提供的特殊硬件和軟件組合在一起。雖然客戶可以從一系列計(jì)算和存儲(chǔ)節(jié)點(diǎn)中選擇以滿足其需求,但它們不能與Synergy部署中的第三方套件混合使用。
開源的SDDC
OpenStack是眾所周知的開源軟件項(xiàng)目,廣泛應(yīng)用于云部署項(xiàng)目。然而,其優(yōu)勢在于它實(shí)際上是一個(gè)旨在盡可能開放和可擴(kuò)展的管理框架,使其成為運(yùn)行IT基礎(chǔ)架構(gòu)的通用“集成引擎”。
這可以從轉(zhuǎn)向采用OpenStack的電信運(yùn)營商的數(shù)量中看出,OpenStack將作為這些電信運(yùn)營商們基礎(chǔ)設(shè)施現(xiàn)代化的關(guān)鍵,允許他們用在同一工作中的商品服務(wù)器上運(yùn)行的軟件來代替昂貴的專業(yè)網(wǎng)絡(luò)硬件,這稱為網(wǎng)絡(luò)功能虛擬化(NFV)。
其原因之一是OpenStack的靈活性;其現(xiàn)在圍繞核心服務(wù)(包括計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)模塊)進(jìn)行組織,而其他則是可選的,可根據(jù)用戶的要求提供服務(wù),包括遙測、業(yè)務(wù)流程甚至數(shù)據(jù)庫服務(wù)。
OpenStack的計(jì)算模塊Nova不與特定的管理程序綁定。默認(rèn)使用Linux KVM,還支持來自VMware和Microsoft的,以及諸如LXC的容器技術(shù)。同樣,Neutron網(wǎng)絡(luò)和Cinder存儲(chǔ)模塊也插入了各種其他產(chǎn)品和平臺(tái),如VMware Integrated OpenStack,分別在VMware的NSX和VSAN上使用。
如果OpenStack有弱點(diǎn)的話,那么可以說就存在于諸如自動(dòng)化和業(yè)務(wù)流程安排方面,其并不像一些專有的云服務(wù)和數(shù)據(jù)中心平臺(tái)那么成熟。然而,由于其開放的API,開發(fā)人員和第三方工具可以填補(bǔ)這方面的空白。
這些API意味著用戶可以在編程控制下重新配置其基礎(chǔ)架構(gòu),這是SDDC的一個(gè)基本方面。
OpenStack在技術(shù)行業(yè)擁有廣泛的支持者,其中包括英特爾,該公司自2011年以來一直在內(nèi)部使用該軟件來管理他們自己的基礎(chǔ)設(shè)施,以及為項(xiàng)目提供代碼。
容器集裝箱技術(shù)在云中獲得長足發(fā)展
雖然虛擬機(jī)已經(jīng)為硬件利用率帶來了奇跡 ,但目前正在出現(xiàn)一種新的工作負(fù)載方法,可以使數(shù)據(jù)中心更有效地使用其資源。
Kubernetes和Docker是在軟件容器內(nèi)部署應(yīng)用程序自動(dòng)化的最流行的系統(tǒng)示例。他們將應(yīng)用程序及其所有依賴項(xiàng)集成到所有依賴于同一個(gè)Linux內(nèi)核的個(gè)別環(huán)境中,這意味著它們需要比虛擬機(jī)更少的開銷。
應(yīng)用程序容器完全獨(dú)立于底層基礎(chǔ)設(shè)施,可以輕松地跨服務(wù)器、數(shù)據(jù)中心和云平臺(tái)遷移。同時(shí),開發(fā)、測試和生產(chǎn)環(huán)境之間的無縫過渡使得DevOps不可或缺。最后,由于他們的策略驅(qū)動(dòng)的性質(zhì)和與主機(jī)的隔離,使得包裝在容器中的應(yīng)用程序從根本上變得更加安全。
集裝箱化的應(yīng)用程序是邁向微服務(wù)架構(gòu)的重要一步,其中各種服務(wù)單獨(dú)打包,并使用業(yè)務(wù)流程工具鏈接在一起。 這種方法對(duì)于在云環(huán)境中運(yùn)行的大量軟件項(xiàng)目尤其有用,因?yàn)槠湓试S應(yīng)用程序內(nèi)的各個(gè)服務(wù)根據(jù)需求進(jìn)行擴(kuò)展或縮小。 其還使開發(fā)人員團(tuán)隊(duì)能夠在軟件上工作,而不必知道其他團(tuán)隊(duì)正在做什么。
Kubernetes最初是在Google開發(fā)的,而Docker則是由Solomon Hykes在同名的Docker Inc(以前稱為dotCloud)創(chuàng)建的。 今天,這兩個(gè)都是開源項(xiàng)目,擁有大量擁躉,這意味著他們將繼續(xù)快速發(fā)展,以應(yīng)對(duì)早期采用者的需求。