iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
DevOps

PM 的 30 日 DevOps 養成計畫 系列 第 30

資料庫也要 DevOps:用自動化 Migration 避免災難

  • 分享至 

  • xImage
  •  

今天是這個主題的最後一天了,分享的議題就是有關「資料庫」的 Devops!

除了程式碼之外,資料庫在產品上線跟運行的過程也是極為重要的一環,資料庫中存放的資料包含業務資料(像電商裡的交易紀錄、物流資訊等)、使用者資料(使用者名稱、密碼、瀏覽記錄等)、系統運作需要的資料(權限設定黨、日誌等)以及輔助性資料(行銷活動成效等)。

有這麼多重要的資料儲存在資料庫當中,所以當資料庫有異動時,如果避免出錯,或是在資料損壞時,如何最快的縮短處理時間,將系統回復到正常狀態,就是要將 Devops 的精神導入資料庫。

資料庫的 Migration 就是一個實際的例子。

以前要更動資料庫裡的東西時,都需要 DBA Team 手動寫 SQL 執行,但使用 Migration 工具後,就可以將資料庫的變更變得有系統,可以做到有版本控制、與 CI/CD Pipeline 流程結合,而且可以 rollback。

Migration 會需要在什麼時候發生呢?
只要是動到「資料結構」或是「環境搬遷」,就都需要 Migration,如果只是修復 bug 等小調整才不需要。

工程師在進行 Migration 的時候,會為每一個變更撰寫獨立的腳本,並編上版本號,這些腳本也都會與程式碼一起交付到 Git 進行版控,當 CI/CD Pipeline 在部署的時候,會自動檢查資料庫的版本,確保每個環境的 Schema (資料庫裡的結構)都在相同的狀態。

30 天的最後

從第一天到第 30 天,這是我第一次進行鐵人賽的挑戰,初期還想著到底什麼時候會結束,怎麼時間過得那麼慢,但也在這樣的過程中,重新梳理了閱讀資料的內容,發現輸出的過程真的跟純閱讀有太大的差別了。

在輸出時,除了要重新看文章的架構,還要將原本不懂的詞彙做更多的查詢(原本純閱讀時可能就會單純跳過),而在輸出之後,每一篇的內容還會在不知不覺中串起來,這個過程實在是滿有趣的,我也在第一次的挑戰中,完成了這個主題,希望下次再進行其他的挑戰。


上一篇
Serverless 與事件驅動架構
系列文
PM 的 30 日 DevOps 養成計畫 30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言