新手入門:無(wú)服務(wù)器函數(shù)和FaaS簡(jiǎn)介
無(wú)服務(wù)器(Serverless)架構(gòu)的價(jià)值在于其成本效益、彈性和擴(kuò)展性、簡(jiǎn)化的開(kāi)發(fā)和部署流程、高可用性和可靠性以及使開(kāi)發(fā)者能夠?qū)W⒂跇I(yè)務(wù)邏輯。通過(guò)自動(dòng)化資源調(diào)配和按需計(jì)費(fèi),無(wú)服務(wù)器架構(gòu)能夠降低成本并適應(yīng)流量變化,同時(shí)簡(jiǎn)化開(kāi)發(fā)流程并提供可靠的基礎(chǔ)設(shè)施。這使得開(kāi)發(fā)者能夠更快速地推出新功能,滿足用戶需求,從而實(shí)現(xiàn)業(yè)務(wù)目標(biāo)。
延伸閱讀,點(diǎn)擊鏈接了解 Akamai Cloud Computing
然而作為新手,當(dāng)我們準(zhǔn)備構(gòu)建自己的首個(gè)容器化應(yīng)用程序時(shí),可能會(huì)將函數(shù)、無(wú)服務(wù)器和Kubernetes等基本概念混為一談。Akamai將通過(guò)本文向大家詳細(xì)介紹這些概念的含意,為構(gòu)建可擴(kuò)展的云原生應(yīng)用程序奠定基礎(chǔ)。
Kubernetes是什么?
“Kubernetes是一種用于管理容器生命周期,以及管理運(yùn)行容器的節(jié)點(diǎn)所使用的容器編排工具?!?/span>
上述這句話的含意可以這樣分開(kāi)來(lái)理解:
- 總的來(lái)說(shuō),容器是一種打包的應(yīng)用程序,其中已經(jīng)包含了應(yīng)用程序的所有依賴項(xiàng),不依賴底層操作系統(tǒng)提供的任何額外的庫(kù)即可運(yùn)行。
- 容器可以匯聚成組,形成在大量節(jié)點(diǎn)上運(yùn)行的多個(gè)Pod。
- 節(jié)點(diǎn)是一種計(jì)算單元,通常是運(yùn)行Linux的虛擬機(jī)(但從技術(shù)上來(lái)看,也可以是集群中運(yùn)行Pod或容器組的任何虛擬或物理服務(wù)器)。
Kubernetes將協(xié)調(diào)節(jié)點(diǎn)的創(chuàng)建工作,并根據(jù)開(kāi)發(fā)者定義的條件,在不同節(jié)點(diǎn)上部署、銷毀和移動(dòng)容器與Pod。
為了構(gòu)建和自動(dòng)運(yùn)行容器化應(yīng)用程序,并實(shí)現(xiàn)規(guī)模化和高可用性,Kubernetes至關(guān)重要。
Kubernetes與無(wú)服務(wù)器函數(shù)和FaaS有很大差異,但通常可用于支撐運(yùn)行這些技術(shù)的后端。
無(wú)服務(wù)器是什么?
無(wú)服務(wù)器(Serverless)是一種開(kāi)發(fā)模型,可以讓開(kāi)發(fā)者通過(guò)容器發(fā)布代碼,而無(wú)需管理服務(wù)器或其他云基礎(chǔ)設(shè)施。云服務(wù)提供商負(fù)責(zé)管理服務(wù)器/操作系統(tǒng)以及該級(jí)別之下的一切,借此可以為開(kāi)發(fā)者提供高度精簡(jiǎn)的環(huán)境,開(kāi)發(fā)者可以在此基礎(chǔ)上編寫和部署代碼。
不同提供商的稱呼可能各異,但無(wú)服務(wù)器架構(gòu)將責(zé)任從開(kāi)發(fā)者轉(zhuǎn)移到云服務(wù)提供商,涵蓋了從服務(wù)器級(jí)別到更底層的一切。
函數(shù)是什么?
為應(yīng)用程序構(gòu)建的模塊化組件通??煞Q為微服務(wù)(Microservice),開(kāi)發(fā)者可以通過(guò)微服務(wù)將經(jīng)常使用的功能“切分”為代碼塊,而這些代碼塊就叫作函數(shù)(Function),可在相應(yīng)事件被觸發(fā)后執(zhí)行。
任何可以觸發(fā)一個(gè)或一系列事件的用戶活動(dòng)都可以部署為函數(shù)。例如,用戶在我們的網(wǎng)站上注冊(cè),可能會(huì)觸發(fā)數(shù)據(jù)庫(kù)更改,進(jìn)而觸發(fā)發(fā)送歡迎電子郵件。我們可以用一系列無(wú)服務(wù)器函數(shù)來(lái)處理這背后的后臺(tái)工作。

函數(shù)即服務(wù)(FaaS)是什么?

“即服務(wù)”這個(gè)稱呼似乎已經(jīng)開(kāi)始被行業(yè)中的所有事物所使用。一般來(lái)說(shuō),任何“即服務(wù)”的意思都是指云服務(wù)提供商通過(guò)后端基礎(chǔ)設(shè)施,讓自己的用戶能夠流暢地訪問(wèn)作為服務(wù)的那些功能。FaaS使開(kāi)發(fā)者能夠直接構(gòu)建和運(yùn)行函數(shù),而無(wú)需維護(hù)任何基礎(chǔ)設(shè)施。FaaS通常會(huì)按執(zhí)行時(shí)間收費(fèi),這意味著只有在代碼片段運(yùn)行時(shí)才會(huì)計(jì)費(fèi)。與全天候運(yùn)行服務(wù)器相比,這是一種極具成本效益的做法。
FaaS平臺(tái)會(huì)圍繞特定基礎(chǔ)設(shè)施技術(shù)(如Kubernetes)進(jìn)行構(gòu)建,或提供GUI來(lái)創(chuàng)建函數(shù)并將其連接到應(yīng)用程序而無(wú)須編寫任何代碼,從而讓函數(shù)易于部署和管理。
社區(qū)提交的函數(shù)讓用戶可以更容易地查找和實(shí)施用于優(yōu)化應(yīng)用程序性能的邏輯。FaaS是一種熱門產(chǎn)品,很多云服務(wù)提供商都有相應(yīng)服務(wù),借此幫助用戶在一個(gè)平臺(tái)上管理函數(shù)和應(yīng)用程序基礎(chǔ)設(shè)施。
總結(jié)
如果您目前的應(yīng)用程序開(kāi)發(fā)工作就用到了任何云平臺(tái)提供的函數(shù),那么歡迎通過(guò)評(píng)論將使用感受分享給Akamai。Akamai云計(jì)算服務(wù)正在探索是否可以將函數(shù)添加到Akamai云平臺(tái)。歡迎通過(guò)評(píng)論告訴我們,您希望在Akamai云平臺(tái)上使用或看到怎樣的函數(shù)服務(wù)。
—————————————————————————————————————————————————
如您所在的企業(yè)也在考慮采購(gòu)云服務(wù)或進(jìn)行云遷移,
點(diǎn)擊鏈接了解Akamai Linode的解決方案