1、前言
當(dāng)今世界正處在信息技術(shù)(IT)創(chuàng)新的黃金時代。由機(jī)器學(xué)習(xí)、物聯(lián)網(wǎng)和大規(guī)模可擴(kuò)展應(yīng)用支持的云計(jì)算、移動應(yīng)用、大數(shù)據(jù)分析的巨大力量正在重塑商業(yè)和社會的方方面面。而這場IT復(fù)興的中心,則是超大規(guī)模的全球數(shù)據(jù)中心(DC)在公共、私有和混合云計(jì)算領(lǐng)域的不斷涌現(xiàn)。根據(jù)Synergy Research Group的數(shù)據(jù)統(tǒng)計(jì),全球超大規(guī)模數(shù)據(jù)中心的數(shù)量從2016年的300個增加到2017年的390個,另有69個超大規(guī)模的數(shù)據(jù)中心正處于規(guī)劃或建設(shè)階段。
本文首先簡要回顧了迄今為止數(shù)據(jù)中心基礎(chǔ)架構(gòu)創(chuàng)新的三大浪潮。然后,將介紹第四波IT基礎(chǔ)架構(gòu)創(chuàng)新:即應(yīng)用定義基礎(chǔ)架構(gòu)(ADI),以及推動大型企業(yè)采用它的技術(shù)力量和運(yùn)營挑戰(zhàn)。
2、數(shù)據(jù)中心基礎(chǔ)架構(gòu)變遷簡史
數(shù)據(jù)中心是專門建造的一種基礎(chǔ)架構(gòu),用于放置計(jì)算機(jī)系統(tǒng)和相關(guān)組件,如網(wǎng)絡(luò)設(shè)備、存儲系統(tǒng)和電信設(shè)備。它是通向我們連接的世界的知識經(jīng)濟(jì)的大腦?,F(xiàn)代的數(shù)據(jù)中心起源于20世紀(jì)60年代的主機(jī)房、電信中心辦公室和企業(yè)IT布線室。在過去二十年里,一波又一波迅猛涌現(xiàn)的技術(shù)創(chuàng)新浪潮極大地提高了現(xiàn)代數(shù)據(jù)中心的技術(shù)水平。
3、1997-2007,第一波浪潮 - 裸機(jī)服務(wù)器
裸機(jī)服務(wù)器是提供給單一租戶的物理服務(wù)器。它的優(yōu)勢在于高應(yīng)用性能和可預(yù)測性。弱點(diǎn)在于:高成本、提供應(yīng)用的中等復(fù)雜性和應(yīng)用部署后的低靈活性。它們會繼續(xù)存在,作為某些特定的,對性能敏感的工作負(fù)載的解決方案,這種工作負(fù)載值得使用這種專有的基礎(chǔ)架構(gòu)(如數(shù)據(jù)庫)。裸機(jī)服務(wù)器還的經(jīng)常用于專用的計(jì)算機(jī)集群,這些集群是為支持特定的可擴(kuò)展分布式計(jì)算應(yīng)用(如Hadoop集群)而構(gòu)建的。對于更大的靈活性和更好的經(jīng)濟(jì)性的要求使得這種方式在不斷發(fā)展的應(yīng)用環(huán)境下受到了限制。
4、2005年至今,第二波浪潮 – 使用虛擬機(jī)管理器(hypervisor)實(shí)現(xiàn)虛擬化
虛擬化是對計(jì)算機(jī)系統(tǒng)的仿真,它可以使一臺物理計(jì)算機(jī)能夠運(yùn)行一臺或多臺虛擬機(jī)(VM)。
圖1:使用虛擬機(jī)管理器實(shí)現(xiàn)的虛擬化使得一臺計(jì)算機(jī)看起來像多臺計(jì)算機(jī)
雖然這一概念可以追溯到20世紀(jì)60年代和大型計(jì)算機(jī)時代,但直到1998年,隨著VMware將其虛擬機(jī)管理器的商業(yè)化,它才真正被應(yīng)用到提高IT效率的最前沿。在VMware之前,大量昂貴的計(jì)算機(jī)資源未得到充分利用。通過使一臺計(jì)算機(jī)看起來像多臺計(jì)算機(jī),每臺計(jì)算機(jī)都有自己的客戶端操作系統(tǒng),VMware的虛擬機(jī)管理器幫助解決了提高IT效率的需求。1999年發(fā)布的VMware虛擬機(jī)管理器非常新穎,因?yàn)樗状卧贗ntel x86上實(shí)現(xiàn)了虛擬化,通過使用二進(jìn)制轉(zhuǎn)換來替換特權(quán)指令,將其捕獲到虛擬機(jī)管理器中。截至2017年11月,VMware已成長為一家高利潤的,市值達(dá)到530億美元的公司,在2017年第三季度,它的收入為19.8億美元,凈利潤為4.43億美元。由于全球數(shù)以萬計(jì)的企業(yè)都在VMware的虛擬化系統(tǒng)上運(yùn)行其重要的運(yùn)營系統(tǒng),因此,在基于虛擬機(jī)管理器的企業(yè)私有云虛擬化解決方案中,VMware成為虛擬化市場的龍頭老大。其它的虛擬化軟件包括了Microsoft Hyper-V、Linux KVM和Xen。
使用虛擬機(jī)管理器(hypervisor)實(shí)現(xiàn)虛擬化的優(yōu)勢包括:技術(shù)成熟;廣泛采用;通過啟用多個虛擬機(jī)來提高了計(jì)算機(jī)利用率;基于虛擬機(jī)構(gòu)建和操作云的基礎(chǔ)架構(gòu)軟件;強(qiáng)大的多租戶架構(gòu)支持。
而這種虛擬化的弱點(diǎn)包括:高復(fù)雜性;虛擬機(jī)管理器的資源開銷;每個客體虛擬機(jī)的客戶端操作系統(tǒng)資源開銷;相對于裸機(jī)基礎(chǔ)架構(gòu)而言,對應(yīng)用的性能不可忽略的影響;當(dāng)一個用戶影響同一物理服務(wù)器中其他用戶的性能和穩(wěn)定性時的“鄰近噪聲效應(yīng)”。多個虛擬機(jī)同時發(fā)送其IO請求時導(dǎo)致存儲性能降低時的“IO攪拌機(jī)效應(yīng)”。基于工作負(fù)載的虛擬機(jī)管理器的極高的能源消耗;以及實(shí)例化新虛擬機(jī)需要的時間。
使用虛擬機(jī)管理器構(gòu)建了虛擬化平臺的虛擬機(jī)管理軟件供應(yīng)商和云平臺運(yùn)營商正在致力于通過以下技術(shù)來解決其中的一些弱點(diǎn):硬件虛擬化(例如,Amazon Nitro項(xiàng)目);輕量級虛擬機(jī)管理器;將操作系統(tǒng)和應(yīng)用打包在同一內(nèi)核鏡像內(nèi)以消除傳統(tǒng)的內(nèi)核空間和用戶空間的分隔的單一內(nèi)核技術(shù)(Unikernels);以及各種無服務(wù)器計(jì)算技術(shù)。
5、2010年至今,第三波浪潮 - 超聚合基礎(chǔ)架構(gòu)(HCI)(同樣是基于hypervisor)
超聚合基礎(chǔ)架構(gòu)(HCI)是一種完全由軟件定義的IT基礎(chǔ)架構(gòu),它可以虛擬化傳統(tǒng)“硬件定義”系統(tǒng)的所有元素。HCI至少包括虛擬化計(jì)算(一個hypervisor)、虛擬化存儲(軟件定義的SAN)和虛擬化網(wǎng)絡(luò)(軟件定義的網(wǎng)絡(luò))。
圖2:超聚合基礎(chǔ)架構(gòu)(來源:Nutanix HCI最終指南)
簡單地說,HCI將計(jì)算、存儲和網(wǎng)絡(luò)連接集成到一個“盒中云”一體機(jī)中,然后提供硬件和軟件資產(chǎn)的統(tǒng)一管理視圖,以隱藏云平臺的復(fù)雜性。HCI在裸機(jī)設(shè)備上使用復(fù)雜的基礎(chǔ)設(shè)施軟件,以簡化管理,并提高最終用戶在某些高價值應(yīng)用(如虛擬桌面)中的易用性。HCI供應(yīng)商包括Dell/EMC、IBM、聯(lián)想、HP、Nutanix、Stratoscale和Cisco。
HCI的優(yōu)點(diǎn)包括:通過將硬件和軟件預(yù)先打包在一起,并通過虛擬機(jī)管理器(hypervisor)隱藏掉虛擬化的底層復(fù)雜性,保證了它的易用性,通過不斷增長的HCI設(shè)備集群實(shí)現(xiàn)了基礎(chǔ)架構(gòu)的優(yōu)雅擴(kuò)展,并且簡化了私有云的自建難度。HCI同時還為桌面虛擬化等高價值應(yīng)用提供了強(qiáng)大的解決方案。
HCI的弱點(diǎn)包括:當(dāng)系統(tǒng)資源打包到設(shè)備中時,計(jì)算和存儲的分配比例就被鎖定了;對某些重要的有狀態(tài)的應(yīng)用(如關(guān)系數(shù)據(jù)庫)缺乏支持;對大規(guī)??蓴U(kuò)展的現(xiàn)代大數(shù)據(jù)分布式計(jì)算(如Hadoop、MongoDB,Cassandra, 和 Spark)的支持有限;HCI的供應(yīng)商的鎖定;在大型云平臺上鮮有部署。
6、IT基礎(chǔ)架構(gòu)的第四波浪潮
在IT轉(zhuǎn)型的前三波浪潮中,每個IT項(xiàng)目首先都是從規(guī)劃底層基礎(chǔ)架構(gòu)開始。例如,要部署數(shù)據(jù)庫,計(jì)劃的第一步都是從獲取和配置服務(wù)器或虛擬機(jī)、網(wǎng)絡(luò)設(shè)備和存儲設(shè)備開始。所有必需的基礎(chǔ)架構(gòu)組件一開始都要計(jì)劃好,以確保它們滿足應(yīng)用的當(dāng)前的服務(wù)等級協(xié)議(SAL)和預(yù)期增長的要求。只有在計(jì)劃和配置了所有這些基礎(chǔ)架構(gòu)之后,應(yīng)用才能上線。但是基礎(chǔ)架構(gòu)存在的目的是為應(yīng)用服務(wù)的,而不是反過來。所以,基于應(yīng)用來啟動一個IT項(xiàng)目不是更好嗎?通過只描述其需求,并讓基礎(chǔ)架構(gòu)自行組裝和配置以滿足這些需求(當(dāng)前的和預(yù)期的),這樣是不是更好?
當(dāng)前我們正在處在第四波IT基礎(chǔ)架構(gòu)創(chuàng)新的浪潮,基礎(chǔ)架構(gòu)將由它所服務(wù)的應(yīng)用來定義。在這第四波浪潮中,應(yīng)用和人員都擺脫了底層IT基礎(chǔ)架構(gòu)的束縛。底層基礎(chǔ)架構(gòu)本身可能會發(fā)生變化,從裸機(jī)到虛擬機(jī),再到私有云或公共云,但與應(yīng)用的交互始終保持不變。第四次浪潮將是應(yīng)用定義基礎(chǔ)架構(gòu)(ADI)的時代,基礎(chǔ)架構(gòu)變得越來越不可見,至繁再次歸于至簡。
下面將闡述第四波IT基礎(chǔ)架構(gòu)的驅(qū)動因素,首先我們從一個重要的長期趨勢- 容器技術(shù)開始。
容器技術(shù)
容器技術(shù)是一種將應(yīng)用及其依賴項(xiàng)打包的技術(shù),它允許將一個應(yīng)用從一個計(jì)算環(huán)境可靠地移動到另一個計(jì)算環(huán)境。
圖3:容器技術(shù) vs.hypervisor虛擬化技術(shù)(來源:Docker)
與把整個操作系統(tǒng)與應(yīng)用打包在一起的虛擬機(jī)不同,在一臺計(jì)算機(jī)上運(yùn)行的多個容器共享操作系統(tǒng)。在自己的容器中運(yùn)行的每個應(yīng)用繼續(xù)享有一個隔離邊界,使其看起來像是在該計(jì)算機(jī)上運(yùn)行的唯一應(yīng)用。
隨著Docker在2013年引入應(yīng)用容器,容器技術(shù)變得廣泛流行起來。Docker通過將應(yīng)用打包成Docker鏡像的形式作為行業(yè)標(biāo)準(zhǔn),在推廣容器概念方面發(fā)揮了領(lǐng)導(dǎo)作用。
容器,特別是Docker,大大簡化了應(yīng)用的配置。它們在將配置和應(yīng)用的有效負(fù)載(容器鏡像)的合并或(如果適用)分離之間達(dá)到了正確的平衡。容器以接近零的開銷運(yùn)行,因?yàn)槿萜鞑]有使用虛擬機(jī)管理器hypervisor進(jìn)行虛擬化。相反,它們將應(yīng)用(或應(yīng)用的一部分)彼此隔離在安全分區(qū)中,這些分區(qū)在主機(jī)操作系統(tǒng)上的共享用戶空間中運(yùn)行。這意味著應(yīng)用以裸機(jī)速度運(yùn)行,而不消耗任何額外的資源。
但是,容器本身不足以作為IT基礎(chǔ)架構(gòu)管理范式,因?yàn)樗鼈儾痪邆?ldquo;基礎(chǔ)架構(gòu)感知”能力。很多機(jī)構(gòu)發(fā)現(xiàn),現(xiàn)有的數(shù)據(jù)中心基礎(chǔ)架構(gòu)無法處理大量的容器化的應(yīng)用,因?yàn)榛趩我滑F(xiàn)代微服務(wù)的Web應(yīng)用可以輕松地使用超過數(shù)百個或更多的容器。需要運(yùn)行很多應(yīng)用的機(jī)構(gòu),經(jīng)常發(fā)現(xiàn)他們的系統(tǒng)管理團(tuán)隊(duì)在試圖將資源與容器匹配時不知所措。
容器通過允許多個應(yīng)用在同一服務(wù)器上運(yùn)行來提高服務(wù)器利用率。但是,由于所有應(yīng)用共享相同的存儲,而存儲的性能可能不穩(wěn)定,這會影響所有應(yīng)用的性能。為了解決這一問題,一些機(jī)構(gòu)將關(guān)鍵的應(yīng)用部署在隔離的基礎(chǔ)架構(gòu)上,以確保良好的性能,但是這樣做導(dǎo)致硬件的過度配置和資源利用率的低下。云計(jì)算技術(shù)正在發(fā)展以解決這個問題。長期以來,云服務(wù)提供商一直提供IaaS(基礎(chǔ)架構(gòu)即服務(wù))和PaaS(平臺即服務(wù))產(chǎn)品。而第一波基于裸機(jī)的CaaS服務(wù)(容器即服務(wù))正在開始由最大的云服務(wù)提供商開發(fā)。在討論CaaS產(chǎn)品時,“應(yīng)用狀態(tài)(application state)”的概念非常重要。
無狀態(tài)和有狀態(tài)的應(yīng)用
理解“應(yīng)用狀態(tài)”的概念有助于理解服務(wù)于應(yīng)用的IT基礎(chǔ)架構(gòu)不斷發(fā)展的需求。應(yīng)用狀態(tài)是應(yīng)用組件執(zhí)行其預(yù)期功能所需的數(shù)據(jù)。一個應(yīng)用可能需要配置信息、用戶證書(user credentials)、用戶畫像 (user profile) 、用戶歷史記錄、點(diǎn)擊流數(shù)據(jù)(clickstream data)等等。與應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)可以存儲在許多不同的物理位置:本地服務(wù)器緩存、文件系統(tǒng)、數(shù)據(jù)庫表或其它存儲資源中。有許多因素有助于全面了解應(yīng)用狀態(tài),如應(yīng)用的持久性要求(正常運(yùn)行時間、重新啟動要求、數(shù)據(jù)丟失窗口等),配置狀態(tài),會話狀態(tài),基礎(chǔ)架構(gòu)狀態(tài)(如網(wǎng)絡(luò)地址、集群狀態(tài))等等。
無狀態(tài)的應(yīng)用不會保存在一個會話中生成的客戶端數(shù)據(jù),以在與該客戶端的下一個會話中使用。每一個會話都像第一次一樣執(zhí)行,響應(yīng)不依賴于前一個會話的數(shù)據(jù)。像HTTP這樣的協(xié)議是無狀態(tài)的,Web服務(wù)器不會記住處理中的跨頁面請求的任何狀態(tài)。
相反,有狀態(tài)的應(yīng)用會保存以前會話的數(shù)據(jù),它們限制需要存儲在客戶端的數(shù)據(jù),并將上一次使用的信息保留在服務(wù)器上以備下一次使用。需要執(zhí)行實(shí)時工作的應(yīng)用通常維護(hù)一些狀態(tài)信息以獲得快速的響應(yīng)時間。這樣的例子包括內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)、流媒體服務(wù)器、身份管理和身份驗(yàn)證服務(wù)器以及用于支付處理的核心交易系統(tǒng)。許多至關(guān)重要的關(guān)鍵應(yīng)用通常需要保留和管理狀態(tài)信息。復(fù)雜的分布式大數(shù)據(jù)、NoSQL和數(shù)據(jù)庫應(yīng)用都是有狀態(tài)的,需要在本地和云平臺中運(yùn)行。僅僅將存儲卷附加到Docker上不足以支持有狀態(tài)的應(yīng)用,因?yàn)檫@并不能解決性能的可預(yù)測性、應(yīng)用的可移植性和高可用性、生命周期管理等問題。因此,迫切需要云計(jì)算基礎(chǔ)架構(gòu)更好地支持有狀態(tài)的關(guān)鍵應(yīng)用。
容器編排(Orchestration)
只有當(dāng)容器能夠有效地部署、管理和擴(kuò)展時,將應(yīng)用放入容器才變得有趣。容器編排引擎發(fā)揮了管理容器集群的重要功能,是第四波IT基礎(chǔ)架構(gòu)的重要組成部分,其重要性之高,以至于引發(fā)了一場“容器編排大戰(zhàn)”。主要參戰(zhàn)方包括了Docker公司的Swarm,Redhat公司的Openshift,Rancher公司的Cattle,Mesosphere公司的Marathon,AWS公司的ECS,和CoreOS公司的Fleet。容器編排是戰(zhàn)略性的,它是更廣泛基礎(chǔ)架構(gòu)管理解決方案的一個組成部分。容器編排引擎的重心主要針對無狀態(tài)的云原生應(yīng)用。然而,也有一些公司在致力于提高容器化環(huán)境中支持像MySQL和PostgreSQL等開源數(shù)據(jù)庫的能力(如Kubernetes的StatefulSet),這就需要全面的基礎(chǔ)架構(gòu)控制,以滿足服務(wù)級別協(xié)議(SLA)、服務(wù)質(zhì)量(QoS)以及有狀態(tài)的應(yīng)用的高可用性要求。
7、第四波浪潮 - 應(yīng)用定義基礎(chǔ)設(shè)施(ADI)
ADI需求概述
隨著容器技術(shù)的興起,以及在共享多租戶基礎(chǔ)架構(gòu)上優(yōu)雅地運(yùn)行無狀態(tài)和有狀態(tài)的應(yīng)用的需求的上升,應(yīng)用定義基礎(chǔ)架構(gòu)(ADI)應(yīng)運(yùn)而生。
ADI可以描述為一個基于容器的、應(yīng)用感知的計(jì)算和存儲平臺,運(yùn)行在通用硬件組件上。它的軟件有效地抽象了底層服務(wù)器、虛擬機(jī)、網(wǎng)絡(luò)和存儲邊界,以生成一個集計(jì)算、存儲和數(shù)據(jù)的連續(xù)體。許多不同的容器化應(yīng)用都可以在這個連續(xù)體中運(yùn)行,而不會影響彼此的性能。
應(yīng)用的可移植性和可擴(kuò)展性得到了提高,因?yàn)橛?jì)算和存儲是分離的;應(yīng)用可以在不移動或復(fù)制數(shù)據(jù)的情況下圍繞著連續(xù)體自由移動。復(fù)雜的分布式應(yīng)用,如NoSQL、Hadoop、Cassandra和Mongo,可以快速輕松地部署。
ADI能夠根據(jù)單個應(yīng)用的需求以及環(huán)境的拓?fù)浣Y(jié)構(gòu)智能地提供容器和存儲,并配置應(yīng)用以充分利用這些組件。ADI確保所有應(yīng)用獲得足夠的計(jì)算、存儲和網(wǎng)絡(luò)資源,以滿足用戶定義的服務(wù)質(zhì)量要求;保證了所有應(yīng)用的性能的可預(yù)測性。
ADI應(yīng)該能夠自動恢復(fù)失敗的節(jié)點(diǎn)和磁盤,并在服務(wù)器之間無縫地移動工作負(fù)載。因此,硬件的使用更加有效率,對硬件的需求降低,從而可以為不可避免的性能峰值預(yù)留更多的硬件。
Robin Systems公司的ADI介紹
Robin Systems 公司(以下簡稱Robin或Robin公司)的應(yīng)用定義基礎(chǔ)架構(gòu)(ADI)是第四代IT基礎(chǔ)架構(gòu)解決方案,專門設(shè)計(jì)用于滿足裸機(jī)、hypervisor虛擬化或HCI所不能滿足的快速發(fā)展的新興需求。Robin公司的ADI由容器支持,但遠(yuǎn)遠(yuǎn)超出了容器編排或基于容器的IT基礎(chǔ)架構(gòu)的傳統(tǒng)概念。
圖4: Robin公司ADI功能框架圖
Robin公司的ADI是一個基于容器、應(yīng)用感知的計(jì)算和存儲平臺。其軟件有效地抽象了底層服務(wù)器、虛擬機(jī)、網(wǎng)絡(luò)和存儲邊界,它是一個集計(jì)算、存儲和數(shù)據(jù)的連續(xù)體。許多不同的容器化應(yīng)用都可以在這個連續(xù)體中運(yùn)行,而不會影響彼此的性能。應(yīng)用的可移植性和可擴(kuò)展性得到了提高,因?yàn)橛?jì)算和存儲是分離的;應(yīng)用可以在不移動或復(fù)制數(shù)據(jù)的情況下圍繞著連續(xù)體自由移動。復(fù)雜的分布式應(yīng)用,如NoSQL、Hadoop、Cassandra和Mongo,可以快速輕松地部署。包含了整個應(yīng)用環(huán)境的Robin應(yīng)用級快照使得快速創(chuàng)建生產(chǎn)環(huán)境的副本變得輕松容易,而不會影響生產(chǎn)性能,并且可以快速回滾到以前的時間點(diǎn)以更正問題。
Robin技術(shù)的關(guān)鍵是它的應(yīng)用感知結(jié)構(gòu)控制器(Application-Aware Fabric Controller),它是所有應(yīng)用部署和數(shù)據(jù)移動的管理層。它控制和管理著兩個主要資產(chǎn),即應(yīng)用感知計(jì)算平面(Application-Aware Compute Plane)和應(yīng)用感知存儲平面(Application-Aware Storage Plane),這兩個資產(chǎn)分別將計(jì)算和存儲虛擬化,消除了容量的孤島??刂破髂軌蚋鶕?jù)單個應(yīng)用的需求以及環(huán)境的拓?fù)浣Y(jié)構(gòu)智能地提供容器和存儲,并配置應(yīng)用以充分利用這些組件。這使得通過一次點(diǎn)擊來部署Cassandra和Hadoop這樣的復(fù)雜的多容器應(yīng)用成為可能。此外,F(xiàn)abric Controller確保了所有應(yīng)用獲得足夠的計(jì)算、存儲和網(wǎng)絡(luò)資源,以滿足用戶定義的服務(wù)質(zhì)量要求;保證了所有應(yīng)用的性能的可預(yù)測性。Robin控制整個I/O路徑,因此它可以管理讀/寫請求的優(yōu)先級,而且可以提供保證的最小和最大IOPS級別,以確保應(yīng)用的性能不受鄰近噪聲的影響。
Robin ADI還通過一鍵單擊粒度快照和精簡克?。梢栽趲酌腌妰?nèi)創(chuàng)建)提供數(shù)據(jù)生命周期管理。不像克隆和快照的其他實(shí)現(xiàn),Robin克隆了整個應(yīng)用的環(huán)境,包括存儲、操作系統(tǒng)、應(yīng)用配置和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。如果一個應(yīng)用出現(xiàn)了問題,數(shù)據(jù)可以在幾秒鐘內(nèi)回滾到已知的可工作的快照。為了確保高可用性,F(xiàn)abric Controller監(jiān)視基礎(chǔ)架構(gòu)并自動恢復(fù)故障節(jié)點(diǎn)和磁盤。由于Robin能夠無縫地在服務(wù)器之間移動實(shí)時運(yùn)行的工作負(fù)載而無需中斷服務(wù),因此可以更高效地使用硬件,對硬件的需求降低,從而可以為不可避免的性能峰值預(yù)留更多的硬件。
Robin公司的ADI技術(shù)創(chuàng)新包括:
1、100%基于容器。沒有基于虛擬機(jī)管理器的虛擬化,因此消除了在每個虛擬機(jī)中實(shí)例化一個完整的客戶端操作系統(tǒng)所需的性能、內(nèi)存和準(zhǔn)備時間。
2、支持當(dāng)前和未來的分布式計(jì)算應(yīng)用和分析架構(gòu)。
3、無需了解底層硬件部件細(xì)節(jié),通過解耦計(jì)算和存儲硬件,保證這些位于不同創(chuàng)新曲線上的資源可以獨(dú)立擴(kuò)展。在HCI中,計(jì)算和存儲在購買時是緊密耦合的,并且要保證不會隨著應(yīng)用需求的發(fā)展而出錯。HCI的數(shù)據(jù)和存儲與計(jì)算位于同一設(shè)備中的這一優(yōu)勢,Robin 的ADI解決方案完全可以支持,同時還能夠以不同的方式優(yōu)化計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn),以滿足“計(jì)算密集型”工作負(fù)載和/或“數(shù)據(jù)密集型”工作負(fù)載的不同需求。
4、強(qiáng)大的服務(wù)質(zhì)量(QoS)和流量管理機(jī)制,保證了在整個ADI中同時運(yùn)行的每個應(yīng)用的服務(wù)級別協(xié)議(SLA)。這是通過application-to-spindle的基礎(chǔ)架構(gòu)控制來實(shí)現(xiàn)的,它需要深度存儲層(deep storage tier)的創(chuàng)新,而這些創(chuàng)新僅僅依靠任何容器管理/容器編排框架都是不可能實(shí)現(xiàn)的。正如網(wǎng)絡(luò)的發(fā)展提供強(qiáng)大的包級服務(wù)質(zhì)量(QoS)來支持IP語音一樣,ADI也在發(fā)展具有強(qiáng)大QoS的IT基礎(chǔ)架構(gòu),以保證大規(guī)??蓴U(kuò)展的無狀態(tài)和有狀態(tài)的應(yīng)用能夠在統(tǒng)一平臺上得到良好的支持。
5、專門構(gòu)建的“應(yīng)用感知”的存儲堆棧。這將啟用幾個以應(yīng)用為中心的生命周期管理工作流,否則它們將被降級為普通的存儲卷管理。這很難用現(xiàn)成的存儲解決方案來解決。請注意,沒有存儲本身可以是“應(yīng)用感知的”。Robin的ADI解決方案提供了一個存儲堆棧,它帶有可編程原語和application-to-spindle集成,后者可以將這個存儲堆棧配置為 “應(yīng)用感知”的。這種端到端和從上到下的基礎(chǔ)架構(gòu)遠(yuǎn)遠(yuǎn)超出了容器編排引擎與第三方通用存儲結(jié)合時所能實(shí)現(xiàn)的功能。
6、非常高的存儲堆棧性能,這點(diǎn)在第三方測試和客戶環(huán)境中得到驗(yàn)證,它可以使用所有的通用組件,以遠(yuǎn)低于高端EMC VMAX陣列的成本,達(dá)到相同級別的性能。Robin的ADI解決方案的存儲堆棧被證明能比其它的存儲堆棧(如Ceph, Gluster, Nutanix, Rubrik和 Cohesity)提供更高的性能基準(zhǔn)測試結(jié)果。
7、一種“應(yīng)用感知”的容器編排架構(gòu),內(nèi)置以應(yīng)用為中心的原語,為廣泛快速增長的數(shù)據(jù)驅(qū)動應(yīng)用庫提供了PaaS體驗(yàn)。
8、業(yè)界第一個同時為無狀態(tài)和有狀態(tài)的數(shù)據(jù)驅(qū)動應(yīng)用提供PaaS服務(wù)的ADI。而CloudFoundry, Kubernetes, Mesos都不支持類似的BigData,NoSQL和符合ACID規(guī)范的關(guān)系數(shù)據(jù)庫應(yīng)用。
9、作為領(lǐng)先的開源分布式計(jì)算應(yīng)用具有的易用性。支持廣泛且快速增長的戰(zhàn)略開源應(yīng)用庫,包括MongoDB,Couchbase,Hortonworks, Elasticsearch, ELK (ElasticSearch + Logstash + Kibana), Solr, Oracle,Cassandra, Hadoop, Cloudera, Redis, Spark, VoltDB, MariaDB, MySQL, PostgreSQL,和 Kafka.
10、作為穩(wěn)定的基礎(chǔ)架構(gòu)管理基礎(chǔ)的可擴(kuò)展性。支持不斷增長的應(yīng)用庫。第三方合作伙伴和客戶已經(jīng)為流行的第三方軟件包(如Splunk)獨(dú)立構(gòu)建了眾多應(yīng)用。
11、通過“一鍵部署”功能對應(yīng)用提供支持,并且通過完整的應(yīng)用生命周期管理提供類似應(yīng)用商店的體驗(yàn)。允許定制名字為“bundle”的應(yīng)用部署配置文件/模板。追求極致的易用性,致力將用戶的每一個復(fù)雜的操作簡化為“一鍵”體驗(yàn)。這是Robin的一種有意識的設(shè)計(jì)理念,當(dāng)它們?yōu)楫a(chǎn)品添加新功能時,會嚴(yán)格執(zhí)行該理念。
12、可以和裸機(jī)媲美的性能。下面是Enterprise Strategy Group提供的第三方基準(zhǔn)測試的結(jié)果,這個測試對一個多節(jié)點(diǎn)Cassandra數(shù)據(jù)庫運(yùn)行了7種不同的Yahoo Cloud Serving Benchmark (YCSB)測試:
圖5: ESB Group提供的1代裸機(jī)、2代虛擬機(jī)和4代Robin's ADI的基準(zhǔn)測試結(jié)果(來源:https://robin systems.com/wp-content/uploads/2017/05/esg-lab-review-robin-systems-jan-2017.pdf,第7頁)
Robin的ADI解決方案在《財富》50強(qiáng)公司的任務(wù)關(guān)鍵型生產(chǎn)環(huán)境中得到了大規(guī)模部署和驗(yàn)證。其中一個著名的部署是在一個由通用硬件構(gòu)建的共享基礎(chǔ)架構(gòu)上同時運(yùn)行一個Cassandra虛擬集群、一個Hadoop虛擬集群、一個Elk虛擬集群、一個復(fù)雜分析管道和多個符合ACID規(guī)范的關(guān)系型數(shù)據(jù)庫。每一個復(fù)雜的應(yīng)用都可以用一個蘋果應(yīng)用商店實(shí)例化,就像點(diǎn)擊一個圖標(biāo)一樣。
8、Robin ADI和Kubernetes K8S比較
Kubernetes(K8S)在前面已經(jīng)討論過,它是一個面向無狀態(tài)應(yīng)用的容器編排框架。Kubernetes是一種重要的新興技術(shù),在無狀態(tài)容器管理(例如,服務(wù)發(fā)現(xiàn)和負(fù)載平衡)方面具有優(yōu)勢。這些在有狀態(tài)應(yīng)用的世界和/或Robin ADI服務(wù)的現(xiàn)代數(shù)據(jù)堆棧應(yīng)用中都不太用得上。Kubernetes(K8S)是在Google開發(fā)的,它用激進(jìn)地過度構(gòu)建云硬件資源的方式來解決共享資源的爭用。將同一用戶空間中并發(fā)運(yùn)行多個容器的問題拋給硬件和技術(shù)人員,然后精簡主機(jī)操作系統(tǒng)內(nèi)核的做法,似乎不太可能滿足大多數(shù)私有云和混合云向前發(fā)展的需要。
相反,Robin ADI是一個大數(shù)據(jù),NoSQL和數(shù)據(jù)庫部署和應(yīng)用生命周期管理框架,面向復(fù)雜的分布式和老舊應(yīng)用。Robin ADI為每個在倉庫規(guī)模的計(jì)算設(shè)備上運(yùn)行的容器提供了可靠的QoS和SLA。
與Kubernetes(K8S)相比,RobinADI在5個關(guān)鍵領(lǐng)域具有獨(dú)特的優(yōu)勢:
●容器管理:Robin在虛擬化Linux 名字空間 和cgroups方面做了大量的工作。沒有它,人們就不會認(rèn)真考慮將Robin ADI的“開箱即用”支持的復(fù)雜應(yīng)用(如Cloudera, DB2, SAP HANA等)進(jìn)行容器化。Robin在解決Docker對容器rootfs的狀態(tài)保護(hù)的局限方面做了大量的工作。因此,它們在無縫地將復(fù)雜應(yīng)用的容器從一個物理主機(jī)遷移到另一個物理主機(jī)(以實(shí)現(xiàn)高可用性)方面,具有獨(dú)特的優(yōu)勢。Robin通過應(yīng)用專用的“hooks”技術(shù)擴(kuò)展了容器配置管理,“hooks”是Kubernetes所缺乏的概念。正因?yàn)槿绱?,Robin的ADI可以快速地將復(fù)雜的有狀態(tài)的應(yīng)用打包在一起。
●網(wǎng)絡(luò)管理:Kubernetes使用覆蓋網(wǎng)絡(luò)(overlay networking)。這使得復(fù)雜的分布式應(yīng)用的IP地址管理變得困難。例如,在Kubernetes中,當(dāng)一個容器從一個故障主機(jī)轉(zhuǎn)移到另一個主機(jī)時,它會得到一個新的IP地址。這會破壞分布式應(yīng)用的網(wǎng)絡(luò)拓?fù)湟晥D。有一些復(fù)雜的、特定于應(yīng)用的解決方法可以繞過這個限制。鑒于Kubernetes關(guān)注的是不受此影響的無狀態(tài)的應(yīng)用,所以Kubernetes并沒有解決這個問題。Robin使用網(wǎng)橋網(wǎng)絡(luò)技術(shù)(bridge networking,比覆蓋網(wǎng)絡(luò)性能高),并在容器從一個物理主機(jī)移動到另一個主機(jī)時管理綁定到容器的IP地址。這是Robin ADI的一大優(yōu)勢,也是實(shí)現(xiàn)大規(guī)?;A(chǔ)架構(gòu)、應(yīng)用和容器可擴(kuò)展性等廣泛功能的關(guān)鍵因素。
●應(yīng)用的可移植性:Robin ADI允許在云內(nèi)和云間進(jìn)行完整的應(yīng)用和數(shù)據(jù)移植。這種將一個活動的容器集群在運(yùn)行時從一個主機(jī)移動到另一個主機(jī)而不中斷其服務(wù)的能力是一種創(chuàng)新。例如,你啟動了一個作業(yè),讓它運(yùn)行3天,這時你覺得這個作業(yè)運(yùn)行太慢。因?yàn)镽obin ADI提供了從應(yīng)用到存儲設(shè)備的基礎(chǔ)架構(gòu)控制,所以你可以給整個運(yùn)行時應(yīng)用和數(shù)據(jù)作個快照,將這個作業(yè)的所有組件遷移到一個更大的集群,并重新啟動停止的作業(yè),而不會丟失迄今為止已完成的部分。而使用Kubernetes (KS8)遷移一個在容器集群中運(yùn)行了部分作業(yè)的應(yīng)用時,這個作業(yè)需要被停止并在新的更大的集群中重新從頭開始。
●使用體驗(yàn):Kubernetes被廣泛認(rèn)為安裝和維護(hù)復(fù)雜。而Robin ADI只需要幾分鐘就可以安裝完畢,并且有著類似蘋果的使用體驗(yàn):每一次操作都可以簡化為“一鍵”體驗(yàn)。這是由細(xì)粒度“應(yīng)用到存儲”基礎(chǔ)架構(gòu)控制實(shí)現(xiàn)的。
●存儲管理:這點(diǎn)上面已經(jīng)詳細(xì)討論過。
9、Robin ADI解決方案推動了第四波基礎(chǔ)架構(gòu)的創(chuàng)新
當(dāng)今IT界面臨的一個關(guān)鍵挑戰(zhàn)是使許多分布式計(jì)算應(yīng)用能夠在高效的共享基礎(chǔ)架構(gòu)上和平共存,在這種基礎(chǔ)架構(gòu)中,每個應(yīng)用都可以根據(jù)工作負(fù)載的要求以近乎實(shí)時的方式進(jìn)行適當(dāng)?shù)臄U(kuò)展,而不會損害其他應(yīng)用的性能。
在當(dāng)今的私有云、公共云和混合云中,業(yè)務(wù)連續(xù)性和災(zāi)難恢復(fù)的傳統(tǒng)概念集中在數(shù)據(jù)可移植性上。它不僅僅是指數(shù)據(jù)的可移植性,而且指跨平臺的完整的應(yīng)用和數(shù)據(jù)的可移植性。這不僅意味著應(yīng)用的可執(zhí)行文件的移動,還意味著實(shí)際運(yùn)行時的應(yīng)用和相關(guān)數(shù)據(jù)在使用中的移動。
基礎(chǔ)架構(gòu)傾向于增加和擴(kuò)展,而不是完全被替換。因此,基于虛擬化和HCI的第二和第三波IT基礎(chǔ)架構(gòu)還需要很多年的時間被采用新技術(shù)的架構(gòu)所取代。然而,向第四波IT基礎(chǔ)架構(gòu)的過渡已經(jīng)開始。
Robin Systems公司已經(jīng)構(gòu)建了第一個真正的ADI解決方案。這是一個轉(zhuǎn)折點(diǎn),無狀態(tài)和有狀態(tài)的應(yīng)用都可以在一個穩(wěn)定的、高性能的,高成本效益的,完全由經(jīng)濟(jì)高效的通用硬件構(gòu)建而成的共享基礎(chǔ)架構(gòu)上優(yōu)雅地運(yùn)行和擴(kuò)展。沒有我們不知道的復(fù)雜性需要隱藏,也沒有類似其它方案的虛擬化管理軟件的成本需要降低,因?yàn)檫@些問題已經(jīng)完全被云平臺管理堆棧消除了。
有了Robin ADI,你可以這樣很容易地在你的應(yīng)用中啟動一個IT項(xiàng)目:你只需要描述它的需求,而基礎(chǔ)架構(gòu)就會自行組裝和配置以滿足這些需求。這是Robin ADI解決方案在存儲層的重大創(chuàng)新。
最后,Robin ADI允許從容器構(gòu)建的整個活動集群從一個主機(jī)操作系統(tǒng)遷移到另一個主機(jī)操作系統(tǒng),并在不中斷服務(wù)的情況下進(jìn)行放大或縮小。這賦予應(yīng)用和數(shù)據(jù)新的基于云平臺的獨(dú)立性,它們可以無縫地在私有云、公共云和混合云之間遷移。Robin ADI獨(dú)特的視角和突破性創(chuàng)新是基于每個容器集群的“application-to-spindle” QoS和可靠的SLA。這需要跨計(jì)算層、存儲層和網(wǎng)絡(luò)層,并且一起協(xié)力工作的創(chuàng)新。這種以應(yīng)用為中心的工作流管理將原生云應(yīng)用和傳統(tǒng)應(yīng)用的簡化提升到了一個新的水平,達(dá)到了大道至簡的終極境界。
原文:https://www.linkedin.com/pulse/how-application-defined-infrastructure-adi-disrupt-cloud-chris-rust/
作者簡介:Chris Rust, Clear Venture公司聯(lián)合創(chuàng)始人。