“ 由於我們的系統是7*24小時不間斷為用戶提供服務的,如果直接發布那些正在訪問的用戶就會訪問失敗,給用戶帶來不好的使用體驗,也會給公司帶來經濟損失,所以我們一般會選擇在凌晨用戶少的時候去發布。”
為了發布不要影響到用戶訪問,為了不再在凌晨三點熬夜發布版本,無損發布就顯得非常重要了。
那么能做到無損發布嗎?答案是肯定的,需要nginx和web server配合完成,請看下面的流程圖。
無損發布流程
1,初始狀態
有兩個web server節點組成的集群。
2,下線web-server1
給nginx發送指令(動態修改upstream,下面會講到),下線web-server1。
3,部署和驗證web-server1
web-server1下線之后,就可以開始部署和驗證了,發布完成之后,可以直連到這個節點進行驗證。
4,上線web-server1
驗證沒有問題之后,就可以上線了。
5,按以上步驟依次發布其它節點
遠程管理
那么,可能會有讀者會問怎么給nginx發送指令呢?我們可以借助nginx的第三方擴展模塊:ngx_http_dyups_module
因為ngx_http_dyups_module提供了restful的接口,所以我們基於此開發一個管理控制台,做到遠程管理,類似於下面這樣。
歡迎大家掃描下方二維碼獲取我的最新原創文章: