Bob Violino 陳琳華
要記?。簾o(wú)服務(wù)器計(jì)算的設(shè)計(jì)初衷是要實(shí)現(xiàn)基礎(chǔ)架構(gòu)配置自動(dòng)化并消除服務(wù)器管理的負(fù)擔(dān)。
你的企業(yè)是否已經(jīng)為迎接無(wú)服務(wù)器的到來(lái)做好了準(zhǔn)備?無(wú)服務(wù)器計(jì)算如今正在迅猛發(fā)展,但是這并不意味著它們適用于所有的場(chǎng)景或企業(yè)。
無(wú)服務(wù)器計(jì)算是一種軟件架構(gòu)模型,即云計(jì)算服務(wù)提供商為客戶運(yùn)行服務(wù)器并動(dòng)態(tài)管理計(jì)算資源的分配?!盁o(wú)服務(wù)器”這個(gè)術(shù)語(yǔ)是一個(gè)誤稱,因?yàn)樵谀撤N意義上,服務(wù)器仍然參與到計(jì)算過(guò)程中。這種類型服務(wù)的價(jià)格是根據(jù)應(yīng)用程序?qū)嶋H消耗的資源量而不是預(yù)先的購(gòu)買量。
市場(chǎng)調(diào)研機(jī)構(gòu)Markets and Markets 2018年發(fā)布的調(diào)查報(bào)告稱,無(wú)服務(wù)器架構(gòu)市場(chǎng)規(guī)模在2018年估值為42.5億美元,預(yù)計(jì)到2023年將達(dá)到149.3億美元,期間將以復(fù)合年增長(zhǎng)率29%的速度增長(zhǎng)。北美地區(qū)在預(yù)測(cè)期內(nèi)將占據(jù)最大的市場(chǎng)份額,部分原因在于這個(gè)地區(qū)采用云計(jì)算服務(wù)比較早。
預(yù)計(jì)推動(dòng)市場(chǎng)增長(zhǎng)的主要因素包括消除對(duì)管理服務(wù)器的需求,降低基礎(chǔ)設(shè)施成本、簡(jiǎn)化部署、管理和執(zhí)行。微服務(wù)架構(gòu)的廣泛應(yīng)用也為增長(zhǎng)起了推動(dòng)作用。
Markets and Markets表示,自動(dòng)化和集成服務(wù)在無(wú)服務(wù)器架構(gòu)的部署中發(fā)揮了重要作用。自動(dòng)化服務(wù)可有效地幫助管理部署在混合IT平臺(tái)上的微服務(wù),以提供更快的響應(yīng)速度,以及對(duì)計(jì)算資源的優(yōu)化使用。
Gartner也很看好無(wú)服務(wù)器計(jì)算的增長(zhǎng)。該研究機(jī)構(gòu)將無(wú)服務(wù)器計(jì)算列為2019年能夠影響基礎(chǔ)設(shè)施和運(yùn)營(yíng)的十大趨勢(shì)之一,并指出這一新興的軟件架構(gòu)模型可能會(huì)消除企業(yè)對(duì)基礎(chǔ)設(shè)施供應(yīng)和管理的需求。
無(wú)服務(wù)器計(jì)算對(duì)IT管理員的吸引力
德勤咨詢公司負(fù)責(zé)云計(jì)算實(shí)踐的主管Ken Corless表示,無(wú)服務(wù)器不僅對(duì)應(yīng)用程序開發(fā)人員很有吸引力,而且對(duì)系統(tǒng)運(yùn)營(yíng)人員也很具吸引力。
無(wú)論是由大型云計(jì)算提供商提供,還是從市場(chǎng)上采購(gòu)解決方案來(lái)實(shí)現(xiàn)內(nèi)部部署,無(wú)服務(wù)器計(jì)算的目標(biāo)都是一樣的。Corless稱:“企業(yè)采用自動(dòng)化和自助服務(wù)可以加快軟件開發(fā)生命周期。”
對(duì)于IT管理員來(lái)說(shuō),無(wú)服務(wù)器可以減少基于標(biāo)簽的工作負(fù)載的“請(qǐng)求-響應(yīng)”周期,允許管理員將精力放在更高級(jí)別的任務(wù)上,例如基礎(chǔ)設(shè)施設(shè)計(jì)或創(chuàng)建更多的自動(dòng)化。
Corless舉了兩個(gè)主要用例。一個(gè)是在應(yīng)用程序開發(fā)中創(chuàng)建基于服務(wù)的現(xiàn)代松散耦合應(yīng)用程序。功能即服務(wù)(FaaS)和后端即服務(wù)(BaaS)這兩種支持無(wú)服務(wù)器計(jì)算的云服務(wù)都可通過(guò)保持小型化團(tuán)隊(duì)來(lái)提高軟件交付團(tuán)隊(duì)的生產(chǎn)力。
另一個(gè)重要的用例是針對(duì)系統(tǒng)管理員的。Corless說(shuō):“他們追求的自動(dòng)化可通過(guò)無(wú)服務(wù)器技術(shù)快速輕松地逐步實(shí)現(xiàn)?!崩?,德勤公司在云計(jì)算管理業(yè)務(wù)中廣泛使用了無(wú)服務(wù)器來(lái)實(shí)現(xiàn)產(chǎn)品的自動(dòng)化運(yùn)營(yíng)。
與云計(jì)算服務(wù)一樣,無(wú)服務(wù)器在某些情況下可能比支付虛擬機(jī)的費(fèi)用更高。目前在虛擬機(jī)上使用率始終在80%的應(yīng)用程序在無(wú)服務(wù)器環(huán)境中費(fèi)用可能會(huì)更高。
Corless說(shuō):“無(wú)服務(wù)器的真正優(yōu)勢(shì)在于更少的人即可完成IT業(yè)務(wù)中的一些例行任務(wù),例如軟件修補(bǔ)和備份?!边@有兩個(gè)好處。首先,執(zhí)行這些例行任務(wù)的人員可以將更多精力放在IT或企業(yè)中可以創(chuàng)造更多價(jià)值的地方。
“沒(méi)有人會(huì)為做DNS域名系統(tǒng)調(diào)整的工作而感到高興。這些人可以被重新分配參加新功能的開發(fā)工作。在我看來(lái),推動(dòng)實(shí)現(xiàn)更高程度的自動(dòng)化是最重要的事情?!?/p>
第二個(gè)好處是,讓小型化的團(tuán)隊(duì)有了更強(qiáng)的自我決定能力。Corless說(shuō):“隨著基礎(chǔ)設(shè)施管理的專業(yè)知識(shí)和指南的自動(dòng)化,團(tuán)隊(duì)可以自我服務(wù),并安全地做到這一點(diǎn)。不過(guò),實(shí)現(xiàn)標(biāo)準(zhǔn)和指導(dǎo)的自動(dòng)化通常需要一些投資,因?yàn)闊o(wú)服務(wù)器解決方案通常不夠安全,需要某種類型的限制才能使用?!?/p>
市場(chǎng)調(diào)研機(jī)構(gòu)IDC的平臺(tái)即服務(wù)研究主管Larry Carvalho稱,應(yīng)用程序隨時(shí)都能夠利用事件驅(qū)動(dòng)的計(jì)算和解耦服務(wù),這對(duì)于無(wú)服務(wù)器平臺(tái)來(lái)說(shuō)非常理想。
Carvalho說(shuō),常見的用例是物聯(lián)網(wǎng)(IoT)應(yīng)用程序和需要事件驅(qū)動(dòng)處理的移動(dòng)后端。其他用例是針對(duì)事件實(shí)時(shí)反應(yīng)的批處理或流處理。
無(wú)服務(wù)器計(jì)算的最佳實(shí)踐
那么企業(yè)如何確保無(wú)服務(wù)器取得成功呢?以下是專家給出的一些建議和做法。
在設(shè)計(jì)過(guò)程中就要考慮到服務(wù)器產(chǎn)品的限制條件
市場(chǎng)營(yíng)銷技術(shù)提供商Cordial的物聯(lián)網(wǎng)平臺(tái)架構(gòu)師Daniel Smith稱,負(fù)責(zé)處理向無(wú)服務(wù)器過(guò)渡工作的工程團(tuán)隊(duì)常常會(huì)忽略“即使是很靈活的產(chǎn)品也存在嚴(yán)格的限制條件”這一問(wèn)題。
Smith說(shuō):“無(wú)服務(wù)器是其他人的服務(wù)器或容器,它們有著自己的設(shè)計(jì)限制。記住這一點(diǎn)對(duì)無(wú)服務(wù)器的成功會(huì)有很大的幫助。在無(wú)服務(wù)器的堆棧中要?jiǎng)澐智宄?zé)任,因此在設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中需要考慮總運(yùn)行時(shí)間、CPU使用時(shí)間或需要使用的內(nèi)存總量等問(wèn)題?!?/p>
Cordial從2015年就開始探索無(wú)服務(wù)器技術(shù),其目標(biāo)是在資源使用量不可知的情況下建立可預(yù)測(cè)的成本模型。Smith說(shuō):“作為一家初創(chuàng)企業(yè),可預(yù)測(cè)的、基于需求的成本結(jié)構(gòu)很有吸引力。”
2018年5月,該公司開始使用Cloudflare的Workers技術(shù)作為其部分系統(tǒng)的替代品。作為一家為消費(fèi)者服務(wù)的B2B企業(yè),Cordial需要盡快與消費(fèi)者實(shí)現(xiàn)互動(dòng)。
Smith說(shuō),“這通常需要在地理位置上盡可能地將工作負(fù)載靠近消費(fèi)者。”
由于Cordial已經(jīng)能夠減小微服務(wù)的規(guī)模,因此他們?cè)敢鈬L試還未在其他地方部署的編程語(yǔ)言,以讓公司能夠更快、更自信地提供更高效的產(chǎn)品。
設(shè)計(jì)有限的工作負(fù)載
Smith指出,企業(yè)應(yīng)該將無(wú)服務(wù)器架構(gòu)視為一種方法或一種功能的執(zhí)行引擎。
他說(shuō):“為了進(jìn)一步細(xì)化這個(gè)目標(biāo),功能的輸入和輸出應(yīng)該是可以被處理的小數(shù)據(jù)。不要使用無(wú)服務(wù)器功能處理一個(gè)數(shù)據(jù)文件,而是要將每行數(shù)據(jù)單獨(dú)地執(zhí)行?!?/p>
減少每個(gè)工作單元的大小可以加快開始轉(zhuǎn)向網(wǎng)絡(luò)在服務(wù)之間移動(dòng)數(shù)據(jù)的速度。Smith表示:“對(duì)于移動(dòng)中的數(shù)據(jù),人們可以從一開始就將網(wǎng)絡(luò)視為一種易變的存儲(chǔ)設(shè)施,每秒為每個(gè)網(wǎng)絡(luò)接口可提供10GB的存儲(chǔ)。硬盤是速度很慢的系統(tǒng)組件,除了最終輸出可長(zhǎng)期存儲(chǔ)外要避免使用?!?/p>
讓函數(shù)盡可能處于無(wú)狀態(tài)下
應(yīng)用程序性能軟件提供商Dynatrace的軟件工程師Daniel Dyla表示,整體應(yīng)用程序中常見的全局變量不適用于無(wú)服務(wù)器應(yīng)用程序,因?yàn)檎{(diào)用間的全局狀態(tài)可能不會(huì)持久。
Dyla稱:“為了解決這個(gè)問(wèn)題,無(wú)服務(wù)器函數(shù)應(yīng)盡可能是無(wú)狀態(tài)的。如果需要狀態(tài),最好是從外部數(shù)據(jù)庫(kù)收集的狀態(tài),并調(diào)用另一個(gè)無(wú)狀態(tài)函數(shù)來(lái)執(zhí)行實(shí)際的數(shù)據(jù)處理的工作。通過(guò)這種方式,企業(yè)可以將狀態(tài)隔離到指定的位置,以便更容易管理?!?/p>
Dyla介紹說(shuō),受到低成本、擴(kuò)展能力、事件驅(qū)動(dòng)調(diào)用的吸引,Dynatrace在過(guò)去幾年中一直使用無(wú)服務(wù)器技術(shù)。目前該公司正在輪詢系統(tǒng)中使用無(wú)服務(wù)器計(jì)算,因?yàn)檫@一系統(tǒng)需要持續(xù)運(yùn)行進(jìn)行批處理。
Dyla稱:“我們看中的主要好處是成本低,我們的無(wú)服務(wù)器函數(shù)往往只是一小段代碼,突發(fā)負(fù)載可以從零開始迅速擴(kuò)展。”
自動(dòng)化部署和測(cè)試
電子發(fā)現(xiàn)軟件提供商Relativity的高級(jí)軟件工程師Hristo Papazov表示,雖然有些工具可以輕松實(shí)現(xiàn)無(wú)服務(wù)器計(jì)算的人工部署,但是自動(dòng)化部署可讓企業(yè)保持良好的一致性,不會(huì)出現(xiàn)人為的錯(cuò)誤。
“自動(dòng)化還允許企業(yè)內(nèi)部的其他團(tuán)隊(duì)輕松采用這些技術(shù),”Papazov說(shuō)。
Relativity正在使用微軟Azure云服務(wù)的無(wú)服務(wù)器技術(shù),并通過(guò)確保其核心組件正常運(yùn)行來(lái)改善其電子發(fā)現(xiàn)平臺(tái)的客戶體驗(yàn)。Papazov說(shuō),通過(guò)無(wú)服務(wù)器的內(nèi)部監(jiān)控工具,企業(yè)可以讓用戶有能力處理大量的遙測(cè)數(shù)據(jù),以快速檢測(cè)和解決問(wèn)題。
Papazov表示,隨著無(wú)服務(wù)器應(yīng)用程序日益復(fù)雜,單元測(cè)試成為了開發(fā)周期的一個(gè)關(guān)鍵部分,同時(shí)自動(dòng)化也可以為此提供幫助?!霸谖④浲瞥鯝zure Functions時(shí),進(jìn)行單元測(cè)試是非常困難的。經(jīng)過(guò)了較長(zhǎng)一段時(shí)間的發(fā)展,現(xiàn)在在項(xiàng)目中添加單元測(cè)試已經(jīng)變得非常容易了。”
了解現(xiàn)代應(yīng)用程序架構(gòu)
管理者應(yīng)該將應(yīng)用程序分解為短期運(yùn)行、獨(dú)立、分離的服務(wù)。Carvalho稱:“構(gòu)建一個(gè)無(wú)狀態(tài)應(yīng)用程序的同時(shí)還要利用API管理等支持服務(wù)來(lái)實(shí)現(xiàn)通信和確保用戶身份安全?!?/p>
他舉例說(shuō),“可以通過(guò)提取業(yè)務(wù)邏輯和在無(wú)服務(wù)器框架中將其作為微服務(wù)運(yùn)行來(lái)分解為處理外來(lái)交易而持續(xù)運(yùn)行以的Web應(yīng)用程序服務(wù)器。這樣可以基本消除持續(xù)運(yùn)行服務(wù)器的成本,同時(shí)將故障備援的難題交給云計(jì)算提供商?!?/p>
讓網(wǎng)絡(luò)安全成為優(yōu)先事項(xiàng)
部署了無(wú)服務(wù)器技術(shù)的企業(yè)或許不必?fù)?dān)心修補(bǔ)服務(wù)器或運(yùn)行防病毒軟件,但是基于應(yīng)用程序編程接口(API)的無(wú)服務(wù)器解決方案極大地增加了端點(diǎn)的數(shù)量。Corless指出,“如果這些API被公司的客戶或合作伙伴使用,那么風(fēng)險(xiǎn)將會(huì)更大。”
企業(yè)可能需要重新考慮防火墻規(guī)則的處理方式。Corless告誡道:“因?yàn)閷?duì)防火墻的修改會(huì)迅速造成一場(chǎng)混亂。”
本文作者Bob Violino為Computerworld、CIO、CSO、InfoWorld和Network World網(wǎng)站的特約撰稿人。