摘要:云函數(shù),就是模式的具體實現(xiàn)。比如一個廣告微服務(wù),至少可以拆分出實時競價展示計數(shù)報表查詢等云函數(shù)。也就是說,云函數(shù)和微服務(wù)中的是同一粒度的。但不同于,每個云函數(shù)都是獨立部署,按需執(zhí)行。可以用適合用,需要衡量改造的代價云函數(shù)帶來的收益。
可訪問誰明浪子心-ShiYi"s Blog,獲得更好的閱讀體驗。什么是云函數(shù)
云函數(shù)提供了一種直接在云上運行,無狀態(tài)的、短暫的、由事件觸發(fā)的代碼的能力。
云函數(shù)與輕服務(wù)的關(guān)系ServerLess,即無服務(wù)器架構(gòu),也叫輕服務(wù),它包含兩個部分,如下:
函數(shù)即服務(wù)(FaaS: Function as a Service)
函數(shù)即服務(wù)提供的是計算能力。原有的計算能力,無論是容器也好,虛擬機也好都承載在一定的操作系統(tǒng)之上,函數(shù)即服務(wù)把計算能力進行了進一步抽象。
后端及服務(wù)(BaaS: Backend as a Service)
后端即服務(wù),比如對象存儲,數(shù)據(jù)庫應(yīng)用,緩存服務(wù),我們也可以稱之為Serverless,因為這些服務(wù)也能夠在云上提供開通即服務(wù),開通即使用的能力。在使用這些產(chǎn)品時同樣不需要關(guān)注它的服務(wù)器是什么樣的,它的服務(wù)器部署在哪里,而是服務(wù)開通就可以使用了,后面的運維工作都交給了云,所以不用感知它的最底層服務(wù)器。
云函數(shù),就是FaaS模式的具體實現(xiàn)。同樣,對象存儲、數(shù)據(jù)庫應(yīng)用、緩存服務(wù)等,是BaaS模式的具體實現(xiàn)。對于輕服務(wù),BaaS和FaaS缺一不可。
云函數(shù)對比傳統(tǒng)服務(wù) 服務(wù)粒度Monolith:單體應(yīng)用
MicroService:微服務(wù)
Function:云函數(shù)
一個單體應(yīng)用可以按業(yè)務(wù)模塊拆分成多個微服務(wù),一個微服務(wù)也可以按使用場景拆分成多個云函數(shù)。比如一個廣告微服務(wù),至少可以拆分出實時競價、展示計數(shù)、報表查詢等云函數(shù)。也就是說,云函數(shù)和微服務(wù)中的API是同一粒度的。但不同于API,每個云函數(shù)都是獨立部署,按需執(zhí)行。
服務(wù)架構(gòu) 云函數(shù)的特點零運維:不再需要管理底層資源的服務(wù)器
秒級部署:運行無狀態(tài),輕易實現(xiàn)快速迭代
自動觸發(fā):完全由事件觸發(fā),空閑時沒有資源在運行
聚焦代碼邏輯:開發(fā)者只關(guān)心最核心的代碼片段,跳過復(fù)雜的、無聊的其他工作
無窮彈性計算能力:根據(jù)請求自動平行調(diào)整服務(wù)資源,擁有近乎無限的擴容能力
如何使用云函數(shù) 微信云函數(shù)功能的構(gòu)成邏輯代碼(目前只支持js)
觸發(fā)器:包含定時觸發(fā)、事件觸發(fā)(目前僅支持定時觸發(fā))
設(shè)置項
運行環(huán)境(目前只有NodeJs 8.9)
資源配置(根據(jù)指定的內(nèi)存分配計算資源,CPU按比例自動分配)
超時時間(函數(shù)超過該時間仍未結(jié)束時,將會被強制中斷,不能大于20s)
環(huán)境變量(可以使用鍵/值對的形式定義可從函數(shù)代碼訪問的環(huán)境變量。增強云函數(shù)的可定制性)
相關(guān)支持
測試(即時在線測試,構(gòu)造Json參數(shù),獲取測試結(jié)果)
日志(包含請求ID,返回結(jié)果,運行時間,占用內(nèi)存)
監(jiān)控(可以查看云函數(shù)的調(diào)用次數(shù)、運行時間、錯誤次數(shù))
常見使用架構(gòu)一個云函數(shù)處理一個任務(wù),高度解耦
嘗試將請求歸類,一個云函數(shù)處理某一類的請求,比如有專門負責處理用戶的,或者專門處理支付的云函數(shù)。
只有一個云函數(shù),云函數(shù)里有一個分派任務(wù)的路由管理,將不同的任務(wù)分配給不同的本地函數(shù)處理。也可以是分配給其它的云函數(shù)或是其它執(zhí)行單元。
什么場景可以用理論上,只要符合下列條件,任何現(xiàn)有業(yè)務(wù)模塊都可以改造成云函數(shù)的方式:
觸發(fā)響應(yīng):雙向通信的場景,本質(zhì)都可以用一方輪詢來解決。
無狀態(tài):所有的狀態(tài),都可以下沉至BaaS。
可以用 ≠ 適合用,需要衡量 -> 改造的代價 vs 云函數(shù)帶來的收益。
什么場景適合用事件驅(qū)動及響應(yīng)式架構(gòu)
流量突發(fā)場景
請求對延時要求不高
低頻請求
單項任務(wù)資源要求低
微信云函數(shù)使用的痛點報錯信息不夠友好;
開發(fā)者不能設(shè)置閾值從而自動伸縮;
觸發(fā)器不夠豐富。
為什么要用云函數(shù) 使用云函數(shù)的好處簡單易用:自動并快速擴縮容;
穩(wěn)定可靠:高可用部署、與其他計算服務(wù)結(jié)合使服務(wù)更健壯;
高效開發(fā):加速開發(fā),簡化運維;
節(jié)省成本:不需為空閑資源付費;
簡化管理:可視化管理、簡化安全配置。
使用云函數(shù)的缺陷需要對業(yè)務(wù)進行很細粒度的拆分,難以進行或成本太高;
不適合長時間運行應(yīng)用;
對第三方服務(wù)依賴過高。
由于這些局限性,Serverless架構(gòu)不會成為復(fù)雜應(yīng)用的架構(gòu)首選,相反,它應(yīng)該是后端小程序的未來。
參考資料微信公眾平臺-小程序-云開發(fā)
Serverless架構(gòu)詳解:開發(fā)者如何專注于業(yè)務(wù)代碼本身?
所謂Serverless,你理解對了嗎?
云開發(fā)初探 —— 更簡便的小程序開發(fā)模式丨掘金
騰訊云-無服務(wù)器云函數(shù)-產(chǎn)品簡介-產(chǎn)品文檔
當我們聊Serverless時你應(yīng)該知道這些
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25388.html
摘要:云函數(shù)提供了一種直接在云上運行,無狀態(tài)的短暫的由事件觸發(fā)的代碼的能力。云函數(shù),就是模式的具體實現(xiàn)。也就是說,云函數(shù)和微服務(wù)中的是同一粒度的。但不同于,每個云函數(shù)都是獨立部署,按需執(zhí)行。 云函數(shù)提供了一種直接在云上運行,無狀態(tài)的、短暫的、由事件觸發(fā)的代碼的能力。 云函數(shù)與輕服務(wù)的關(guān)系image ServerLess,即無服務(wù)器架構(gòu),也叫輕服務(wù),它包含兩個部分,如下: 函數(shù)即服務(wù)(FaaS...
摘要:效果如下二技術(shù)類型網(wǎng)站可以做云主機推廣。例如阿里云騰訊云騰訊云推廣這類推廣需要結(jié)合當時的云主機提供商搞的推廣活動,以實際為準。目前來看是通過掛圖片外鏈,到云主機的各種產(chǎn)品購買活動,用戶消費成功后,按結(jié)果的提成。 showImg(https://segmentfault.com/img/remote/1460000017950925); 鄙人不才,建站足有半年有余博客zzzmh.cn 壁...
摘要:前言都是為了生存有收獲的話請加顆小星星,沒有收獲的話可以反對沒有幫助舉報三連代碼倉庫初始上一什么是面向生產(chǎn)環(huán)境的異步網(wǎng)絡(luò)通信引擎使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。 前言:都是為了生存 有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 代碼倉庫 初始swoole【上】 一、什么是swoole Swoole:面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡(luò)通信引擎 使 PHP...
摘要:初識面向切面編程的定義是什么目前自己的理解是把一個函數(shù)動態(tài)的的插入到另外一個函數(shù)當中,就像一個鉤子一樣。面向切面編程是的首字母縮寫,我們知道,面向?qū)ο蟮奶攸c是繼承多態(tài)和封裝。 初識AOP(面向切面編程) AOP的定義 AOP是什么?目前自己的理解是把一個函數(shù)‘動態(tài)的的插入’到另外一個函數(shù)當中,就像一個鉤子一樣。下面是詳細的定義。 面向切面編程(AOP是Aspect Oriented ...
摘要:屬性其實就是為了獲取節(jié)點,例如屬性利用屬性返回的回調(diào)函數(shù)獲取節(jié)點,從而讓頁面渲染完成之后,聚焦,除了可以綁定回調(diào)函數(shù)之外還能綁定字符串,但是在后期對字符串形式不再維護,這里就不具體說明了,就用回調(diào)函數(shù)獲取。 ref屬性其實就是為了獲取DOM節(jié)點,例如: import React from react class RefComponent extends React.Component...
閱讀 2686·2021-09-22 15:58
閱讀 2229·2019-08-29 16:06
閱讀 896·2019-08-29 14:14
閱讀 2809·2019-08-29 13:48
閱讀 2450·2019-08-28 18:01
閱讀 1494·2019-08-28 17:52
閱讀 3317·2019-08-26 14:05
閱讀 1609·2019-08-26 13:50