DevOps下微服務架構連續交付部署CI/CD流程
假設我們有一個Web應用程式,並且我們已經構建了一個令人驚歎的現代連續交付管道。對於每天從事此專案的開發人員來說,部署一個微服務需要下面步驟:
拉取請求
CI在主伺服器上執行
用新程式碼替換舊程式碼
啟用新功能標誌
根據工具、語言和麵向服務的架構的使用,您將有不同的設定。
- 在git中新建一個分支
- 在功能標誌後面進行更改
- 執行單元測試,使用開啟和關閉的功能標誌驗證您的更改
拉取請求
- 提交更改
- 將更改推送到github上的遠端
- 提出拉取請求
- CI構建在後臺自動執行
- 程式碼審查
- 也許重複幾次這一步
- 將更改合併到git master中
CI在主伺服器上執行
- 安裝依賴項 前端NPM 後端MAVEN
- 前端建立/最佳化HTML+CSS+JS,後端編譯
- 執行前後端單元/功能測試/整合測試
- 將前端資源推送到CDN
- 為應用程式構建一個容器docker
- 將容器推送到登錄檔
- 更新kubernetes清單
用新程式碼替換舊程式碼
- Kubernetes 啟動了一些新容器的例項
- Kubernetes 等待這些例項變得健康
- Kubernetes將這些例項新增到HTTP負載均衡器中
- Kubernetes 等待舊例項未使用
- Kubernetes 刪除舊例項
- Kubernetes重複,直到所有舊例項都被新例項替換
啟用新功能標誌
- 為自己啟用新程式碼,獲得信心
- 為10%的使用者啟用新程式碼,觀看運營和業務指標
- 為50%的使用者啟用新程式碼,觀察運營和業務指標
- 為100%的使用者啟用新程式碼,觀察運營和業務指標
- 最後,再次完成整個過程,刪除舊程式碼和功能標誌
根據工具、語言和麵向服務的架構的使用,您將有不同的設定。
相關文章
- 微服務架構下 CI/CD 如何落地微服務架構
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- Kubernetes 部署 - DevOps CI/CD詳細指南dev
- CI/CD 持續整合部署實踐
- .Net微服務實戰之CI/CD微服務
- 前端專案基於GitLab-CI的持續整合/持續部署(CI/CD)前端Gitlab
- .NET 微服務——CI/CD(2):自動打包映象微服務
- Azure DevOps+Docker+Asp.NET Core 實現CI/CD(二.建立CI持續整合管道)devDockerASP.NET
- .NET 微服務——CI/CD(3):映象自動分發微服務
- 以 egg.js 為例的持續整合(CI)、持續部署(CD)JS
- spring微服務架構設計與輕量級微服務架構及最佳部署Spring微服務架構
- 【JMicro】微服務部署架構及例項微服務架構
- 連載 4 - 如何看待微服務架構下的分層微服務架構
- 青春不老 - B站的微服務與持續交付實踐|IDCF DevOps案例研究微服務dev
- DevOps,CI,CD,自動化簡單介紹dev
- Devops微服務架構下具有程式碼級穿透能力的精準測試dev微服務架構穿透
- Serverless Devs 重大更新,基於 Serverless 架構的 CI/CD 框架:Serverless-cdServerdev架構框架
- .NET 微服務——CI/CD(4):避坑和一點經驗微服務
- 微服務下的資料架構微服務架構
- Golang基於Gitlab CI/CD部署方案GolangGitlab
- Azure Data Factory(三)整合 Azure Devops 實現CI/CDdev
- 透過雲效 CI/CD 實現微服務全鏈路灰度微服務
- 基於Drone實現CI/CD【0到1架構系列】架構
- 微服務架構基礎之輕量級部署微服務架構
- 微服務架構下分散式session管理微服務架構分散式Session
- 微服務架構下的系統整合微服務架構
- Jenkins+GitLab+SonnarQube搭建CI/CD全流程JenkinsGitlab
- 聊聊持續交付與軟體架構架構
- 微服務2:微服務全景架構微服務架構
- CI & CD ?
- devops-5:從0開始構建一條完成的CI CD流水線dev
- 如何構建更好的複雜系統?容器、微服務和持續交付微服務
- 微服務架構:構建PHP微服務生態微服務架構PHP
- 微服務架構初探微服務架構
- 微服務 dubbospring 架構微服務Spring架構
- 微服務架構下程式碼管理規範微服務架構
- Go-Zero 短鏈專案 DevOps 實戰,利用 Drone CI/CD 打通上雲(Kubernetes)迭代流程Godev
- 單體架構&微服務架構&中臺服務架構架構微服務