使用ArgoCD和Liquibase在有資料庫的Kubernetes中實現持續交付 - Piotr
圍繞持續交付的最大挑戰之一是與資料庫的整合。因此,我們應該將此整合視為標準配置。是時候將資料庫程式碼視為應用程式程式碼了。否則,我們的 CI/CD 過程在資料庫中失敗。
通常,當我們考慮應用程式的 CI/CD 流程時,我們有多個目標環境。根據雲原生模式,每個應用程式都有自己獨立的資料庫。此外,它在每個環境中都是獨一無二的。因此,每次執行交付管道時,我們都必須更新特定環境中的資料庫例項。我們應該在執行新版本應用程式之前執行此操作(例如,使用藍綠方法)。
這是我們場景的視覺化。我們在三種不同的環境中釋出 Spring Boot 應用程式。這些環境只是 Kubernetes 上不同的名稱空間dev:test和prod. 整個過程由 ArgoCD 和 Liquibase 管理。在dev環境中,我們不使用任何遷移工具。假設我們把它留給開發人員。我們的機制對test和prod名稱空間是有效的。
現代 Java 框架(如 Spring Boot)提供與 Liquibase 的內建整合。在這個概念中,我們只需要建立一個 Liquibase 更改日誌並在 Spring 配置中設定它的位置。我們的框架在應用程式啟動時執行這樣一個指令碼。由於它在開發中是一種非常有用的方法,因此我不建議將其用於生產部署。特別是如果您在 Kubernetes 上部署應用程式。為什麼?您將在我在第一段中已經提到的文章中找到詳細的解釋。
原始碼
如果您想自己嘗試一下,可以隨時檢視我的原始碼。為此,您需要克隆我的 GitHub 儲存庫。
更多點選標題見原文
相關文章
- 轉:笨方法使用Kubernetes實現持續交付
- 如何使用Kubernetes Cluster API和ArgoCD建立和管理多個Kubernetes叢集 - PiotrAPIGo
- 快速指南:在DevOps中實現持續交付dev
- ArgoCD +‘ArgoCD Image Updater小工具’ 實現映象倉庫tag變更自動觸發持續整合Go
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- [成] ArgoCD + "ArgoCD Image Updater小工具" 實現映象倉庫tag變更自動觸發持續整合Go
- [譯] 不使用 fastlane 實現持續交付的 5 種選項AST
- eBay透過事件溯源實現持續交付事件
- 持續整合、持續部署、持續交付、持續釋出
- 持續整合、持續交付、持續部署簡介
- 持續交付中的分支管理與版本控制
- 基於Jenkins + Argo 實現多叢集的持續交付JenkinsGo
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 持續交付探索與實踐(一):交付流水線的設計
- 持續交付一——軟體交付的問題
- 談談持續整合,持續交付,持續部署之間的區別
- 使用 GitHub 和 Python 實現持續部署GithubPython
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- LiquiBase 管理資料庫變更實踐UI資料庫
- [轉載]持續交付和DevOps的前世今生dev
- 數字化浪潮來臨,如何實現業務敏捷交付和科技持續治理?敏捷
- 從持續整合到持續交付——DockerCloud概覽DockerCloud
- SAP開源的持續整合-持續交付的解決方案
- iOS 持續交付之 FastlaneiOSAST
- ArgoCD + ArgoCD Image Updater 部署實現Go
- 使用流水線外掛實現持續整合、持續部署
- 持續交付體系在高德的實踐歷程
- 雲效DevOps實踐-8分鐘如何快速實現持續交付dev
- Docker+GitLab+Jenkins+kubernetes實現DevOps 持續化整合和持續化部署概念圖DockerGitlabJenkinsdev
- iOS使用fastlane實現持續整合iOSAST
- 微服務、容器與持續交付微服務
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- 使用 KubeSphere 和極狐GitLab 打造雲原生持續交付系統Gitlab
- 大象如何跳舞-支付寶持續交付實踐
- 持續交付與傳統敏捷的矛盾敏捷
- 在Kubernetes上使用Spring Boot實現Hazelcast分散式快取 – PiotrSpring BootAST分散式快取
- SpringBoot資料庫管理 - 用Liquibase對資料庫管理和遷移?Spring Boot資料庫UI
- 資料庫與Redgate SQL Toolbelt和Azure DevOps的持續整合資料庫SQLdev