在活動高峰期小程序的調用量激增,要求服務端能夠快速進行彈性伸縮。

針對小程序場景,阿里云提供了完整的小程序解決方案:小程序云。資源的有效利用和彈性伸縮,是小程序云提供的核心能力之一,而這背后依托的,就是阿里云函數計算服務。函數計算是一個全托管 Serverless 計算服務,讓開發者無需管理服務器等基礎設施,只需編寫和上傳代碼,就能夠構建可靠、彈性、安全的服務。下面就以 雙11 小程序場景為例,解析函數計算在彈性伸縮上的核心技術。

小程序架構

讓我們先來看一下淘寶小程序的技術架構是什么樣的:

用戶在手機淘寶點擊店鋪活動,就進入了小程序。界面及交互由小程序客戶端提供;
在用戶參與活動過程中,需要向服務端請求或者發送數據時,由客戶端發起函數調用;
函數調用先經過淘寶接入網關,進行必要的鑒權認證,然后調用到小程序云;
用戶的函數代碼執行在小程序云中,用戶可以實現自定義的業務邏輯。

利用小程序云提供的豐富的擴展能力,用戶可以方便地構建完整的電商應用:

數據存儲:存儲結構化的數據;
文件存儲:存儲文本/圖片/視頻等文件;
電商服務:獲取用戶信息/創建支付交易;
統計分析:自動統計小程序的使用信息及用戶分析,支撐商業決策。

可以看到,函數是整個小程序的業務邏輯的核心,它將云端的基礎能力組合串聯起來,對客戶端提供服務能力。如果函數能力成為瓶頸,將影響整個小程序的運行。

在這樣的架構下,要支撐大量的小程序,需要函數能夠做到:

一是隨時在線以支持小程序即開即用;
二是彈性伸縮以應對小程序訪問突增。為了做到以上兩點,讓我們看一下函數計算的技術架構:

函數計算架構

其中幾個核心組件的功能如下:

API 服務:函數計算的網關,實現鑒權/流控等功能;
資源調度:為函數調用分配管理計算資源,負責調度效率和性能;
函數執行引擎:執行函數代碼的環境,做到安全和隔離。

基于這個架構,函數計算是如何解決上面提到的小程序平臺的挑戰呢?接下來我們逐一分析。

1. 冷啟動

當用戶創建函數上傳代碼時,函數計算只是將代碼包保存到 OSS,并沒有分配計算資源,因此函數計算可以支撐海量的小程序。

當函數第一次被調用時,函數計算會分配計算資源、下載函數代碼、加載并執行代碼。這一過程稱為冷啟動,函數計算通過大量的優化,將系統側的冷啟動時間優化到 200ms 以內。因此即使是冷的小程序,在初次調用時也能夠做到快速的即開即用。

2. 彈性伸縮

當小程序持續調用過程中,負載逐漸上升或者突然升高的情況下,函數計算是如何應對的呢?

函數計算的“資源調度”模塊,會精確管理每個實例的狀態,當請求到來時,它首先檢查是否有空閑的實例可以服務,如果沒有請求就會進入等待隊列,當有空閑的實例釋放出來時,請求就能夠被及時處理。

同時,調度器還會在后臺創建新的實例,當新的實例準備好后,也能夠服務請求。在這種策略下,能夠做到在負載以 2 倍的速度增長情況下,請求的 P95 延時是穩定的。優化細節可以參考我們的博客文章。

上面是某個淘寶小程序的調用量和延時監控數據。

可以看到,在整點活動時,TPS 出現了瞬間的高峰,但是 P95 延時卻沒有明顯的波動。這是因為函數計算在請求高峰來臨時,能夠快速地彈性伸縮創建新的實例,同時利用已有資源做一定的緩沖,使得整個攀升的過程能夠比較平滑。

3. 預留實例

對于一些“秒殺”的場景,要求瞬間提供大量的計算資源。此時靠實時的彈性伸縮是不夠的:

一是冷啟動的時間即使是 200ms,對于秒殺場景也太慢了;
二是底層的計算資源在擴容時也會有流控。

針對這種場景,函數計算提供了預留實例的功能。使用預留實例,用戶可以為一些可預測的活動提前預留好資源,徹底消除冷啟動。

和傳統的基于服務器的做法不同,用戶不需要按峰值來預留資源,而是可以結合預留實例和按量實例的混合模式:請求先被預留實例處理,當預留實例用滿時,會自動彈性伸縮出更多的按量實例來處理請求。

由于有一定的資源基礎,結合調度優化,按量實例的冷啟動所產生的影響就被大大減小了。這就是利用函數計算的彈性伸縮能力,在性能和成本之間達到很好的平衡。

總結

小程序是輕量級的快速迭代的移動應用,對小程序開發者的開發效率有很高的要求。

小程序上線后隨著訪問量的增加或者活動期間的訪問突增,對后端服務的穩定和彈性也是一個很大的考驗。函數計算上傳代碼即可運行,極大地提高了后端服務的開發效率;混合模式的彈性伸縮,輕松應對負載變化。這些特點使得函數計算成為支撐小程序平臺的很好的選擇。

對函數計算感興趣的開發者,可以點此免費試用)!

本書亮點

雙11 超大規模 K8s 集群實踐中,遇到的問題及解決方法詳述
云原生化最佳組合:Kubernetes 容器 神龍,實現核心系統 100% %u4E0A云的技術細節
雙 11 Service Mesh 超大規模落地解決方案

“阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術圈。”

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » 函數計算: 讓小程序開發進入 Serverless 時代

登錄

找回密碼

注冊

主站蜘蛛池模板: 国产99视频精品免费视频36| 精品人伦一区二区三区蜜桃免费| 亚洲熟妇色xxxxx欧美老妇| 波多野结衣av一区二区三区中文| 精品一区二区三区四区色| 精品人妻中文字幕av| 国内外成人综合免费视频| 又黄又爽又色的免费网站| 婷婷亚洲综合五月天小说| 免费国产一级特黄aa大片在线| 国产精品九九久久精品女同| 国产麻豆剧传媒精品国产av| 最新亚洲av日韩av二区| 久久这里有精品国产电影网| 久久99精品久久久久久9| 熟女一区二区中文字幕| 亚洲开心婷婷中文字幕| 亚洲AV日韩AV高清在线观看| 精品国产一区二区亚洲人| 成人乱人伦精品小说| 午夜福利偷拍国语对白| 日韩人妻一区二区三区蜜桃视频| 国产精品自产拍在线播放| 精品久久人人做爽综合| 大香伊蕉在人线国产最新2005| 欧美成年黄网站色视频| 99久久99久久精品免费看蜜桃| 亚洲天堂亚洲天堂亚洲色图| 成人影片一区免费观看| 一区二区三区久久精品国产| 日本少妇自慰免费完整版| 国产麻豆91网在线看| 国产一区二区三区禁18| 亚洲人成网站18禁止| 亚洲人成人一区二区三区| 国产性一交一乱一伦一色一情| 精品免费看国产一区二区| 国产91精品一区二区亚洲| 日韩深夜福利视频在线观看| 亚洲国产欧美在线观看片| 西乌珠穆沁旗|