最近,InfoQ約談了VMware云系統(tǒng)的CTO兼首席架構(gòu)師Derek Collison先生。他們談到了該公司的新款開源PaaS產(chǎn)品——Cloud Foundry。
InfoQ:若面對一個架構(gòu)師或CIO,您會怎樣介紹Cloud Foundry呢?
Derek:Cloud Foundry是VMware的一款OpenPaaS,它支持多種框架、語言、云平臺及應(yīng)用服務(wù)。它也是一個分布式系統(tǒng),他為開發(fā)者提供了應(yīng)用和服務(wù)的舞臺,自己扛下了IaaS相關(guān)的通用的工作。該系統(tǒng)在設(shè)計時就已經(jīng)設(shè)計成可自愈的,并且在各層級都可水平擴展,既能在大型數(shù)據(jù)中心里運行,也能運行在一臺桌面電腦中,二者使用相同的代碼庫。
對系統(tǒng)進行擴展不會導(dǎo)致正在活動的用戶和應(yīng)用停止服務(wù)。由于系統(tǒng)與底層基礎(chǔ)設(shè)施間的連接是松耦合的,所以它能輕易地運行在任意IaaS層之上。即便跨多個目標云提供商,用戶與系統(tǒng)的交互也能保持一致,而且,人機交互基于人人都會實現(xiàn)的HTTP REST接口。此外,開源也是一個優(yōu)勢,對于那些想運行自己的實現(xiàn),或基于Cloud Foundry的架構(gòu)和代碼進行服務(wù)調(diào)用的架構(gòu)師和CIO來說,他們對此會感興趣的。
系統(tǒng)會為所有應(yīng)用程序?qū)嵗紤]負載均衡和高可用方面的事情。不論因為什么原因,應(yīng)用程序崩潰了,系統(tǒng)都會自動將它重啟。路由池會對多個應(yīng)用程序加以實時的負載均衡。擴展和收縮非常快速且便捷,這為工程師和開發(fā)者帶來了更多擴展和高可用的選擇。訪問服務(wù)、將應(yīng)用與服務(wù)綁定,這些工作都簡單且直觀,應(yīng)用開發(fā)者可使用多種不同的設(shè)計模式。對應(yīng)用和服務(wù)級安全的支持很廣闊,涵蓋了從多租戶的流程、文件系統(tǒng)和用戶級隔離到整個hypervisor一級的隔離。
InfoQ:人們?nèi)匀辉诠性坪退接性浦g爭論不休。你覺得Cloud Foundry對這一爭論會產(chǎn)生怎樣的影響呢?它會進一步加劇這一爭論,還是會讓此爭論變得不再有意義呢?
Derek:我認為爭論還是有意義的。驅(qū)使不同選擇的原因是有太多不同的情形及需求。有了Cloud Foundry之后,開發(fā)效率和業(yè)務(wù)敏捷對選擇帶來的影響會降低,而業(yè)務(wù)決策對選擇的影響會增大,我們相信這是件好事。通過Cloud Foundry部署在公有云平臺上的應(yīng)用,若要將它移植到私有云實例之上,只需要花少許力氣,甚至不費力。我們堅信我們對Developer Rights的承諾,為用戶提供最廣泛的選擇,上至使用諸如Cloud Foundry之類的公共服務(wù),下到自建系統(tǒng),以及位于二者之間的任意形態(tài)。
在我們發(fā)布Cloud Foundry時候,將同一應(yīng)用分別部署到由我們自己的VSphere技術(shù)和我們的合作伙伴RightScale所支持的Amazon之上的Cloud Foundry之上。最后,我們將此應(yīng)用部署到運行在一臺桌面電腦上運行的私有云實例之上。從提供的服務(wù)以及用戶的交互模式上看,所有環(huán)境是一樣的,未改動一個命令,系統(tǒng)代碼未作任何改動,應(yīng)用程序代碼也完全一致。
所以,不論是公有云、私有云亦或是混合云,Cloud Foundry都能作為提高開發(fā)者生產(chǎn)率、業(yè)務(wù)敏捷以及使用OpenPaaS的起點。
InfoQ:您最希望社區(qū)為Cloud Foundry作出那些方面的貢獻?
Derek:我相信只要系統(tǒng)能滿足社區(qū)的需求,社區(qū)對它的擁護會像洪水般涌來。Cloud Foundry在某些方面支持個性化PaaS。起初,你將會看到各種語言、框架和服務(wù)。在這些領(lǐng)域,我們已經(jīng)看到大量的請求了,我們還希望這種趨勢可以驗血。從長期來看,我希望隨著框架和服務(wù)穩(wěn)定后,最大的貢獻將落到工具和管理方面。
InfoQ:Google App Engine不能支持所有標準代碼庫在其PaaS環(huán)境上運行。Cloud Foundry上面部署的軟件有哪些內(nèi)置的限制呢?與完全掌控的基礎(chǔ)設(shè)施相比,哪些是不能在Cloud Foundry上做的事情呢?
Derek:我們正盡力讓大多數(shù)最新的應(yīng)用、服務(wù)和代碼庫能夠在不需任何修改的情況下直接運行在Cloud Foundry上。我們事先申明“Cloud Ready”,這不應(yīng)該要求你完全重寫你的應(yīng)用。
不過,的確有些是事情是辦不到的,比如綁定80端口,或?qū)?shù)據(jù)寫到你的應(yīng)用容器之外的一個任意目錄。此外,我們還會仔細監(jiān)控應(yīng)用程序的資源使用情況。不過,如果你使用一些標準代碼庫、最新的訪問數(shù)據(jù)庫的框架,或者你使用Redis做一些緩存,我覺得在云中做這些事情應(yīng)該是可能的,而且不需要太費勁。
InfoQ:近期AWS的服務(wù)故障會影響架構(gòu)師對云解決方案的看法嗎?Cloud Foundry對移植性的承諾能否疏離與特定云供應(yīng)商之間的緊密關(guān)系呢?
Derek:AWS做了一次試驗,我們每個人都能從中學(xué)習(xí)并獲益。我們?nèi)匀惶幱谠萍o元的起步階段,而且,我們?nèi)孕枰獜膽K痛的經(jīng)歷中學(xué)習(xí)。Cloud Foundry表明了VMware實實在在地想定義一個OpenSaaS,為用戶提供靈活選擇(不論是云提供商:公用云、私有云和混合云部署,應(yīng)用框架和運行時,以及服務(wù))的努力。
有選擇是好事!