自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

所謂的一致性在這里指的是:我們通過工具在本地進(jìn)行項目部署,此時再有人通過其他途徑(例如控制臺等),對項目進(jìn)行過更新等操作,此時我再在本地進(jìn)行項目部署,是不是會直接覆蓋?

例如,當(dāng)用戶 A 在本地更新了業(yè)務(wù),因為一些特殊情況,導(dǎo)致出現(xiàn)了一個線上異常情況“x”,此時用戶 B 重新更新,將這個內(nèi)容修復(fù)了,但是 B 沒有及時同步給 A 這個事情,A 又更新了新的功能,直接覆蓋了 B的內(nèi)容,這個時候之前的異常 x 又出現(xiàn)了,如果此時在 A 更新的時候,可以感知到線上資源已經(jīng)變動,那么這種事情就不會再次發(fā)生。

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

本地新建并部署一個線上沒有的資源
本地部署完成,線上更新,本地再次部署
本地新建并部署一個線上已經(jīng)有的資源

實驗準(zhǔn)備

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

此時我們查看一下s.yaml:

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

本地新建并部署一個線上沒有的資源

此時,我們確定一下線上并沒有對應(yīng)資源,所以我們部署一下:

部署完成,很順利:

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

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

保存部署:

完成之后,再查看線上資源:

整個過程,還是比較貼近傳統(tǒng)的基本流程,也沒有觸發(fā)線上異動,算是中規(guī)中矩的理想過程。

本地部署完成,線上更新,本地再次部署

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

修改代碼,并部署。

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

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

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

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

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

此時,我們再進(jìn)行最后的實驗,我們將本地項目刪除,重新建設(shè)。然后執(zhí)行部署,由于剛剛實驗過的原因,我們已經(jīng)在線上存在了這些資源,所以此時算是部署一個線上的資源。

此時可以看到,系統(tǒng)感知到這個資源本地沒部署過,線上并且已經(jīng)存在,所以此時需要確定是否覆蓋。

總結(jié)

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

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

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

每一個工具的誕生,都要有一個成長的過程,Serverless Devs正在不斷的成長。期待更多更好的功能出現(xiàn)。

原文鏈接:http://click.aliyun.com/m/1000284611/

責(zé)任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2022-10-19 12:22:53

并發(fā)扣款一致性

2025-02-10 03:00:00

2019-08-30 12:46:10

并發(fā)扣款查詢SQL

2025-03-27 08:20:54

2020-08-05 08:46:10

NFS網(wǎng)絡(luò)文件系統(tǒng)

2024-12-26 15:01:29

2024-01-10 08:01:55

高并發(fā)場景悲觀鎖

2021-03-04 06:49:53

RocketMQ事務(wù)

2023-09-07 08:11:24

Redis管道機制

2020-04-01 15:50:17

TiDBMySQL數(shù)據(jù)庫

2021-06-22 10:22:08

業(yè)務(wù)IT一致性首席信息官

2020-06-01 22:09:48

緩存緩存同步緩存誤用

2021-12-14 07:15:57

MySQLRedis數(shù)據(jù)

2024-08-20 16:13:52

2023-05-26 07:34:50

RedisMySQL緩存

2024-10-28 12:41:25

2024-10-16 09:53:07

2022-03-29 10:39:10

緩存數(shù)據(jù)庫數(shù)據(jù)

2024-01-15 10:38:20

多級緩存數(shù)據(jù)一致性分布式緩存

2020-05-12 10:43:22

Redis緩存數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號