您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么使用ServerLess實(shí)現(xiàn)云原生,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
筆者有幸經(jīng)歷了 IaaS(OS)、CaaS(Container),在這兩年又聽到了 FaaS(Funtion),這也是運(yùn)維開發(fā)領(lǐng)域里的第三個(gè)階段了吧,今天我將從一個(gè)不懂得開發(fā)的系統(tǒng)工程師視角以及結(jié)合之前的幾篇系列文章為各位詮釋這個(gè)概念。
本文來自 Serverless 社區(qū)用戶「StatLee」投稿
一開始聽到 ServerLess 我以為是類似于 VPS(建站主機(jī))亦或者是 VM、Container 之類的具備完整 OS 或半完整 OS 生態(tài)的一個(gè)全新開發(fā)方式,后來發(fā)現(xiàn)我完全理解錯(cuò)了
那么 FaaS(ServerLess 為代表的的 Funtion As A Service)就是把 SaaS 再進(jìn)行精細(xì)化拆分。
傳統(tǒng)以為 Application 就是業(yè)務(wù)的最終形態(tài),可是隨著以開發(fā)領(lǐng)域?yàn)槭椎摹肝⒎?wù)」及運(yùn)維領(lǐng)域?yàn)槭椎摹窼RE/DevOps」理念出來后,傳統(tǒng)的業(yè)務(wù)運(yùn)維明顯已經(jīng)不能滿足新一代業(yè)務(wù)的需求,為了更貼合這些新的需求,實(shí)現(xiàn):
模塊拆分化(即一個(gè)功能作為一個(gè)模塊,而非一個(gè)業(yè)務(wù)作為一個(gè)模塊)
最小顆?;兏捶謱幼兏?,變更時(shí)通過合理調(diào)度時(shí)變更間隔縮短,實(shí)現(xiàn)快速迭代)的目的
云廠商最終在以往的「最終形態(tài)」上又拆分了 Function 出來,多個(gè) Function 再組成 Application,除了業(yè)務(wù)上的好處,這樣做的好處還可以支持將 Function 拆分單獨(dú)作為某個(gè)服務(wù)通過簡單的加殼(API 化)提供給外部調(diào)用,從商業(yè)角度講,這樣的模式能夠給 Application 本身創(chuàng)造的價(jià)值之外提供了更多的細(xì)分變現(xiàn)領(lǐng)域。
所以,為什么 ServerLess 這么火(至少表面看),就是因?yàn)?ServerLess 是上述所說 FaaS 的最佳體現(xiàn)。
我們開始創(chuàng)建今天的主角,ServerLess(python 版本隨自身業(yè)務(wù)需求而變)創(chuàng)建一個(gè)云函數(shù):
創(chuàng)建 SCF(云函數(shù),ServerLess)
從云函數(shù)的功能上來看,與騰訊云的功能整合度還是比較高的,在規(guī)劃上筆者建議通過私有網(wǎng)絡(luò)來構(gòu)造云函數(shù)應(yīng)用。
對接 cvm apiv3 sdk來實(shí)現(xiàn)拉取cvm列表,首先將用到的SDK文件放在云函數(shù)所在目錄下。
通過 VSCode 插件一鍵部署。這里推薦使用 VSCode 來作為主 IDE,無論是構(gòu)造 API 的 Django 所用的 TKE 可以通過 Remote Development 插件來進(jìn)行遠(yuǎn)程開發(fā),還是 ServerLess 也可以通過騰訊云提供的 ServerLess ToolKit(當(dāng)然大部分提供 ServerLess 的云廠商都有提供 Toolkit,安裝 ToolKit 時(shí)主要不要在 Remote IDE 窗口下點(diǎn)擊,否則就變成為遠(yuǎn)端安裝了)進(jìn)行開發(fā),基本上做到完全體驗(yàn)一致。
通過 CVM SDK 獲取 ins-id、內(nèi)網(wǎng) IP,再調(diào)用 Django 構(gòu)造的接口進(jìn)行傳參。
結(jié)果調(diào)用成功添加數(shù)據(jù)
至此,實(shí)操完成,這樣相當(dāng)把后端一個(gè)「同步信息」的接口搬上了 ServerLess
如實(shí)驗(yàn)所述,ServerLess 只能是一個(gè)類似于「轉(zhuǎn)發(fā)器」的玩意嗎?并不是的,除了業(yè)務(wù)模塊是處于「中間(轉(zhuǎn)發(fā)、同步)」的模塊類型之外,其實(shí) ServerLess 也是可以結(jié)合其他產(chǎn)品來實(shí)現(xiàn)對外輸出功能的。
本身 ServerLess 是沒有對外發(fā)布能力的,怎么理解呢?就是一般運(yùn)維同學(xué)上手一看,這玩意兒為什么連個(gè) ip 都沒有,域名哪里定義的,端口又在哪里,如何定義協(xié)議類型?
實(shí)際上 ServerLess 確實(shí)這些都沒有,因?yàn)槿绾喪鏊f,這是一個(gè)細(xì)?;街恍枰P(guān)注其上 App 中的某個(gè) Function 的一個(gè)產(chǎn)品,所以 Function 之下的所有包括 OS、網(wǎng)絡(luò)、App 都是不具備定制化的。
雖然 ServerLess 本身沒有對外發(fā)布能力,但是結(jié)合 API 網(wǎng)關(guān)就不是這回事兒了,當(dāng) ServerLess 遇到 API 網(wǎng)關(guān),通常云廠商是支持 ServerLess 添加(或叫注冊)到API網(wǎng)關(guān)的,這就相當(dāng)于你可以借 API 網(wǎng)關(guān)的「力」來使 ServerLess 實(shí)現(xiàn)對外發(fā)布的功能。
ServerLess 的開發(fā)模式業(yè)界已經(jīng)很多公司采用,相比于還在使用傳統(tǒng)環(huán)境(OS、中間件、選擇應(yīng)用語言、構(gòu)建數(shù)據(jù)層、前后端)來說:
運(yùn)維壓力小了很多,因?yàn)橹恍枰獙W⒃?ServerLess 本身的運(yùn)行參數(shù)以及架構(gòu)上的調(diào)整、運(yùn)維,而不再需要關(guān)注 Function 以下的運(yùn)維難點(diǎn);
開發(fā)人員由于 ServerLess 一般由云廠商提供全鏈路的整合,加上 IDE 插件的支持基本上全程實(shí)現(xiàn)云上開發(fā),靈活的版本、環(huán)境也可以保證發(fā)布出現(xiàn)問題的幾率最小化,同時(shí)開發(fā)職能的交叉度降到最低,開發(fā)人員之間的干擾依賴降低;
對于公司的商業(yè)模式來說,像擁有大量訪問量、市場受眾的企業(yè)客戶不單單可以在業(yè)務(wù)上實(shí)現(xiàn)盈利,某些業(yè)務(wù)系統(tǒng)模塊的優(yōu)勢也可以借助 ServerLess 拆分出來實(shí)現(xiàn)內(nèi)部IT支撐系統(tǒng)的變現(xiàn)。
ServerLess 也存在一些問題,比如由于 ServerLess 基本上是依托在云廠商之上,對于有混合云的場景,對于S2S 的鏈接質(zhì)量要求更高,當(dāng)然這些在 ServerLess 的不斷優(yōu)化迭代情況下會越來越順暢,所以,無論是 Dev 還是 Ops,擁抱并享受 ServerLess 吧。
關(guān)于怎么使用ServerLess實(shí)現(xiàn)云原生就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。