国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

如何保證 Serverless 業(yè)務(wù)部署更新的一致性?

發(fā)布時(shí)間:2021-08-21 11:27 來(lái)源:ITPUB博客 閱讀:0 作者: 欄目: 云計算 歡迎投稿:712375056

從我做 Serverless 工具開(kāi)始,就經(jīng)常會(huì )遇到有人問(wèn)這樣一個(gè)問(wèn)題:如何保證Serverless業(yè)務(wù)部署更新的一致性。


所謂的一致性在這里指的是:我們通過(guò)工具在本地進(jìn)行項目部署,此時(shí)再有人通過(guò)其他途徑(例如控制臺等),對項目進(jìn)行

過(guò)更新等操作,此時(shí)我再在本地進(jìn)行項目部署,是不是會(huì )直接覆蓋?

例如,當用戶(hù) A 在本地更新了業(yè)務(wù),因為一些特殊情況,導致出現了一個(gè)線(xiàn)上異常情況“x”,此時(shí)用戶(hù) B 重新更新,將這

個(gè)內容修復了,但是 B 沒(méi)有及時(shí)同步給 A 這個(gè)事情,A 又更新了新的功能,直接覆蓋了 B的內容,這個(gè)時(shí)候之前的異常 x 又

出現了,如果此時(shí)在 A 更新的時(shí)候,可以感知到線(xiàn)上資源已經(jīng)變動(dòng),那么這種事情就不會(huì )再次發(fā)生。

目前基于 Serverless Devs 的阿里云函數計算組件,已經(jīng)支持了線(xiàn)上“異動(dòng)”的感知能力,包括了以下幾個(gè)情況:


1. 本地新建并部署一個(gè)線(xiàn)上沒(méi)有的資源

1. 本地部署完成,線(xiàn)上更新,本地再次部署

1. 本地新建并部署一個(gè)線(xiàn)上已經(jīng)有的資源

實(shí)驗準備

通過(guò)s init創(chuàng )建一個(gè)函數(選擇Alibaba Cloud Serverless, 選擇HTTP Function - Python3 Example):



此時(shí)我們查看一下s.yaml:



該項目部署到線(xiàn)上之后的表現就是在cn-hangzhou區創(chuàng )建一個(gè)fc-deploy-service服務(wù),以及http-trigger-function函數

本地新建并部署一個(gè)線(xiàn)上沒(méi)有的資源

此時(shí),我們確定一下線(xiàn)上并沒(méi)有對應資源,所以我們部署一下:



部署完成,很順利:



打開(kāi)瀏覽器,查看反饋給我們的自定義地址:



此時(shí),我們可以在本地,更新一下這個(gè)函數代碼:



保存部署:



完成之后,再查看線(xiàn)上資源:



整個(gè)過(guò)程,還是比較貼近傳統的基本流程,也沒(méi)有觸發(fā)線(xiàn)上異動(dòng),算是中規中矩的理想過(guò)程。

本地部署完成,線(xiàn)上更新,本地再次部署

此時(shí),我們對線(xiàn)上資源進(jìn)行變更,首先在控制臺找到函數:



修改代碼,并部署。



部署完成之后,我們刷新一下剛才的地址:



可以看到已經(jīng)更新。此時(shí),我們再從本地進(jìn)行部署:



可以看到,系統已經(jīng)感知到我們的代碼變化,此時(shí),我們選擇yes,完成之后在查看線(xiàn)上資源:



此處需要額外說(shuō)明的是,只要是函數計算的服務(wù),函數,觸發(fā)器發(fā)生變化,此處都可以進(jìn)行感知,不管是配置還是代碼。

本地新建并部署一個(gè)線(xiàn)上已經(jīng)有的資源

此時(shí),我們再進(jìn)行最后的實(shí)驗,我們將本地項目刪除,重新建設。然后執行部署,由于剛剛實(shí)驗過(guò)的原因,我們已經(jīng)在線(xiàn)上

存在了這些資源,所以此時(shí)算是部署一個(gè)線(xiàn)上的資源。



此時(shí)可以看到,系統感知到這個(gè)資源本地沒(méi)部署過(guò),線(xiàn)上并且已經(jīng)存在,所以此時(shí)需要確定是否覆蓋。

總結

代碼在其他場(chǎng)景被更新,需要我們在當前得到感知,這個(gè)事情其實(shí)是非常重要的,和代碼的安全發(fā)布密不可少。而此時(shí), 通過(guò)Serverless Devs是可以做到的。


那么問(wèn)題來(lái)了,如果我已經(jīng)有了一個(gè)項目,我想集成到cd流程,我不想出現交互式操作,應該如何處理呢?


此時(shí)我們提供一個(gè)--use-local參數,用來(lái)強行覆蓋線(xiàn)上配置,通過(guò)這樣的指令就可以實(shí)現無(wú)交互的,本地優(yōu)先。


每一個(gè)工具的誕生,都要有一個(gè)成長(cháng)的過(guò)程,Serverless Devs正在不斷的成長(cháng)。期待更多更好的功能出現。


免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

黄色无码com网站| 国产成年无码AV片在线| 国精产品48X国精产品| 免费A级毛片无码A∨蜜芽试看| 日本A级按摩片| 国产在线精品成人一区二区三区|