Docker帶來(lái)了容器的春天,但一直不瘟不火的PaaS能否因此獲益?紅帽副總裁、云與OpenShift業(yè)務(wù)部門(mén)總經(jīng)理Ashesh Badani來(lái)華探討容器管理、OpenShift以及PaaS的發(fā)展趨勢(shì),對(duì)此給出了肯定的答案。
Ashesh Badani首先表示,紅帽一直堅(jiān)信軟件會(huì)顛覆各行各業(yè),每一家公司最終都可能成為軟件公司,不能參與到顛覆大潮的公司,就會(huì)被別人顛覆。
他認(rèn)為,軟件市場(chǎng)未來(lái)的盈利點(diǎn)在PaaS和SaaS層,PaaS的利潤(rùn)率將在40%到60%之間。而面向DevOps的PaaS,需要集成對(duì)SDN,以及Docker、Kubernetes等新興技術(shù)的支持,把公有云的體驗(yàn)通過(guò)開(kāi)源技術(shù)帶到企業(yè)私有云環(huán)境里,同時(shí)兼容現(xiàn)有的技術(shù)架構(gòu),這是因?yàn)榛旌显仆瑯邮俏磥?lái)的一大趨勢(shì),應(yīng)用是分布式應(yīng)用,它既可以存在于傳統(tǒng)環(huán)境中,也可以在異構(gòu)環(huán)境中。紅帽O(jiān)penShift的賣(mài)點(diǎn),就是借助于容器技術(shù),把應(yīng)用開(kāi)發(fā)速度和運(yùn)營(yíng)效率結(jié)合起來(lái),充分體現(xiàn)DevOps模式的高效性。
Ashesh Badani還回答了OpenShift與CloudFoundry競(jìng)爭(zhēng)的問(wèn)題。他表示,CloudFoundry提出來(lái)了一套兼容Docker格式的技術(shù),但并不是Docker,并且對(duì)傳統(tǒng)有狀態(tài)的應(yīng)用程序的處理技術(shù)不是很清晰;最關(guān)鍵的,是目前OpenShift 3已經(jīng)是GA,已經(jīng)可以發(fā)行給企業(yè)客戶(hù)使用,而CloudFoundry并沒(méi)有GA。
云計(jì)算市場(chǎng)趨勢(shì)
Ashesh Badani分析了如下的云計(jì)算市場(chǎng)趨勢(shì):
PaaS市場(chǎng)的競(jìng)爭(zhēng)。高盛與Gartner共同進(jìn)行的一項(xiàng)調(diào)查顯示,IaaS和PaaS未來(lái)五年的復(fù)合增長(zhǎng)率將會(huì)達(dá)到30%。但由于亞馬遜、谷歌、微軟的出現(xiàn),傳統(tǒng)軟件行業(yè)面臨著很多來(lái)自?xún)r(jià)格的壓力,要向著份額更多、利潤(rùn)率更大的行業(yè)領(lǐng)域發(fā)展,比如PaaS和SaaS方向。根據(jù)行業(yè)分析,IaaS的利潤(rùn)率在5%到20%之間,而PaaS的利潤(rùn)率更是在40%到60%之間。
越來(lái)越多的工作負(fù)載向云遷移。在未來(lái)五年,會(huì)有更多的工作負(fù)載和流量向云端遷移。根據(jù)Gartner的預(yù)測(cè),到2020年混合云結(jié)構(gòu)會(huì)成型,其中一部分是我們傳統(tǒng)的架構(gòu),此外還有私有云、公有云兩大組成部分。
容器技術(shù)備受關(guān)注。因?yàn)槿萜骷夹g(shù)具備高敏捷性、靈活性,并且它的效率非常高。
微服務(wù)架構(gòu)。SaaS和服務(wù)提供商都非常關(guān)注微服務(wù)的概念,把過(guò)去一套服務(wù)分隔成微小的服務(wù)單元,這樣能夠大大增加服務(wù)的靈活性和靈敏度。
CIO主要關(guān)注兩個(gè)話(huà)題:1.關(guān)于價(jià)格成本的壓力;2. 關(guān)于DevOps模式。DevOps模式可以使他們的操作更加靈活。
面向DevOps,紅帽P(pán)aaS產(chǎn)品OpenShift的設(shè)計(jì)理念包括:
OpenShift具有自助式特征,很多事情它都可以自動(dòng)完成。
OpenShift支持多語(yǔ)言、多框架,不管是Java,還是Ruby。
支持自動(dòng)化和團(tuán)隊(duì)協(xié)調(diào)與協(xié)作能力,在運(yùn)營(yíng)方面可以達(dá)到較高的可靠性、安全性、可預(yù)測(cè)性以及可擴(kuò)展性。
一切都是基于開(kāi)源,都可以在開(kāi)源社區(qū)中分享。同時(shí)盡量讓它基于一種統(tǒng)一的標(biāo)準(zhǔn),以免出現(xiàn)被鎖定的現(xiàn)象。
OpenShift 3的主要特點(diǎn)
紅帽公司在6月份發(fā)布了OpenShift3,其首要目的就是保證平臺(tái)上大量的功能模塊和組件具備跨平臺(tái)、跨環(huán)境的可遷移性。此外,作為一個(gè)輕量級(jí)操作系統(tǒng),OpenShift 3也充分使用了容器技術(shù)。并希望該技術(shù)也能夠應(yīng)用在紅帽其它產(chǎn)品上。在初始階段就已經(jīng)設(shè)計(jì),讓容器技術(shù)使用行業(yè)標(biāo)準(zhǔn)的編排和管理工具Kubernetes,從而得到一個(gè)很好的服務(wù)和生態(tài)系統(tǒng)。
OpenShift 3集成了Docker技術(shù), Docker格式任何的鏡像都可以在OpenShift 3上來(lái)運(yùn)行,可以更快地對(duì)軟件進(jìn)行打包,然后在紅帽的平臺(tái)上運(yùn)行。另外有一個(gè)Atomic部署模式,只有在Docker或者鏡像里面發(fā)生了變化,它才會(huì)進(jìn)行變動(dòng),在其它時(shí)候就不會(huì)浪費(fèi)時(shí)間和資源。這也使平臺(tái)有了一個(gè)更大的生態(tài)系統(tǒng)——Docker hub上面可以看到來(lái)自于很多軟件公司的幾百甚至幾千個(gè)鏡像。
Ashesh Badani強(qiáng)調(diào)了使用容器技術(shù)的主要好處:
減少基礎(chǔ)設(shè)施的成本。一般而言,在一個(gè)VM上運(yùn)行應(yīng)用程序時(shí),虛擬機(jī)容量被浪費(fèi)掉。而當(dāng)運(yùn)用了容器技術(shù),一個(gè)VM上可以運(yùn)行幾百個(gè)或者更多的容器,容量的使用率和效率也會(huì)大大的提高,而且這些容器是由我們自己進(jìn)行管理的,可以有更多的主動(dòng)權(quán)。
由于是輕量級(jí)的操作系統(tǒng),所以對(duì)開(kāi)發(fā)者來(lái)說(shuō)體驗(yàn)是非常好的,因?yàn)樗拈_(kāi)發(fā)速度加快了很多。
從運(yùn)營(yíng)的角度來(lái)說(shuō),也更安全,而且運(yùn)營(yíng)的效率和管理效率也會(huì)更高。
為保證公有云中的安全性,鏡像的可信任,紅帽已經(jīng)在和幾百個(gè)ISV軟件提供商進(jìn)行容器認(rèn)證方面的合作,并為提供一些開(kāi)發(fā)包,如紅帽的容器開(kāi)發(fā)包工具,使他們能夠更容易的創(chuàng)建容器。此外,紅帽的Kinect計(jì)劃,在實(shí)際操作中能夠幫助合作伙伴來(lái)分享他們?cè)阽R像或容器方面的一些最佳方法。他們可以列出鏡像目錄,或者直接到紅帽注冊(cè)器進(jìn)行注冊(cè)。
具體的方法,就是鏡像的內(nèi)容和元數(shù)據(jù)是分開(kāi)的(鏡像元數(shù)據(jù)包含誰(shuí)創(chuàng)造了鏡像、這些鏡像之間是怎樣進(jìn)行互動(dòng)等信息)。在搜索一個(gè)鏡像的時(shí)候,它就會(huì)根據(jù)鏡像元數(shù)據(jù)中包含的信息來(lái)你匹配搜索結(jié)果。然后再根據(jù)搜索結(jié)果把內(nèi)容提出來(lái),再和搜索結(jié)果的元數(shù)據(jù)進(jìn)行匹配。
當(dāng)有復(fù)雜應(yīng)用的時(shí)候,就會(huì)需要多個(gè)容器,并且他們之間需要互相配合。所以對(duì)于一個(gè)運(yùn)行復(fù)雜應(yīng)用的平臺(tái)來(lái)說(shuō),它會(huì)涉及到多個(gè)云環(huán)境。在這種情況下,我們就需要編配很多容器。紅帽利用了谷歌的Kubernetes管理技術(shù)來(lái)編配和管理容器。它的管理方式主要是管理一些超大規(guī)模并且有多個(gè)容器的環(huán)境,尤其是在主機(jī)集群的環(huán)境下,能更好的發(fā)揮它的管理作用。比如其中一個(gè)容器要宕掉的話(huà),很快其它的容器就會(huì)填補(bǔ)上,這種調(diào)配和編配能力非常強(qiáng)。它把這層抽象出來(lái),而且是基于預(yù)先設(shè)定的規(guī)則進(jìn)行處理的。
涉及混合云的環(huán)境還需要跨主機(jī)、跨平臺(tái)、跨環(huán)境來(lái)管理這些容器。
在運(yùn)行這些容器的時(shí)候,紅帽還可以根據(jù)不同客戶(hù)的不同規(guī)則和需求,把它分為不同的區(qū)域,在不同的區(qū)域之間進(jìn)行容器的管理。
對(duì)于多個(gè)容器運(yùn)行在多個(gè)主機(jī)的情況,還需要解決IP尋址和SDN的問(wèn)題。紅帽通過(guò)內(nèi)置OpenShift OVS產(chǎn)品來(lái)支持SDN,接下來(lái)還會(huì)支持包括思科在內(nèi)的新的虛擬網(wǎng)絡(luò)技術(shù)。
存儲(chǔ)擴(kuò)展也涉及多種選擇,比如說(shuō)NFS的擴(kuò)展方式,或者像亞馬遜、谷歌所提供的其它一些云存儲(chǔ)方式,以確保容器宕掉的時(shí)候不會(huì)因?yàn)闆](méi)有持久化的存儲(chǔ)而丟失數(shù)據(jù)。
不過(guò),一個(gè)實(shí)際的問(wèn)題,是如果現(xiàn)在企業(yè)使用的Git來(lái)管理它的代碼,使用Jenkens來(lái)做CI,那么他們用OpenShift就會(huì)非常得心應(yīng)手,很好遷移。但如果企業(yè)用的是其它的源代碼庫(kù),遷移到OpenShift應(yīng)該注意哪些方面的問(wèn)題呢?
Ashesh Badani認(rèn)為,這其實(shí)很簡(jiǎn)單,包括網(wǎng)絡(luò)、存儲(chǔ)和源代碼管理,目前整個(gè)應(yīng)用程序是一種框架型的,都是標(biāo)準(zhǔn)接口模式,要想支持新的東西,只要有人去實(shí)現(xiàn)就可以了。至于是不是紅帽要去開(kāi)發(fā)SVN、CVS的支持,就要看有沒(méi)有這種訴求。他表示,絕大多數(shù)軟件開(kāi)發(fā)都是社區(qū)模式,只要有人對(duì)這個(gè)方向感興趣,并且能夠做出足夠好的貢獻(xiàn),紅帽就會(huì)把它們放到一起。
換言之,企業(yè)用戶(hù)如果想支持自己內(nèi)部傳統(tǒng)的某些東西,只要遵循這個(gè)標(biāo)準(zhǔn)去開(kāi)發(fā)就可以了。就Jenkens而言,Jenkens公司現(xiàn)在與紅帽是技術(shù)合作伙伴關(guān)系,可以自己開(kāi)發(fā)一個(gè)接口和紅帽的平臺(tái)進(jìn)行對(duì)接。
OpenShift與Kubernetes
Ashesh Badani表示,整個(gè)容器技術(shù)是由三部分組成的,其中Cgroup和NameSpace這兩部分技術(shù)是由谷歌提出的,但是谷歌并沒(méi)有提出一個(gè)完整的容器解決方案。由谷歌提供的這兩個(gè)基礎(chǔ)技術(shù)跟紅帽結(jié)合在一起成就了Linux Container技術(shù)。谷歌提供的是容器編排的技術(shù),是構(gòu)建在容器之上的,但是谷歌的解決方案只是到了容器編排這一層,在這個(gè)基礎(chǔ)上紅帽提供了PaaS的方案。可以說(shuō)谷歌提供的是細(xì)節(jié)技術(shù),紅帽提供的是整體技術(shù)。
其實(shí)目前在中間編排這層上也還有其它的選擇,但是目前在市場(chǎng)上最有影響力的是谷歌。所以紅帽選擇最成熟的技術(shù)。現(xiàn)在谷歌嘗試解決問(wèn)題的前提仍然是應(yīng)用要運(yùn)行在其數(shù)據(jù)中心里面,但是紅帽已經(jīng)把公有云的體驗(yàn)通過(guò)開(kāi)源技術(shù)帶到企業(yè)私有云環(huán)境里,這一點(diǎn)是紅帽和谷歌的不同之處。
OpenShift 3案例
Ashesh Badani分享了一個(gè)OpenShift 3的客戶(hù)案例——歐洲旅游訂票業(yè)務(wù)公司——Amadeus(類(lèi)似于中國(guó)的中航信+攜程+去哪網(wǎng)),其在線(xiàn)機(jī)票訂購(gòu)量占全球總業(yè)務(wù)量的95%,還需要處理酒店預(yù)訂、租車(chē)業(yè)務(wù)等。Amadeus會(huì)不斷收到來(lái)自全球的數(shù)據(jù)更新需求,需要足夠快的反應(yīng)速度。另外還要保證高度的一致性,因?yàn)榭蛻?hù)會(huì)從任何地方接入多種系統(tǒng),比如航空系統(tǒng)、旅店系統(tǒng)、旅行社系統(tǒng)甚至保險(xiǎn)系統(tǒng)。
因?yàn)樗奶幚砹糠浅4螅诟叻迤诿棵肟赡軙?huì)接收21萬(wàn)個(gè)請(qǐng)求,同時(shí)可能需要處理的應(yīng)用服務(wù)器達(dá)上千個(gè)。他們要如何應(yīng)對(duì)呢?首先,Amadeus需要建立一個(gè)非常龐大的分布式系統(tǒng),這當(dāng)中承載著5000多個(gè)微服務(wù)。這些可能在傳統(tǒng)數(shù)據(jù)中心來(lái)部署,也可能在私有云或者公有云的環(huán)境下部署。在目前的狀態(tài)下,它要運(yùn)行幾千臺(tái)X86服務(wù)器。現(xiàn)在針對(duì)具體的任務(wù)或者請(qǐng)求,Amadeus有事先設(shè)定好的配置,而且改變起來(lái)并沒(méi)有那么靈活,這也是他們的挑戰(zhàn)之一。Amadeus現(xiàn)在想要做的就是改變這樣一種狀態(tài),也就是說(shuō)把那些運(yùn)行的數(shù)據(jù)和運(yùn)行地點(diǎn)分開(kāi),把所有的服務(wù)器作為一個(gè)整體來(lái)進(jìn)行管理,任何一個(gè)任務(wù)在任何服務(wù)器上都能運(yùn)行,也可以在任何的集群來(lái)啟動(dòng)這個(gè)任務(wù)。
當(dāng)紅帽公布V3的時(shí)候,Amadeus也發(fā)布了基于OpenShift V3的云服務(wù)平臺(tái),并充分利用了容器技術(shù)和Kubernetes容器編排技術(shù)。Amadeus覺(jué)得Kubernetes容器編排技術(shù)非常強(qiáng)大,可以根據(jù)事先設(shè)定好的規(guī)則進(jìn)行編排,而且具備非常強(qiáng)的自愈能力,一旦某一個(gè)容器宕掉,就可以自動(dòng)進(jìn)行另一種編排管理。有了容器技術(shù),就非常容易在不同環(huán)境下進(jìn)行部署。
從開(kāi)發(fā)到上線(xiàn)再到最后的產(chǎn)品,他們的整個(gè)流程非常清晰,而且非常統(tǒng)一。從開(kāi)發(fā)環(huán)境轉(zhuǎn)變到不同的IaaS環(huán)境,像公有云、私有云等等,最終Amadeus生產(chǎn)環(huán)境是基于OpenStack或者其它。紅帽和Amadeus已經(jīng)進(jìn)行了一年多的合作,雙方的軟件工程師交叉在雙方的團(tuán)隊(duì)中工作。
OpenShift vs CloudFoudry
OpenShift與CloudFoudry是兩大開(kāi)源PaaS,后者在中國(guó)也有一些案例,紅帽如何看待OpenShift與CloudFoudry的競(jìng)爭(zhēng)?
Ashesh Badani從如下幾點(diǎn)進(jìn)行了比較,核心觀(guān)點(diǎn)是說(shuō),紅帽的一切都是基于最受認(rèn)可的開(kāi)源技術(shù)構(gòu)建,生態(tài)支持更加強(qiáng)大,而CloudFoundry則趨于自成體系的專(zhuān)有軟件,但以前自成體系的微軟現(xiàn)在都已經(jīng)擁抱開(kāi)源。
技術(shù)方面:第一,OpenShift3底層容器技術(shù)是Docker,CloudFoundry提出來(lái)了一套兼容Docker格式的技術(shù),但并不是Docker,“是寶馬”和“像寶馬”是兩回事。第二,到目前為止,CloudFoundry解決問(wèn)題是云化的應(yīng)用程序可以并行在它上面,但是對(duì)于傳統(tǒng)的有狀態(tài)的應(yīng)用程序怎么處理, CloudFoundry并沒(méi)有給出一個(gè)清晰的技術(shù)性方案,相比之下紅帽是給出了解決方案的。
市場(chǎng)方面:CloudFoundry在國(guó)內(nèi)有一些應(yīng)用案例。但實(shí)際上CloudFoundry背后的Heroku公司,大概在去年12月份全球裁員80人左右。如果它發(fā)展足夠好的話(huà),肯定會(huì)擴(kuò)大陣容(當(dāng)然這也是和大數(shù)據(jù)相關(guān)的,它之前失敗的大數(shù)據(jù)投資造成了這種損失,云計(jì)算是另外一個(gè)話(huà)題)。反觀(guān)紅帽,過(guò)去12年每一個(gè)季度都在持續(xù)增長(zhǎng),整體客戶(hù)數(shù)量和市場(chǎng)份額增速也許不像友商發(fā)展的這么快,但是紅帽非常清晰地知道每個(gè)項(xiàng)目?jī)?nèi)容及進(jìn)程,以及紅帽在其中所作出的努力和結(jié)果。包括OpenShift Online里面有多少個(gè)應(yīng)用程序,有多少人注冊(cè),這些信息是可以公開(kāi)并討論的。對(duì)于CloudFoundry,目前很難詳細(xì)的描述清楚,這些具體案例是怎么做的、具體做了哪些、做了多少。盡管確實(shí)在國(guó)內(nèi)能夠聽(tīng)到許多關(guān)于他們的市場(chǎng)聲音,而且他們確實(shí)聚集了很多開(kāi)發(fā)人員和社區(qū)人員在做這個(gè)事情。
社區(qū)基礎(chǔ):在Docker社區(qū)里面,除了Docker公司之外,紅帽在企業(yè)里的貢獻(xiàn)程度是位居第二的。這方面跟Heroku一點(diǎn)關(guān)系都沒(méi)有。Pivotal還在做自己的那一套技術(shù)。大家都認(rèn)為Docker是一個(gè)方向,也許Pivotal做的東西更好,但是這個(gè)技術(shù)沒(méi)有被大家認(rèn)可。另外CloudFoundry自己有一些編排技術(shù),但是紅帽用的是谷歌的編排技術(shù),這個(gè)編排技術(shù)在整個(gè)社區(qū)里面被公認(rèn)為是最好的。在Kubernetes社區(qū),紅帽是僅次于谷歌公司之后的第二大貢獻(xiàn)者。
產(chǎn)品就緒:最關(guān)鍵一點(diǎn),目前OpenShift3已經(jīng)是GA了,已經(jīng)可以發(fā)行給企業(yè)客戶(hù)來(lái)使用,但是CloudFoundry并沒(méi)有GA。
路線(xiàn)選擇:紅帽是一家開(kāi)源公司,是社區(qū)驅(qū)動(dòng)的。而Pivotal在CloudFoundry產(chǎn)品上越來(lái)越趨向于傳統(tǒng)的專(zhuān)有軟件公司,就是說(shuō)它所有的東西,從底層技術(shù)到中間技術(shù),再到上層技術(shù),都自成體系。其實(shí)傳統(tǒng)公司有傳統(tǒng)公司的優(yōu)勢(shì),但開(kāi)源公司有開(kāi)源的優(yōu)勢(shì),只不過(guò)紅帽一直保持開(kāi)源的思路,通過(guò)開(kāi)源的方式,充分把企業(yè)客戶(hù)提出的要求,在上游社區(qū)中得以體現(xiàn)。這樣的社區(qū)可以保證例如OpenShift這樣的應(yīng)用服務(wù),不僅來(lái)自于紅帽,也有來(lái)自于其它社區(qū)的合作伙伴以及ISV的貢獻(xiàn)。