和大多數(shù)IT熱詞一樣,無服務(wù)器自誕生以來,一直處于不溫不火的狀態(tài)。可就在今年忽然爆發(fā),令人驚訝,也有技術(shù)專家稱之為“臨界點(diǎn)”來臨。如果這樣的話,無服務(wù)器將迅速與其他技術(shù)相融合,成為新型部署方式。
不要盲目樂觀。IT熱詞之所以“熱”,是因?yàn)樗鼜膩聿皇菃为?dú)發(fā)展的,而是建立在云、大數(shù)據(jù)、容器等技術(shù)的成熟度之上。從這樣的角度來看,無服務(wù)器是“云計(jì)算的一小步”,不斷驅(qū)使云計(jì)算更加完善,進(jìn)入千百行業(yè),服務(wù)用戶。
那么,究竟什么是無服務(wù)器技術(shù),它是如何發(fā)展的,它的優(yōu)點(diǎn)、缺點(diǎn)是什么,對(duì)企業(yè)的價(jià)值在哪里?本文將全面梳理。
1.潮流來了,覆蓋率或達(dá)38%
在定義無服務(wù)器之前,先看一下業(yè)內(nèi)的趨勢(shì)。
以去年8月CNCF(Cloud Native Computing Foundation,云原生基金會(huì))的一項(xiàng)調(diào)查為例,無服務(wù)器的應(yīng)用正在快速增長(zhǎng)。38%的企業(yè)表示目前正在使用無服務(wù)器技術(shù),這一比例較以往的31%有所增加,其中32%的企業(yè)采用托管類無服務(wù)器平臺(tái),6%的企業(yè)采用安裝類無服務(wù)器平臺(tái)。
調(diào)查中,部分受訪者目前仍未采用無服務(wù)器技術(shù),這一比例從過去的41%下降到了37%。但是,另外有26%的受訪者表示,計(jì)劃在未來12至18個(gè)月內(nèi)使用無服務(wù)器技術(shù)。
這項(xiàng)調(diào)查還對(duì)可安裝類無服務(wù)器平臺(tái)市場(chǎng)的使用情況做了具體研究,其中Kubeless占比最大,達(dá)到42%;Apache Open Whisk和 OpenFaaS分別居于第二、三位,占比達(dá)25%和20%。
除了安裝類無服務(wù)器平臺(tái)外,托管類無服務(wù)器平臺(tái)也是一大選擇,具體的市場(chǎng)分布情況在這里不一一贅述。
據(jù)了解,本次調(diào)查覆蓋2400名人員,其中包括49%的開發(fā)人員、36%的運(yùn)營(yíng)人員、11%的IT經(jīng)理以及14%的開發(fā)經(jīng)理。
事實(shí)證明,無服務(wù)器潮流已來。
2.什么是無服務(wù)器?
既然無服務(wù)器是未來的一個(gè)趨勢(shì),那么,什么是無服務(wù)器?
我們稍微回顧一下歷史沿革。在2009年,業(yè)內(nèi)提出DevOps理念,指向敏捷開發(fā)、運(yùn)維和協(xié)作的方向。在2011年,有機(jī)構(gòu)預(yù)測(cè)DevOps將發(fā)展成為NoOps,也就是未來不需要運(yùn)維人員。直到2014年,該概念才進(jìn)一步得到了擴(kuò)展,落實(shí)到企業(yè)。
根據(jù)定義不同,業(yè)內(nèi)通常有幾類簡(jiǎn)稱:
FaaS:函數(shù)即服務(wù)(Function-as-a-Service,F(xiàn)aaS),或譯為功能即服務(wù)。
BaaS:后端即服務(wù)(Backend-as-a-Service,BaaS)
MBaaS:移動(dòng)后端即服務(wù)(MobileBackend-as-a-service,MBaaS)
CaaS:容器既服務(wù)(Containers-as-a-Service,CaaS)
3.FaaS的優(yōu)點(diǎn)和不足
業(yè)內(nèi)通常以FaaS來定義無服務(wù)器,它有幾個(gè)鮮明的特點(diǎn)。
首先,它同云計(jì)算一樣,演變成為服務(wù)。開發(fā)者無需購(gòu)買硬件資源,更不用關(guān)心硬件的配置環(huán)境、物理設(shè)備和虛擬服務(wù)器,只需關(guān)心代碼的運(yùn)營(yíng)轉(zhuǎn)態(tài)是否高效。
其次,這種代碼可以與傳統(tǒng)服務(wù)器代碼混用,也可以編寫不需要任何服務(wù)器配置要素的應(yīng)用程序。
第三,F(xiàn)aaS將更多的運(yùn)維壓力交給了第三方云廠商,由第三方管理服務(wù)器(物理或者虛擬)的運(yùn)營(yíng)狀態(tài),特別是在多租戶的情況下確保運(yùn)營(yíng)的高效、穩(wěn)定和安全。
第四,與容器、微服務(wù)的概念和應(yīng)用密不可分,越來越趨于融合。
但是,正如所有的技術(shù)都有不足一樣,無服務(wù)器的這種完全依賴于第三方云廠商的技術(shù)還存在明顯的不足。
首先,對(duì)云廠商的要求提高。這意味著尋找可靠的第三方云服務(wù)商尤為重要,畢竟安全問題、多租戶問題、供應(yīng)商鎖定、API調(diào)用、功能缺失等基礎(chǔ)設(shè)施方面的功能都取決于云廠商。
第二,評(píng)估和測(cè)試工具。如何確保程序能順暢運(yùn)營(yíng)在第三方提供的無服務(wù)器環(huán)境中?是否有一些評(píng)估標(biāo)準(zhǔn)和指標(biāo)?通常來說,就是基于何種標(biāo)準(zhǔn)來評(píng)定云廠商的環(huán)境更好更優(yōu)?
第三,實(shí)施的困難。這并不指程序能否運(yùn)行,而是指程序集成、封裝的難度增加。由于只能是運(yùn)行某一類功能,并且也無法實(shí)現(xiàn)“原子回滾”,程序的穩(wěn)定性就更為重要了。
4.無服務(wù)器是否可以“包打天下”?
所有技術(shù)都有其適用的場(chǎng)景,無服務(wù)器也并不是“包打天下”,它主要應(yīng)用在以下這些范圍。
? 函數(shù)計(jì)算 有人把無服務(wù)器也稱之為函數(shù)即服務(wù),因?yàn)槠漭p量級(jí)適合無狀態(tài)應(yīng)用程序和函數(shù)式編程模型,包括應(yīng)用程序的編程接口發(fā)布、查詢響應(yīng),面部識(shí)別和語音識(shí)別等。對(duì)于百度智能云這樣專注在AI應(yīng)用的云服務(wù)廠商來說,能夠迅速提供這種服務(wù),AI功能與之的匹配性更有優(yōu)勢(shì),也有專門的函數(shù)計(jì)算產(chǎn)品CFC。
? 邊緣計(jì)算 邊緣計(jì)算的核心是將一部分?jǐn)?shù)據(jù)放在邊緣節(jié)點(diǎn)收集、存儲(chǔ)和處理,具有輕量級(jí),數(shù)據(jù)量大、功能較為單一等特點(diǎn)。這也是無服務(wù)器領(lǐng)域一個(gè)較為廣泛的應(yīng)用,可以與邊緣計(jì)算的存儲(chǔ)產(chǎn)品相結(jié)合。
? 某些數(shù)據(jù)的工作負(fù)載 如果只具有某一類型功能,并不需要太多的數(shù)據(jù)交互功能,那么像高性能計(jì)算、商業(yè)智能、建模、基礎(chǔ)科學(xué)研究等都是應(yīng)用的場(chǎng)景。
從這幾點(diǎn)來看,無服務(wù)器之所以流行是由執(zhí)行任務(wù)單一、數(shù)據(jù)輕量、部署簡(jiǎn)單的特性決定的。如果真要大規(guī)模落地,必然會(huì)推翻現(xiàn)有的諸多技術(shù)架構(gòu),尤其是編寫代碼的方式。
5.對(duì)企業(yè)的好處是什么?
通常來說,新技術(shù)之所以能被應(yīng)用,是因?yàn)榫哂薪档统杀尽p少人力和讓IT團(tuán)隊(duì)更敏捷等優(yōu)勢(shì),這些無服務(wù)器技術(shù)都具有。
使用無服務(wù)器技術(shù)就如當(dāng)前我們使用云計(jì)算一樣,按照實(shí)際的使用情況來計(jì)費(fèi),而不是按照預(yù)留的計(jì)算資源來計(jì)費(fèi)。這也是無服務(wù)器技術(shù)的本質(zhì)——功能既服務(wù),這是在平臺(tái)即服務(wù)(PaaS)甚至是容器即服務(wù)(CaaS)之上發(fā)展衍生出的一種服務(wù)形式,沒有脫離云計(jì)算的商業(yè)范疇。
在一些研究機(jī)構(gòu)中甚至認(rèn)為,無服務(wù)器技術(shù)可以為企業(yè)節(jié)省70%~90%的成本,這要取決于具體環(huán)境。也有人認(rèn)為這種想法過于樂觀。
當(dāng)然,由于不用關(guān)心硬件、配置環(huán)境和運(yùn)營(yíng),無服務(wù)器技術(shù)會(huì)讓開發(fā)者的敏捷性提高。DevOps最終演變成NoOps,就會(huì)減少人力,讓企業(yè)的開發(fā)人員專注在代碼方面。但這一愿景一時(shí)半刻還實(shí)現(xiàn)不了。目前可見的好處是,會(huì)讓開發(fā)具有更快的開發(fā)速度和更低的成本。
6.臨界點(diǎn)已到,未來該走向何方?
無服務(wù)器技術(shù)始終在不斷演進(jìn)的過程中,應(yīng)用也不斷增多。福布斯技術(shù)委員會(huì)認(rèn)為,采用無服務(wù)器應(yīng)用已經(jīng)到了一個(gè)臨界點(diǎn)。他們預(yù)測(cè),2019年無服務(wù)器技術(shù)將有如下幾個(gè)重要趨勢(shì)。
• 標(biāo)準(zhǔn)化 越來越多有關(guān)于無服務(wù)器技術(shù)的標(biāo)準(zhǔn)將出臺(tái),這將確保各個(gè)平臺(tái)之間具有更好的移植性和互操作性。以CNCF為例,已經(jīng)將相關(guān)標(biāo)準(zhǔn)列入日程中。標(biāo)準(zhǔn)化的好處在于,促使越來越多的廠商加大創(chuàng)新力度,這也是技術(shù)成熟的一個(gè)象征。
• 編排服務(wù) 目前,各大廠商之間的無服務(wù)器聯(lián)盟正在形成。除了百度智能云之外,谷歌和IBM等公司也推出了Knative的開源框架。試圖基于Kubernetes之上實(shí)現(xiàn)無服務(wù)器、服務(wù)網(wǎng)絡(luò)和容器之間的統(tǒng)一,并形成一個(gè)云應(yīng)用的編排平臺(tái)。這可能也是趨勢(shì)之一:容器和無服務(wù)器正在并行發(fā)展,最終將統(tǒng)一。
• 融合加快 無服務(wù)器讓應(yīng)用程序呈現(xiàn)分布式狀態(tài),在開發(fā)速度、模塊化方面都有優(yōu)勢(shì)。但在一致性、完整性和運(yùn)營(yíng)方面還有缺點(diǎn)。未來,企業(yè)將會(huì)越來越多的要求統(tǒng)一管理云資源——包括網(wǎng)絡(luò)、公有云和私有云的資源,從不同的顆粒度來控制,這將為無服務(wù)器的應(yīng)用迎來新的轉(zhuǎn)機(jī)。
• 更復(fù)雜的測(cè)試工具 為了確保這種基于微服務(wù)的應(yīng)用順利通過測(cè)試,將會(huì)出現(xiàn)更多復(fù)雜的測(cè)試工具以應(yīng)對(duì)測(cè)試挑戰(zhàn)。可能包括集成測(cè)試、基于應(yīng)用的關(guān)鍵組件的測(cè)試等。
當(dāng)然,這些趨勢(shì)還包括安全性、提高交付的速度和穩(wěn)定性等,這是任何新技術(shù)出現(xiàn)或者在應(yīng)用之前都需要考慮的問題。所有問題并不是一蹴而就的,需要在實(shí)踐中慢慢得到解決。
7.結(jié)束語
本篇文章回答了無服務(wù)器是什么,優(yōu)點(diǎn)和不足,以及為企業(yè)帶來的好處等,尤其是針對(duì)未來的趨勢(shì)給出了一個(gè)判斷。從中不難發(fā)現(xiàn),作為一種服務(wù),無服務(wù)器天然與容器、微服務(wù)密不可分,相互融合。而且隨著技術(shù)的不斷演進(jìn),標(biāo)準(zhǔn)的不斷推出,相信各大廠商的聯(lián)盟也會(huì)促進(jìn)無服務(wù)器最終形成一個(gè)事實(shí)上的標(biāo)準(zhǔn),加速落地。