How to use Ansible achieve blue/green deployment

Prerequisite

可以參考 How to set up Traefik on docker-swarm

  • ansible
  • docker-swarm
  • traefik

What’s blue/green deployment

看圖說故事吧

blue green

Pros:

  • 即時的 rollout/rollback

Cons:

  • 需要兩倍的資源

Concept

  1. 取得當前 slot 的顏色並且判斷出將要替換的顏色
  2. 部署新版服務到將要替換的顏色
  3. 透過 load balancer 將流量導到新版服務並且更改 slot 的顏色

Terms

name value description
slot blue,green 用以表示當前工作中的顏色
color blue,green 服務的顏色
app string 服務的名字

Implementation

// todo: write
未完待續