灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。ab test就是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面來。
灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。
灰度發布常見一般有三種方式:
本文主要將講解根據cookie和來路ip這兩種方式實現簡單的灰度發布,nginx+lua
這種方式涉及內容太多就不再本文展開了。
a/b測試流程
nginx根據cookie實現灰度發布
根據cookie查詢cookie鍵為version的值,如果該cookie值為v1則**到hilinux_01,為v2則**到hilinux_02。cookie值都不匹配的情況下預設走hilinux_01所對應的伺服器。
兩台伺服器分別定義為:
}在nginx裡面配置乙個對映,$cookie_version
可以解析出cookie裡面的version欄位。$group
是乙個變數,{}裡面是對映規則。
如果乙個version為v1的使用者來訪問,$group
就等於hilinux_01。在server裡面使用就會**到http://hilinux_01
上。version為v2的使用者來訪問,$group
就等於hilinux_02。在server裡面使用就會**到http://hilinux_02
上。cookie值都不匹配的情況下預設走hilinux_01所對應的伺服器。
upstream hilinux_01
upstream hilinux_02
upstream default
map $cookie_version $group
server
}
如果是內部ip,則反向**到hilinux_02(預發布環境);如果不是則反向**到hilinux_01(生產環境)。
upstream hilinux_01
upstream hilinux_02
upstream default
server
location /
}
如果你只有單台伺服器,可以根據不同的ip設定不同的**根目錄來達到相同的目的。
server
location /
}
到此最基本的實現灰度發布方法就講解完了,如果要做更細粒度灰度發布可參考abtestinggateway
專案。
abtestinggateway:
使用Nginx實現灰度發布
灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。ab test就是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現 調整問題,以保證其影響度...
使用Nginx實現簡單灰度發布
灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現 調整問題,以保證其影響度。注意,nginx安裝時需要安裝如下模組,讓nginx能獲取到客戶端真實的ip with http realip module灰度發布常見一般有三種方式 1,nginx根據cookie實現灰度發布根據cookie查詢...
Nginx實現系統灰度發布
在系統發布的時候,經常會遇到要停機發布的情況。大家經常會在凌晨去發布系統。這樣導致開發和測試的同時都很辛苦。那麼有沒有一種比較簡單 成本相對可以接受的方式來進行發布呢?在這裡,給大家推薦灰度發布的方式。灰度發布的方式很多,最簡單的操作方式是直接操作nginx的upstream來進行灰度發布。前提 至...