當(dāng)大多數(shù)人談?wù)?a href="http://www.zmynmublwnt.cn/news/213.html">無服務(wù)器架構(gòu)時(shí),首先想到的是基于云的服務(wù),例如Lambda。在云端,無服務(wù)器允許你使用經(jīng)濟(jì)高效的支付模式按需運(yùn)行幾乎無限數(shù)量的功能。
但是,并非所有無服務(wù)器框架都在云中。有一些可以在內(nèi)部部署,例如OpenWhisk和Fission.io所提供的。
為什么要內(nèi)部部署無服務(wù)器?在這么做時(shí),你需要考慮哪些注意事項(xiàng)?
內(nèi)部部署的和基于云的無服務(wù)器的區(qū)別
借助基于云的無服務(wù)器架構(gòu),應(yīng)用程序代碼可部署到云提供商那里,如AWS Lambda或Microsoft Azure Functions。特定的事件,從HTTP請(qǐng)求到GitHub(取決于云提供商支持的內(nèi)容),觸發(fā)代碼。通過這種方式,基于云的無服務(wù)器架構(gòu)非常有用,因?yàn)樗梢酝ㄟ^“按使用付費(fèi)”功能降低成本。
然而,對(duì)于內(nèi)部部署的無服務(wù)器架構(gòu),無服務(wù)器功能托管在本地基礎(chǔ)設(shè)施上,而不是作為云中的托管服務(wù)運(yùn)行。應(yīng)用程序代碼部署到本地服務(wù)器,并被觸發(fā)運(yùn)行指定的事件。
對(duì)于不同的公司,內(nèi)部部署無服務(wù)器可以以不同的形式提供。Platform9等云管理解決方案允許用戶在托管云之上部署托管無服務(wù)器平臺(tái)。Platform9提供了多租戶云服務(wù)架構(gòu),無需運(yùn)行工作負(fù)載,允許用戶在內(nèi)部運(yùn)行其工作負(fù)載。OpenWhisk等開源選擇也可以在內(nèi)部部署。
為什么選擇內(nèi)部部署?
雖然不需要管理物理服務(wù)器并且具有幾乎無限的可擴(kuò)展性是基于云的無服務(wù)器架構(gòu)的主要吸引力,但是內(nèi)部部署無服務(wù)器架構(gòu)也有著一些顯著的好處。
——避免云供應(yīng)商鎖定:使用基于云的無服務(wù)器,你的應(yīng)用程序完全依賴于第三方供應(yīng)商,這意味著你依靠該供應(yīng)商的持續(xù)可用性,并要考慮它們的成本(可能會(huì)有所變化) 。變更供應(yīng)商幾乎肯定會(huì)導(dǎo)致你的應(yīng)用程序發(fā)生重大變化。而通過內(nèi)部實(shí)施,工作負(fù)載在本地運(yùn)行,供應(yīng)商鎖定帶來的風(fēng)險(xiǎn)會(huì)降低。
——安全性:對(duì)于處理非常敏感數(shù)據(jù)的公司,基于云的解決方案可能不是最佳的。大多數(shù)服務(wù)提供商都是多租戶,這意味著它們?cè)谕晃锢矸?wù)器上為不同的客戶運(yùn)行軟件。即使工作負(fù)載通過虛擬工作負(fù)載或容器隔離,鄰近應(yīng)用程序中的任何安全漏洞或故障都可能會(huì)對(duì)應(yīng)用程序代碼的可用性和一般性能產(chǎn)生負(fù)面影響。在本地內(nèi)部部署的服務(wù)器上運(yùn)行工作負(fù)載可降低這些風(fēng)險(xiǎn)并確保數(shù)據(jù)安全。
——效率和間接成本:從長(zhǎng)遠(yuǎn)來看,在專用本地服務(wù)器上運(yùn)行工作負(fù)載可能比在基于云的無服務(wù)器架構(gòu)上執(zhí)行長(zhǎng)任務(wù)要便宜得多。此外,在間歇性運(yùn)行應(yīng)用程序代碼的情況下,內(nèi)部部署無服務(wù)器可降低基礎(chǔ)設(shè)施的利用率不足(因?yàn)閮H在少數(shù)服務(wù)器上運(yùn)行多個(gè)應(yīng)用程序更有效)。
結(jié)論
與基于云的替代方案相比,內(nèi)部部署無服務(wù)器沒有被大肆宣傳,但這并不意味著在許多情況下它不太可行。實(shí)際上,如果你的內(nèi)部IT團(tuán)隊(duì)擁有構(gòu)建和運(yùn)行無服務(wù)器平臺(tái)的專業(yè)知識(shí),則至少應(yīng)該考慮一下內(nèi)部部署。因此,當(dāng)你計(jì)劃無服務(wù)器策略時(shí),不要將自己局限于云,而是應(yīng)該考慮是否可以通過選擇內(nèi)部部署無服務(wù)器來獲得安全性和成本效益。
原文鏈接:
https://thenewstack.io/when-on-premise-serverless-beats-the-cloud/