DevOps下微服務架構連續交付部署CI/CD流程

banq發表於2021-05-02
假設我們有一個Web應用程式,並且我們已經構建了一個令人驚歎的現代連續交付管道。對於每天從事此專案的開發人員來說,部署一個微服務需要下面步驟:
  • 在git中新建一個分支
  • 在功能標誌後面進行更改
  • 執行單元測試,使用開啟和關閉的功能標誌驗證您的更改

拉取請求
  • 提交更改
  • 將更改推送到github上的遠端
  • 提出拉取請求
  • CI構建在後臺自動執行
  • 程式碼審查
  • 也許重複幾次這一步
  • 將更改合併到git master中

CI在主伺服器上執行
  • 安裝依賴項 前端NPM 後端MAVEN
  • 前端建立/最佳化HTML+CSS+JS,後端編譯
  • 執行前後端單元/功能測試/整合測試
  • 將前端資源推送到CDN
  • 為應用程式構建一個容器docker
  • 將容器推送到登錄檔
  • 更新kubernetes清單

用新程式碼替換舊程式碼
  • Kubernetes 啟動了一些新容器的例項
  • Kubernetes 等待這些例項變得健康
  • Kubernetes將這些例項新增到HTTP負載均衡器中
  • Kubernetes 等待舊例項未使用
  • Kubernetes 刪除舊例項
  • Kubernetes重複,直到所有舊例項都被新例項替換

啟用新功能標誌
  • 為自己啟用新程式碼,獲得信心
  • 為10%的使用者啟用新程式碼,觀看運營和業務指標
  • 為50%的使用者啟用新程式碼,觀察運營和業務指標
  • 為100%的使用者啟用新程式碼,觀察運營和業務指標
  • 最後,再次完成整個過程,刪除舊程式碼和功能標誌

根據工具、語言和麵向服務的架構的使用,您將有不同的設定。

相關文章