如果您閱讀了2017年有關(guān)于IT特別是云計(jì)算方面的各種預(yù)測(cè),您很有可能碰到“無(wú)服務(wù)器計(jì)算”這一術(shù)語(yǔ)。早在2014年亞馬遜的網(wǎng)絡(luò)服務(wù)(AWS)已推出了第一大無(wú)服務(wù)器計(jì)算服務(wù)——AWS Lambda。2016年,其他主流云提供商也跟進(jìn)了此潮流?,F(xiàn)在這種新型的云計(jì)算已為新的一年蓄勢(shì)待發(fā)了。
事實(shí)上,Gartner在其2017年的十大戰(zhàn)略技術(shù)趨勢(shì)里就提到過無(wú)服務(wù)器計(jì)算。該公司認(rèn)為無(wú)服務(wù)器是網(wǎng)格式的應(yīng)用和服務(wù)架構(gòu)趨勢(shì)的一部分,并解釋說:“網(wǎng)格式的應(yīng)用與服務(wù)架構(gòu)(MASA)是一種多通道的解決方案架構(gòu),它利用云和無(wú)服務(wù)器、容器和微服務(wù)、以及APSs與事件來提供模塊化的、靈活的和動(dòng)態(tài)的解決方案。”但該公司也警告說:這是一個(gè)長(zhǎng)期的趨勢(shì),它需要IT去采取各種新的工具和新的做事方式。
那么關(guān)于無(wú)服務(wù)器計(jì)算,您應(yīng)該知道些什么呢?
如果這對(duì)您來說是一個(gè)新的理念或您只是不知道為何它被如此炒作的話,下面將向您介紹無(wú)服務(wù)器計(jì)算的關(guān)鍵概念和對(duì)其優(yōu)、缺點(diǎn)的概述。
1. 無(wú)服務(wù)器計(jì)算并不是真的沒有服務(wù)器。
大多數(shù)提供商都承認(rèn)“無(wú)服務(wù)器計(jì)算”一詞確實(shí)有些用詞不當(dāng)。您的工作負(fù)荷總歸要運(yùn)行在服務(wù)器的某處。而無(wú)服務(wù)器計(jì)算的不同之處在于:最終用戶不需要部署、采購(gòu)、維護(hù)或管理這些服務(wù)器而已。事實(shí)上,您甚至不需要知道您使用著何種或者多少臺(tái)虛擬機(jī)(VMs)。
您可以想象無(wú)服務(wù)器計(jì)算是最近趨向于為最終用戶抽象和簡(jiǎn)化IT的一個(gè)擴(kuò)展。其第一步是虛擬化,以免去用戶需要知道其工作負(fù)荷運(yùn)行在哪臺(tái)物理服務(wù)器之上。云服務(wù)進(jìn)一步使的得采購(gòu)更為容易,但用戶仍需選擇他們要哪種虛擬機(jī)來運(yùn)行、啟動(dòng)和停止服務(wù)。無(wú)服務(wù)器計(jì)算在邏輯上走到了下一步,其服務(wù)能夠幫忙您選擇合適的虛擬機(jī),并按需啟和停服務(wù)。
2. 這是一種云計(jì)算。
無(wú)服務(wù)器計(jì)算,其更具描述性的名稱(且為一些提供商偏好的名稱)是功能即服務(wù)或FaaS。就像IaaS、SaaS和PaaS那樣,F(xiàn)aaS是一種云計(jì)算。在這種情況下,您購(gòu)買必要的IT基礎(chǔ)設(shè)施來運(yùn)行應(yīng)用程序的特定功能。例如,假設(shè)您的公司有一個(gè)用于創(chuàng)建特定報(bào)告的分析應(yīng)用程序。您可以使用無(wú)服務(wù)器計(jì)算來實(shí)現(xiàn)創(chuàng)建報(bào)告的功能。當(dāng)應(yīng)用程序需要完成特定的任務(wù)時(shí),該服務(wù)會(huì)自動(dòng)擴(kuò)展出所需的云實(shí)例,并在功能完成后自動(dòng)關(guān)閉這些實(shí)例。您可以將FaaS用于一個(gè)完整的應(yīng)用程序或只是一些功能。
3. 無(wú)服務(wù)器計(jì)算讓您在運(yùn)行代碼時(shí)按毫秒級(jí)計(jì)費(fèi)。
在使用其他類型的云計(jì)算服務(wù)時(shí),提供商通常按小時(shí)收費(fèi),且客戶通常以被提前支付使用的方式獲取折扣。而無(wú)服務(wù)器計(jì)算提供商是以比秒更小的計(jì)費(fèi)單位向客戶開具賬單的。以AWS Lambda為例,它是按照“每100毫秒執(zhí)行您的代碼和代碼被觸發(fā)的次數(shù)。”的標(biāo)準(zhǔn)向用戶計(jì)費(fèi)的。此處的好處在于:當(dāng)您沒在使用活躍的云計(jì)算實(shí)例時(shí),您不必為其買單。因此它將給云計(jì)算帶來“按使用付費(fèi)”的細(xì)粒度級(jí)新模型。
4.無(wú)服務(wù)器計(jì)算提供了更多利好。
無(wú)服務(wù)器計(jì)算的主要好處是:開發(fā)人員在創(chuàng)建應(yīng)用程序時(shí),不再需要花時(shí)間考慮基礎(chǔ)設(shè)施對(duì)應(yīng)用程序的管理。他們只需上傳代碼,而該服務(wù)會(huì)打理剩下的各種事務(wù)。對(duì)于企業(yè)來說,這可能導(dǎo)致大量的時(shí)間和成本的節(jié)約。它省下了員工們管理基礎(chǔ)設(shè)施的精力,去從事更有價(jià)值的項(xiàng)目。此外,它可以提高靈活性,以允許公司能更快地推出新的應(yīng)用程序和服務(wù)。這轉(zhuǎn)而又可以提高客戶的滿意度。所有這些好處都可以幫助公司更加盈利也更為成功。
5. 無(wú)服務(wù)器計(jì)算對(duì)DevOps乃是極好的。
根據(jù)RightScale(一家云管理的服務(wù)商)的2016年度云狀態(tài)報(bào)告顯示,DevOps的趨勢(shì)是:74%的整體組織和81%的大型企業(yè)已經(jīng)在IT中采用了DevOps的各種方法。與敏捷軟件開發(fā)密切相關(guān)聯(lián),DevOps也采用敏捷原則,并將它們應(yīng)用于IT的運(yùn)營(yíng)管理。它鼓勵(lì)開發(fā)人員和運(yùn)營(yíng)人員之間的溝通和密切合作,且開發(fā)人員常常要扮演管理其應(yīng)用程序所運(yùn)行的基礎(chǔ)設(shè)施的角色。
由于無(wú)服務(wù)器計(jì)算減少了員工們花費(fèi)在管理服務(wù)器上的時(shí)間和精力,所以能很好的適用于DevOps環(huán)境。在某些情況下,F(xiàn)aaS允許組織采用一種“免運(yùn)營(yíng)(NoOps)”的方法,即對(duì)服務(wù)器的部署和管理已是如此的自動(dòng)化,以至于開發(fā)人員根本不需要與運(yùn)營(yíng)人員進(jìn)行協(xié)作了。
6.無(wú)服務(wù)器計(jì)算與微服務(wù)架構(gòu)有關(guān)。
無(wú)服務(wù)器計(jì)算也與另一個(gè)熱門發(fā)展趨勢(shì):微服務(wù)架構(gòu)密切相關(guān)。在微服務(wù)體系結(jié)構(gòu)中,開發(fā)人員獨(dú)立地將其能夠構(gòu)建、管理和擴(kuò)展的各種小服務(wù)拼裝成應(yīng)用程序。而無(wú)服務(wù)器計(jì)算本質(zhì)上就能將此細(xì)化到更小的水平。
然而,在業(yè)界內(nèi)也有對(duì)微服務(wù)和其功能的構(gòu)成方面的爭(zhēng)論。兩者之間的區(qū)別是模糊的,一些提供商經(jīng)常將微服務(wù)和功能這兩個(gè)術(shù)語(yǔ)進(jìn)行混用。
這里值得重點(diǎn)注意的是:將應(yīng)用程序視為各種較小獨(dú)立的部分的集合,而不是個(gè)單一的整體已是一種趨勢(shì)。
7. 您不需要學(xué)習(xí)一門新的語(yǔ)言。
各個(gè)無(wú)服務(wù)器計(jì)算的提供商已很快表明,其FaaS產(chǎn)品支持多種編程語(yǔ)言和框架。一般來說,對(duì)于一個(gè)提供商的其它云計(jì)算服務(wù)所支持的特定語(yǔ)言或工具,其無(wú)服務(wù)器計(jì)算很可能也會(huì)支持。
對(duì)于開發(fā)人員來說,這種具有語(yǔ)言方面支持的特性,增加了無(wú)服務(wù)器計(jì)算所能提供的生產(chǎn)力和效率。因?yàn)樗麄儾恍枰ù罅康臅r(shí)間去學(xué)習(xí)新的語(yǔ)言,大多數(shù)開發(fā)人員完全可以迅速開始上手無(wú)服務(wù)器計(jì)算。事實(shí)上,甚至一些提供商已在廣告里聲稱:開發(fā)人員可以在短短幾分鐘之內(nèi)建立和運(yùn)行其FaaS產(chǎn)品。
8. 無(wú)服務(wù)器為您擴(kuò)展。
對(duì)于正在經(jīng)歷著快速增長(zhǎng)的組織而言,無(wú)服務(wù)器計(jì)算的可擴(kuò)展性是其最有吸引力的特征之一。構(gòu)架一個(gè)應(yīng)用程序,使之在應(yīng)對(duì)數(shù)百萬(wàn)個(gè)用戶時(shí)能夠有像在應(yīng)對(duì)幾十個(gè)用戶時(shí)一樣工作表現(xiàn),是當(dāng)今開發(fā)人員所面臨的最困難的挑戰(zhàn)之一。無(wú)服務(wù)器計(jì)算卻消除了該挑戰(zhàn),因?yàn)槊總€(gè)功能都是獨(dú)立擴(kuò)展,而不需要員工提供額外的虛擬機(jī)或?qū)嵗?。如果一個(gè)應(yīng)用程序的實(shí)際使用和開發(fā)人員最初期望有所不同,那么由于該服務(wù)會(huì)自動(dòng)為每個(gè)功能按需提供必要的額外資源,因此這將不會(huì)成為一個(gè)問題。
9. 無(wú)服務(wù)器計(jì)算也有些缺陷。
既然無(wú)服務(wù)器計(jì)算有這么多的好處,您可能會(huì)問:那么為什么不是每個(gè)人都在使用它呢?可見這種方法也有著一些缺陷。
首先,因?yàn)闊o(wú)服務(wù)器計(jì)算技術(shù)非常新,很難找到有經(jīng)驗(yàn)的員工和工具來支持它。這個(gè)問題可能會(huì)隨著時(shí)間的推移變得好一些,但當(dāng)前的確是一個(gè)障礙。
其次,更重要的是,雖然無(wú)服務(wù)器計(jì)算簡(jiǎn)化了一些東西,但它卻復(fù)雜化另一些。員工們不再擔(dān)心一個(gè)大的應(yīng)用程序或是幾個(gè)微服務(wù)的同時(shí),他們現(xiàn)在需要考慮的是數(shù)十或是數(shù)百個(gè)獨(dú)立的功能。因此整個(gè)“生態(tài)系統(tǒng)”變得更加復(fù)雜,且需要新的管理技術(shù)和過程。
第三,企業(yè)也可能會(huì)因?yàn)轭A(yù)見到更大數(shù)額的賬單而止步不前。如果他們習(xí)慣于對(duì)云計(jì)算進(jìn)行預(yù)付的方式的話,無(wú)服務(wù)器計(jì)算則會(huì)給一些組織可能帶來一定程度的不確定性與挑戰(zhàn)。
10. 您有不同的無(wú)服務(wù)器計(jì)算提供商可選擇。
如果您已經(jīng)準(zhǔn)備好去嘗試無(wú)服務(wù)器計(jì)算的話,您有很多可選擇的提供商。最著名的FaaS當(dāng)屬AWS Lambda,這也是最成熟的可用產(chǎn)品之一。IBM Bluemix提供了一個(gè)叫做OpenWhisk的無(wú)服務(wù)器計(jì)算平臺(tái),而微軟Azure也有一個(gè)叫做Azure Functions的服務(wù)。谷歌云平臺(tái)的無(wú)服務(wù)器仍處于alpha版本,且它被叫做Cloud Functions。
除了主流云提供商,一些小的廠商也投身進(jìn)了無(wú)服務(wù)器業(yè)務(wù)。它們包括提供一個(gè)無(wú)服務(wù)器平臺(tái)并可運(yùn)行在任何云上的Iron.io公司,和一個(gè)能提供運(yùn)行在AWS Lambda上框架,其命名有些缺乏想象,直接被叫做Serverless。此外,Joyent(現(xiàn)在已并入三星了)也提供一個(gè)叫做Manta Functions的無(wú)服務(wù)器服務(wù)。
【原標(biāo)題】Serverless Computing: 10 Things You Need to Know (作者:Cynthia Harvey)