博客 / 詳情

返回

1:1000,新能源車企如何將數據庫管理效能發揮到極致

1:1000 的數據庫變更管理困境

在數字化轉型的浪潮下,越來越多的企業擴大了軟件研發團隊的規模以加速業務系統的迭代升級,從而應對快速變化的市場競爭環境。新能源汽車作為近年的風口行業,更加註重研發的投入,以 Bytebase 的某新能源車企客户為例,僅研發人員就超過千人。然而業務迭代並非簡單的越快越好,因為快而忽略了質量,可能造成難以估量的損失,作為系統中最關鍵一環的數據庫,每一次變更都要尤為謹慎。

該企業的數據庫管理團隊已經建立了基礎的變更管理流程,每一次對數據庫的改動都要求業務開發團隊在系統中提交申請,DBA 審核完成後再由專人正式發佈。但就像多數研發組織一樣,該企業同樣面臨數據庫管理人員嚴重不足的問題,甚至達到了 1:1000 的懸殊比例,而快速發展的業務又帶來了極為頻繁的數據庫變更需求,這讓日常的數據庫管理工作陷入了困境:

  • 業務開發提交變更腳本繁瑣。需要將語句複製粘貼到文檔中,文字描述待變更目標庫,再通過 IM 等協作管理工具發送給審核人,割裂的流程導致溝通成本極高。
  • 人工審核流於形式。隨着變更請求快速增多,人工審核逐漸難以應對,最終只能抓大放小,甚至完全跳過審核階段。
  • 手工發佈效率低下。DBA 需要下載對應腳本再連接目標庫執行,一旦出錯需要反覆溝通修改
  • 變更管理佔用大量時間。由於變更頻繁,DBA 日常花費大量時間處理相關工作,為了不影響變更時效,團隊成員甚至需要時刻隨身攜帶電腦。

這種困境亟待改變。

構建全新變更管理流程

通過引入 Bytebase,該企業構建了全新的變更管理流程,通過與上下游的研發工具打通,從變更發起,審核,再到最終發佈實現全流程自動化,極大提升了人效,在確保變更質量的同時,DBA 節約了大量時間用於更多高價值的工作。

file

利用代碼倉庫管理 SQL 腳本並直接發起變更請求

SQL 腳本作為代碼的一種,同樣要求有序、一致,利用代碼倉庫進行管理無疑是最佳的選擇。利用 Bytebase 的能力,實現了與代碼倉庫的集成,所有 SQL 腳本只要合併入指定分支,即可自動觸發部署工單。對於企業的業務開發團隊而言,在自己最熟悉的 GitLab 工作界面即可完成所有工作,大幅提效的同時也降低了來回複製代碼出錯的概率。

工單觸發 IM 通知

由 GitLab 發送的變更腳本將在 Bytebase Console 生成工單,同時會自動在飛書中生成相應的消息通知,審核人員可以第一時間查看工單,而業務開發團隊也能第一時間獲知工單狀態變化。

SQL 腳本全自動審核

通過 Bytebase 內置的自動審核能力,該團隊定義了不同的審核策略,實現了全自動的工單審核流程,諸如語法錯誤、性能隱患等問題在正式執行前即可被自動檢測工具發現。同時,業務開發團隊也可以實時獲知審核結果,減少了溝通成本。

自動變更發佈

通過審核的變更工單將自動發佈到目標數據庫,並即時反饋執行結果,免去了 DBA 手動執行的繁瑣流程,也杜絕了誤操作的可能。

移動端審批

對於一些小型變更,DBA 甚至無需登錄 Bytebase Console,在 IM 中即可實現審閲與核准,大幅提升了業務團隊的體驗,這種便捷的審核模式極為適合這種業務變化頻繁,審核需求多而迫切的業務場景。

數據庫變更版本化管理

所有的變更都將進行版本化管理,相關的變更腳本、變更前後的數據庫結構變化、工單審核流程等信息,全部都是可追溯的,數據庫全生命週期盡在掌握。

企業的落地實踐

在實踐新一代數據庫變更管理流程的過程中,該企業的 DBA 團隊也總結出了一些落地經驗。

自動、自動、還是自動

該團隊核心理念就是貫徹自動化,通過應用一系列工具,將數據庫的 CI/CD 的絕大多數環節實現了自動化,大幅解放了多個團隊的生產力。當然,數據庫的複雜性也決定了難以實現完全的自動化,對於特定場景的人工介入,仍然是一種必要的補充。

以 DevOps 為理念的自助管理

以 DevOps 的理念為指引,該團隊非常強調讓業務開發參與變更管理工作。這一過程關鍵是尋找到不影響開發團隊工作習慣的模式,最合適的莫過於將相關工作內容植入開發團隊常用工作界面,如 GitLab 與 IM 等工具。

合理分類數據庫

為了有序引導開發團隊參與變更管理工作,包括提交工單以及參與工單的審核流程,需要精準的界定權限。在這種理念下,不能簡單延續傳統集中化管理模式中按照維護等級進行分類的模式,更要按照產品線、項目組等維度進行劃分,從而確保每一個開發者只能參與自身所屬項目的數據庫變更流程。

合理規劃代碼倉庫目錄

由於利用了代碼倉庫進行 SQL 腳本的管理,同樣需要對其目錄結構進行合理規劃。總體上可以延用 monorepo 的理念,將所有腳本集中在一個倉庫中存放。具體的子目錄設計則與 Bytebase 中的項目組劃分進行一一對應,確保同一個項目下的數據庫腳本存放在同一個子目錄下。

協作,而非單純的管控

協作提效是最終目的,而非強制性管控。在實踐中,DBA 對各類策略的制定都會與相關團隊進行充分的討論,可以有效降低新流程落地的阻力。

持續宣貫的必要性

面對上千人的開發團隊,任何流程的落地都不會太簡單,在早期難免有一些同事不習慣或是易於犯錯,通過更新流程説明並進行持續性的宣貫,經過 2-3 周的適應期即可進入正常運轉。

目前,該團隊仍在不斷優化管理流程,並持續探索諸如自助審核、自助優化、查詢脱敏等能力賦能開發團隊,後續我們也將邀請相關負責人來分享,敬請期待。(✪ω✪)


💡 你可以訪問官網:https://www.bytebase.com/,免費註冊雲賬號,立即體驗 Bytebase。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.