您好,登錄后才能下訂單哦!
Serverless怎么構(gòu)建無(wú)服務(wù)器圖片鑒黃Web應(yīng)用,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
Serverless是什么
Serverless中文譯為“無(wú)服務(wù)器”,最早可以追溯到2012年Ken Fromm發(fā)表的《Why The Future Of Software And Apps Is Serverless》,他描述了一種場(chǎng)景,從用戶自己維護(hù)的物理機(jī),到IaaS,再到PaaS,計(jì)算模式的轉(zhuǎn)變并不會(huì)停止,在云計(jì)算基礎(chǔ)設(shè)施成熟的情況下應(yīng)用程序可以不需要考慮服務(wù)器的存在,無(wú)服務(wù)器計(jì)算讓開發(fā)者可以在不考慮服務(wù)器的情況下構(gòu)建并運(yùn)行應(yīng)用程序和服務(wù)。再到2016年,Mike Roberts在Martin Fowler的博客《Serverless Architectures》中,將Serverless架構(gòu)分為Backend as a Service(BaaS)和Functions as a Service(FaaS)。
●BaaS也就是后端即服務(wù),即應(yīng)用架構(gòu)由大量三方云服務(wù)和API來(lái)組織,使應(yīng)用中關(guān)于服務(wù)器的邏輯和狀態(tài)都由服務(wù)提供方來(lái)管理。比如典型的單頁(yè)應(yīng)用(SPA)和移動(dòng)APP這些富客戶端應(yīng)用,前后端的交互主要以Rest API調(diào)用為主,只需要調(diào)用服務(wù)提供方的API即可完成相應(yīng)的功能,比如身份驗(yàn)證、數(shù)據(jù)訪問(wèn)等。
●FaaS可以被稱為函數(shù)即服務(wù),開發(fā)者可以直接將服務(wù)側(cè)業(yè)務(wù)邏輯代碼部署、運(yùn)行在第三方提供的無(wú)狀態(tài)計(jì)算容器中,開發(fā)者只需編寫業(yè)務(wù)代碼即可,無(wú)需關(guān)注服務(wù)器,且代碼的執(zhí)行是由事件觸發(fā)的。
一個(gè)Serverless的應(yīng)用就是這樣一個(gè)將BaaS和FaaS融合在一起的應(yīng)用,用戶關(guān)注于應(yīng)用的業(yè)務(wù)邏輯代碼,以函數(shù)為粒度將其運(yùn)行在FaaS平臺(tái)上,并和BaaS三方服務(wù)整合在一起,最后搭建一個(gè)完整的系統(tǒng),整個(gè)過(guò)程完全無(wú)需關(guān)注服務(wù)器。
Serverless的優(yōu)勢(shì)
1.無(wú)需管理服務(wù)器
開發(fā)者只需關(guān)注應(yīng)用的業(yè)務(wù)邏輯,而無(wú)需關(guān)注服務(wù)器的存在,降低業(yè)務(wù)接入門檻,快速上線,提高開發(fā)和運(yùn)維效率。
2.靈活擴(kuò)展、按需付費(fèi)
據(jù)Gartner和麥肯錫統(tǒng)計(jì),全球的服務(wù)器CPU平均利用率只有6%到12%,大量應(yīng)用的資源利用率是非常低下的,特別是對(duì)于負(fù)載波峰波谷明顯的應(yīng)用。而Serverless可以根據(jù)負(fù)載彈性伸縮,并按需付費(fèi),根據(jù)實(shí)際運(yùn)行消耗的資源計(jì)費(fèi),且業(yè)務(wù)是以函數(shù)的粒度運(yùn)行的,可以充分利用碎片資源,極大地減小運(yùn)作成本。
函數(shù)工作流FunctionGraph
上面簡(jiǎn)單介紹了Serverless架構(gòu)以及其優(yōu)點(diǎn)之后,我們?cè)俳榻B一下華為云的函數(shù)工作流(FunctionGraph,F(xiàn)GS)。
函數(shù)工作流(FunctionGraph,F(xiàn)GS)是一項(xiàng)基于事件驅(qū)動(dòng)的函數(shù)托管計(jì)算服務(wù),托管函數(shù)具備以毫秒級(jí)彈性伸縮、免運(yùn)維、高可靠的方式運(yùn)行。通過(guò)函數(shù)工作流,開發(fā)者無(wú)需配置和管理服務(wù)器,只需關(guān)注業(yè)務(wù)邏輯,編寫函數(shù)代碼,以無(wú)服務(wù)器的方式構(gòu)建應(yīng)用,便能開發(fā)出一個(gè)彈性高可用的后端系統(tǒng),并按實(shí)際運(yùn)行消耗的資源計(jì)費(fèi)。極大地提高了開發(fā)和運(yùn)維效率,減小了運(yùn)作成本。
構(gòu)建無(wú)服務(wù)器圖片鑒黃web應(yīng)用
為了讓大家對(duì)Serverless架構(gòu)和函數(shù)工作流有更直觀的了解,接下來(lái)我們將介紹如何通過(guò)函數(shù)工作流快速構(gòu)建一個(gè)完整的無(wú)服務(wù)器的圖片鑒黃Web應(yīng)用,如下圖,該應(yīng)用接收用戶上傳的圖片,并對(duì)圖片進(jìn)行分析,判斷是否為色情圖片。點(diǎn)擊此處可免費(fèi)體驗(yàn)Demo
試想,如果我們通過(guò)傳統(tǒng)的模式開發(fā)此應(yīng)用,需要如何開發(fā)?
即使是基于現(xiàn)在的云平臺(tái),我們也仍需要購(gòu)買云服務(wù)器,關(guān)注其規(guī)格、鏡像、網(wǎng)絡(luò)等各指標(biāo)的選型和運(yùn)維,然后在開發(fā)過(guò)程中可能還需要考慮與其他云服務(wù)的集成使用問(wèn)題,使代碼中耦合大量非業(yè)務(wù)代碼,并且服務(wù)器等資源也并非是按需的,可能會(huì)造成大量多余的費(fèi)用。
現(xiàn)在我們可以通過(guò)函數(shù)工作流服務(wù)來(lái)快速構(gòu)建這個(gè)系統(tǒng),并且完全無(wú)需關(guān)注服務(wù)器,且按需運(yùn)行,如圖:
配置完成后,您就已經(jīng)成功搭建了本案例的前端系統(tǒng)。您可以通過(guò)obs提供的訪問(wèn)地址訪問(wèn)您的前端頁(yè)面,檢測(cè)圖片時(shí),頁(yè)面會(huì)發(fā)送請(qǐng)求到您的函數(shù)。
通過(guò)上面端到端構(gòu)建一個(gè)完整的無(wú)服務(wù)器圖片鑒黃Web應(yīng)用,我們可以發(fā)現(xiàn)Serverless的架構(gòu)具有如下優(yōu)點(diǎn):
1.無(wú)需關(guān)注任何服務(wù)器,只需關(guān)注核心業(yè)務(wù)邏輯,5分鐘快速構(gòu)建后端系統(tǒng)并上線,極大地提高了開發(fā)效率。
2.函數(shù)運(yùn)行隨業(yè)務(wù)量彈性伸縮,按需付費(fèi),當(dāng)創(chuàng)建的函數(shù)沒(méi)有執(zhí)行時(shí),不計(jì)費(fèi)。
3.可以通過(guò)簡(jiǎn)單的配置連通函數(shù)工作流和其它云服務(wù),甚至云服務(wù)和云服務(wù),比如本例中只需創(chuàng)建一個(gè)APIG觸發(fā)器便可完成API網(wǎng)關(guān)和函數(shù)工作流的連接,然后在函數(shù)中調(diào)用內(nèi)容檢測(cè)服務(wù)的鑒黃接口,那么函數(shù)就像一個(gè)粘合劑一樣將兩個(gè)云服務(wù)連接在一起。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。