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