在過去的12到18個月里,云計算出現(xiàn)了巨大的增長。而在幾年前,我們?nèi)粤?xí)慣于為每個應(yīng)用程序使用一個裸金屬服務(wù)器,然后進化到虛擬機管理程序(Hypervisors)和虛擬化,以便從我們有限的物理資源中擠出更多的資源。下一步是通過將這些虛擬機和實例拆分為較小的單元——容器,來進一步壓縮。我們現(xiàn)在看到的是這種進化的下一個階段——功能即服務(wù)(FaaS),或者說更廣為人知的無服務(wù)器(serverless)。
基本原理
我們一直在尋求辦法以優(yōu)化資源使用和成本,不過,有什么方法能比消除底層操作系統(tǒng)更好呢?對于大多數(shù)IT項目而言,人們所要做的就是編寫代碼來創(chuàng)建應(yīng)用程序,大部分人并不希望去管理操作系統(tǒng)和它們之間的依賴關(guān)系,或者說不希望去協(xié)調(diào)這些關(guān)系。我們寫好代碼,讓它能夠良好運行就是了——無需處理底層設(shè)施。這正是無服務(wù)器發(fā)揮作用的地方。
開拓者——AWS Lambda
就像開拓了云計算一樣,亞馬遜也是提供這種功能的先驅(qū)者。Lambda的基本概念是讓你上傳代碼(當然,它必須是在支持的語言中),不必擔(dān)心它是如何部署或擴展的——所有這些都是由平臺來處理的。你的代碼將基于你定義的觸發(fā)器運行,它可以是任何消息,從隊列中的消息到調(diào)度的任務(wù)——擁有很大的靈活性。你只需要根據(jù)你的功能實際使用時間和你分配給它的資源的數(shù)量來進行付費。如果你的代碼每天運行12次,那就付只需12次的錢??捎玫牧6仁侨绱酥?。除非你是一個會大量消耗資源的用戶,否則你就能獲得亞馬遜的免費服務(wù)(每月100萬請求免費)。
OpenStack呢?
在OpenStack中有很多東西都不能作為成熟的服務(wù)提供,也不像AWS的同類服務(wù)那樣成熟。LBaaS和DBaaS是OpenStack社區(qū)多年來嘗試生產(chǎn)的兩個例子。不幸的是,這些服務(wù)的收效并不讓人滿意,許多企業(yè)拒絕采用它們,因為缺乏基本的功能,即使是在幾次更新之后。
OpenStack社區(qū)已經(jīng)認識到無服務(wù)器基礎(chǔ)設(shè)施的趨勢,并且在OpenStack中也會有這種服務(wù)的需求。目前,在OpenStack上有兩項提供FaaS的項目,這兩個項目都得到了商業(yè)公司的支持。
StackStorm
StackStorm將他們的產(chǎn)品定義為“事件驅(qū)動的自動化平臺”,并在波士頓的最近一次OpenStack峰會上進行了展示。
正如你在上面看到的,解決方案本身使用了許多其他的OpenStack服務(wù),如Zaquar、Trove和Mistral。問題是,目前的OpenStack部署中大多數(shù)都很少使用這些服務(wù),正如您在下面看到的:
因此,沿著StackStorm路線走下去需要大量的補充,而且在許多方面,這是一個進入未知領(lǐng)域的旅程,因為很多人這并不是一個合適的OpenStack項目。
OpenWhisk
OpenWhisk是IBM的一個項目,也在波士頓OpenStack峰會上演示過。這個項目是開源的,可以說它正在成為現(xiàn)代數(shù)據(jù)中心OpenStack(也可能是on - premises)云的實際解決方案。在波士頓會議上展示的示例基于文件上載到Swift的具體場景,然后在OpenWhisk上觸發(fā)一個函數(shù):
成熟
正如您可以從上面的兩個演示和示例中看到的,無服務(wù)器仍然是一個“革命尚未成功”的工作。OpenStack社區(qū)本身還沒有決定哪一種解決方案能夠匯聚成一種完全集成的無服務(wù)器解決方案。上面的例子不應(yīng)該被認為是完全成熟到任何人都可以在其OpenStack(或on - premises)云上實際使用的解決方案。
無服務(wù)器會取代私有云嗎?
越來越多的企業(yè)將他們的工作負載轉(zhuǎn)移到主要的公有云供應(yīng)商 (AWS、Azure和谷歌),因為OpenStack的進度太慢了。
FaaS總是需要一些基礎(chǔ)的基礎(chǔ)設(shè)施來運行實際的代碼,而且總是需要有一個操作系統(tǒng)。問題在于你如何將這些功能傳遞給你的終端用戶(關(guān)于如何大規(guī)模實現(xiàn),Lambda,谷歌云functions,和Azure functions都是目前很好的例子)以及如何把這項服務(wù)無縫銜接到你的其他云供應(yīng)商。
摘要
云計算專業(yè)人士建議,如果可能的話,你等幾個周期,等待開源產(chǎn)品和商業(yè)產(chǎn)品成熟,他們可以用在一個簡單的和諧的方式完成你的需求。也就是說,不要做第一個用他們推出的解決方案的人。
如果您有迫切的需要,最好與主要云供應(yīng)商之一進行合作,尤其是如果他們已經(jīng)在運行您的工作負載。請注意,并非所有的供應(yīng)商都是兼容的,從一個解決方案遷移到另一個解決方案可能是一個非常復(fù)雜的操作。