
DevOps 的意思就是 Development & Operation 開發與運營的無縫銜接。
聽起來頗抽象。DevOps 這名詞第一次出現約為 2009 年。它是包含著技術開發一路下來發展出來的工具群,和它們所解決的問題。包括:
- Integration Hell 代碼整合地獄:例如未有 git / svn 之前,同一項目的多位工程師的代碼,到整合的時候,會構成嚴重的整合難題;整合也花上很長時間。
- Pending Code:累積大量沒有實際上線運行的代碼。沒有上線,就沒有在生產環境上驗證。
- Uptime 上線維護成本極高:以前的標準是 99.9%。現在一般都是六式碼 (6 sigma) 99.99966%。要保證有此水準的在線服務率,要有非常好的回復和後備計劃,甚至自動化。
- 設施管理或部署成本極高
- 服務器監察成本極高
- 系統和產品診斷極難
而在 DevOps 裡,這些都被一些工具群所解決了。例如參考 AWS 和坊間的一些服務:
|
Integration Hell |
CI / CD |
|
Uptime維護 |
Multi-AZ |
|
服務器監察成本極高 |
CloudWatch |
|
系統和產品診斷極難 |
Crashlytics |
CI / CD 是 DevOps 群裡的其中一個重要概念。全寫是 Continuous Integration & Continous Delivery & Deployment 持續性整合與持續性部署。
|
Continuous Integration |
1. 漸進式加入代碼 |
|
Continuous Delivery |
CI → 一鍵部署到生產環境 |
|
Continuous Deployment |
CI → 自動部署到生產環境 |