冷啟動(dòng)和廠商鎖定
時(shí)間:2022-03-04 22:02:01 | 來源:行業(yè)動(dòng)態(tài)
時(shí)間:2022-03-04 22:02:01 來源:行業(yè)動(dòng)態(tài)
冷啟動(dòng)的性能改善算得上是一次標(biāo)志性事件。FaaS 平臺(tái)初始化函數(shù)實(shí)例需要一些時(shí)間。即使對(duì)于同一個(gè)特定的功能,不同的平臺(tái)之間這種啟動(dòng)延遲可能會(huì)有很大差異,從幾毫秒到幾秒不等,取決于使用的庫、函數(shù)配置的算力等大量因素。以 Amazon Lambda 為例,Amazon Lambda 函數(shù)的初始化要么是熱啟動(dòng),要么是冷啟動(dòng)。熱啟動(dòng)是從前一個(gè)事件中重用 Amazon Lambda 函數(shù)的實(shí)例及其宿主容器,冷啟動(dòng)需要?jiǎng)?chuàng)建一個(gè)新的容器實(shí)例,啟動(dòng)函數(shù)宿主進(jìn)程。在考慮啟動(dòng)延遲時(shí),冷啟動(dòng)更受關(guān)注。
亞馬遜云科技在 2019 年提供了一項(xiàng)名為預(yù)置并發(fā)(Provisioned Concurrency) 的重要新功能,通過讓函數(shù)保持初始化狀態(tài),從而更精確地控制啟動(dòng)延遲。用戶需要做的就是設(shè)置一個(gè)值,指定平臺(tái)需要為特定功能配置多少個(gè)實(shí)例,Amazon Lambda 服務(wù)本身將確保始終有該數(shù)量的預(yù)熱實(shí)例等待工作。冷啟動(dòng)無疑是無服務(wù)器技術(shù)批評(píng)者指出的最大問題,而亞馬遜云科技這項(xiàng)功能的出現(xiàn),代表著關(guān)于冷啟動(dòng)的爭(zhēng)議已經(jīng)結(jié)束。
除此之外,廠商鎖定也是一個(gè)極具爭(zhēng)議的地方。幾年前,作為無服務(wù)器技術(shù)的反對(duì)方,CoreOS 首席執(zhí)行官 Alex Polvi 稱 Amazon Lambda 無服務(wù)器產(chǎn)品是我們?cè)谌祟悮v史上見過的最糟糕的專有鎖定形式之一。而為 MongoDB 工作的 Matt Asay 撰文反駁他說,完全避免鎖定的方法是自己編寫所有底層軟件(事件模型、部署模型等)。
總之,作為支持方,很多人認(rèn)為鎖定并不是一件非黑即白的事情,而是本身需要反復(fù)權(quán)衡的一種架構(gòu)選擇。還有技術(shù)專家表示,可以采用將應(yīng)用程序和平臺(tái)分離的設(shè)計(jì)方式,以及標(biāo)準(zhǔn)化技術(shù)的方法最小化遷移成本:如果使用標(biāo)準(zhǔn)化的 HTTP,那么可以使用 Amazon API Gateway 將 HTTP 請(qǐng)求轉(zhuǎn)換為 Amazon Lambda 事件格式;如果使用標(biāo)準(zhǔn)化的 SQL,那么使用與 MySQL 兼容 Amazon Aurora Serverless,可以自然地簡(jiǎn)化數(shù)據(jù)庫的遷移路徑......