容器化應用: Openshift 路由拆分實現藍綠部署

路由拆分就是把一個路由的流量按比例, 權重分發到不一樣的後端服務. 原理和帶權重的負載均衡相同. 若是你使用過阿里雲的SLB, 應該很熟悉了.java

圖片描述

while true; do curl http://hello-microservice-blue-reactive-microservices.192.168.99.100.nip.io 2>&1; echo ''; sleep 1; done;

示例過程

咱們以一個Vertx 的Hello Microservice 爲例子react

下載須要的代碼git

https://github.com/redhat-developer/reactive-microservices-in-java.git
cd openshift/hello-microservice-openshift
mvn fabric8:deploy -Popenshift

部署完成後, 修改 pom.xml 中的 <artifactId>hello-microservice-blue, 再次執行以下的構建命令以建立一個新的部署:github

mvn fabric8:deploy -Popenshift

這樣, Openshift 中會同時存在兩個名稱不一樣的部署, 分別表明應用程序的兩個不一樣版本. 後端

clipboard.png

clipboard.png

路由拆分配置瀏覽器

clipboard.png

clipboard.png

路由信息頁面
clipboard.png負載均衡

而後用不一樣的瀏覽器打開這個路由, 你就會看到不一樣的輸出. 固然, hello-microservice-blue 這個部署, 你得修改一點輸出代碼, 以示區分.curl

由於路由有 Session Affinity(會話親和, 會話粘滯), 因此要用不一樣的瀏覽器才能看到效果. 這樣就是實現了應用的藍綠部署, 灰度發佈, A/B測試, 等等等等相似的先試點, 再推廣 這個機制. 把有可能的影響範圍下降到最小.測試

clipboard.png

參考資料

相關文章
相關標籤/搜索