如果您有關(guān)注到最近非常流行的DevOps技術(shù)的對話,那么您可能聽說過無服務(wù)器功能。但是您可能沒有意識到無服務(wù)器功能不僅僅是公共云提供商提供的功能。它們可以使用混合或私有云體系結(jié)構(gòu)運行在本地或托管數(shù)據(jù)中心之外。
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的博山網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!什么是無服務(wù)器功能?
無服務(wù)器功能是作為無服務(wù)器體系結(jié)構(gòu)的一部分運行的應(yīng)用程序或應(yīng)用程序的一部分。開發(fā)人員可以簡單地將無服務(wù)器功能加載到無服務(wù)器托管環(huán)境中,然后配置應(yīng)觸發(fā)功能執(zhí)行的條件。
無需按傳統(tǒng)意義配置整個操作系統(tǒng)環(huán)境或安裝軟件,因此“無服務(wù)器”標(biāo)簽顯得有點用詞不當(dāng),因為這些功能仍然托管在服務(wù)器上,即使服務(wù)器環(huán)境是從最終用戶抽象出來的。
最受關(guān)注的無服務(wù)器平臺(例如Azure Functions和AWS Lambda)都是公共云服務(wù)。這些解決方案有時被稱為“服務(wù)即功能”或FaaS,因為它們使用戶能夠使用類似于SaaS的基于云的體系結(jié)構(gòu)來部署和執(zhí)行無服務(wù)器代碼。
公共云之外的無服務(wù)器功能
盡管公共云供應(yīng)商主導(dǎo)了無服務(wù)器市場,但無服務(wù)器模型并沒有內(nèi)在的要求功能托管在公共云中。您可以輕松地在自己的數(shù)據(jù)中心內(nèi)設(shè)置一個環(huán)境,允許開發(fā)人員以無服務(wù)器的方式部署功能,并使用事件驅(qū)動框架執(zhí)行它們。
您可能要出于多種原因在自己的數(shù)據(jù)中心中運行無服務(wù)器功能。一是成本。每當(dāng)執(zhí)行無服務(wù)器功能時,公共云供應(yīng)商都會向您收費,因此您在使用其服務(wù)時會不斷產(chǎn)生持續(xù)的費用。如果您在自己的硬件上運行功能,則大多數(shù)投資是在設(shè)置無服務(wù)器環(huán)境時預(yù)先進(jìn)行的。每個函數(shù)執(zhí)行沒有直接成本。從長期來看,您的總擁有成本可能會低于公共云中同等服務(wù)的總擁有成本。
安全是另一個考慮因素。通過在數(shù)據(jù)中心中保留無服務(wù)器功能,您可以將所有數(shù)據(jù)和應(yīng)用程序代碼保留在云之外,這可以幫助避免某些安全性和合規(guī)性挑戰(zhàn)。
對于在您自己的數(shù)據(jù)中心中運行的無服務(wù)器功能,在某些情況下性能也可能會更好。例如,如果功能需要訪問存儲在您的數(shù)據(jù)中心中的數(shù)據(jù),則在同一數(shù)據(jù)中心中運行這些功能將消除您的功能在云中運行但必須從服務(wù)器發(fā)送或接收數(shù)據(jù)時可能遇到的網(wǎng)絡(luò)瓶頸。私人設(shè)施。
考慮使用無服務(wù)器解決方案而不是公共云中可用的解決方案的最后一個關(guān)鍵原因是,后者的服務(wù)僅對某些語言編寫的功能提供本地支持。通常可以執(zhí)行使用其他語言開發(fā)的功能,但只能通過使用包裝器執(zhí)行,這會帶來性能上的損失。部署自己的無服務(wù)器解決方案時,您將具有更大的能力來配置其運行方式以及支持的語言。
就是說,可用于數(shù)據(jù)中心的各種無服務(wù)器框架在這方面都有其自身的局限性,因此您應(yīng)該在選擇選項之前評估它們支持的語言和打包格式。
數(shù)據(jù)中心的無服務(wù)器功能解決方案
在您自己的數(shù)據(jù)中心(或托管數(shù)據(jù)中心)中部署無服務(wù)器功能并不比在公共云中運行它們復(fù)雜得多。在公共云外部建立無服務(wù)器架構(gòu)的主要方法有兩種。
首先是在數(shù)據(jù)中心內(nèi)運行私有云,然后在其之上部署無服務(wù)器框架。在OpenStack云中,您可以使用Qinling進(jìn)行此操作。Kubernetes(這不完全是私有云框架,但相似之處在于,它使您可以將服務(wù)器池合并到一個軟件環(huán)境中)支持Knative,Kubeless和OpenWhisk等其他無服務(wù)器框架。
第二種方法是使用混合云框架,該框架允許您在自己的數(shù)據(jù)中心中運行公共云供應(yīng)商的無服務(wù)器框架。微軟的混合云解決方案Azure Stack支持Azure無服務(wù)器平臺,而Google Anthos 通過Cloud Run具有無服務(wù)器集成。(至于亞馬遜的云,其混合云框架AWS Outposts當(dāng)前不提供無服務(wù)器選項。)
第一種方法將需要花費更多的精力來設(shè)置,但是它可以更好地控制您使用的無服務(wù)器框架及其配置方式。由于許多用于私有云的無服務(wù)器解決方案都是開源的并且可以免費使用,因此它也可能使您獲得更低的成本。
另一方面,第二種方法是使用公共云供應(yīng)商的混合云解決方案,對于大多數(shù)團(tuán)隊來說,部署起來會更簡單,因為它不需要設(shè)置私有云。它還具有能夠在數(shù)據(jù)中心或直接在公共云中部署相同的無服務(wù)器功能的優(yōu)勢。通過Azure Stack部署的無服務(wù)器功能可以在不費吹灰之力的情況下提升和轉(zhuǎn)移,以在Azure Functions上運行。
結(jié)論
公共云中的無服務(wù)器功能非常易于部署,但是它們不能為所有類型的工作負(fù)載提供的成本,性能或安全性。對于缺少公共云供應(yīng)商的無服務(wù)器解決方案的情況,請考慮在自己的數(shù)據(jù)中心或托管設(shè)施中部署無服務(wù)器功能。