什么是藍綠部署?
藍綠部署,英文名Blue Green Deployment,是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
如何保證系統不間斷提供服務呢?
藍綠部署的模型中包含兩個集群,就好比海豚的左腦和右腦。
在沒有上線的正常情況下,集群A和集群B的代碼版本是一致的,並且同時對外提供服務。
在系統升級的時候下,我們首先把一個集群(比如集群A)從負載列表中摘除,進行新版本的部署。集群B仍然繼續提供服務。
當集群A升級完畢,我們把負載均衡重新指向集群A,再把集群B從負載列表中摘除,進行新版本的部署。集群A重新提供服務。
最后,當集群B也升級完成,我們把集群B也恢復到負載列表當中。這個時候,兩個集群的版本都已經升級,並且對外的服務幾乎沒有間斷過。
什么是滾動部署?
滾動部署,英文Rolling update,同樣是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
和藍綠部署不同的是,滾動部署對外提供服務的版本並不是非此即彼,而是在更細的粒度下平滑完成版本的升級。
如何做到細粒度平滑升級版本呢?
滾動部署只需要一個集群,集群下的不同節點可以獨立進行版本升級。比如在一個16節點的集群中,我們選擇每次升級4個節點:
以此類推,最終所有的節點都升級了版本。