DevOps時代提供了我們很多新的趨勢和不同的流行事物可以嘗試。其中最受歡迎之一的是GitOps,這個新的術語由Weaveworks發起,在最新的聖地亞哥KubeCon大會上引起了熱烈的迴響。過去一兩年,GitOps曾被描述為一種策略、一種範例、一套作法、一個工作流程,甚至被描述為一門科學。GitOps也被稱為適用於開發人員針對Kubernetes、Serverless或CI/CD Pipeline的管理等等。所以GitOps到底是什麼?上述所有的說法都正確嗎?就讓我們花一點時間來了解GitOps的演變方式,以及GitOps如何協助開發人員,和它在DevOps生命週期中的適用範圍。
GitOps是什麼?它從何啟源?
GitOps這個術語是被創造出來的,又或是它已經成功的植入我們對於整合DevOps工具鏈的印象,GitOps由Weaveworks發起,開發人員可以使用熟悉的Git工具,便捷地將應用系統和其對應的設定,持續部署到Kubernetes等雲端環境。提高業務的敏捷度,快速回應用戶的需求,從而增加企業市場的競爭力。
Weaveworks將其對GitOps的定義歸納為:
GitOps的演進:不僅適用於Kubernetes部署
隨著採用DevOps進行開發,以適應當今的快速交付系統的頻率,我們都已經熟悉了shift left的模式,並且大多數人都在CI / CD流程的早期階段增加了自動化工具。隨著品質和安全性的測試工作被轉移到開發人員的手中,部署的工作很自然的也會由GitOps來接手。無論有沒有Kubernetes環境,開發人員現在都可以輕鬆使用Git,來管理基礎架構的組態設定及進行應用系統部署。
The GitOps Pipeline: GitOps是怎麼運作的?
Everett Toews形容,GitOps pipeline是一種通用的技術,且環境並不僅限定於Kubernetes之中才能實行。開發人員使用submit a pull request,review和merge等與開發相同的Git工作流程。在GitOps場景中,合併提交(merge)後,將執行自動操作。他解釋:「透過Pull或是Push等事件,應用系統將會自動從Git,取得或協調所需要的資源到運行環境。」
參考來源: Everett Toews blog:
GitOps的好處
GitOps成為趨勢的原因在於,它為系統開發組織提供了前所未有的功能,並且組織中使用的分散式系統和微服務也需要它。
開發人員和營運團隊獲得的好處是:
Git On Board:GitOps將繼續蓬勃發展
GitOps是一種相對較新的工作流程,並且在這個行業中有些領先的解決方案已經開始支援。例如:GitHub Actions,GitLab CI或Jenkins X就已經支援GitOps。隨著GitOps做法和工具的不斷發展,我們將看到越來越多的解決方案將GitOps與CI / CD管道融合在一起,以實現系統部署或是Serverless的功能。
我們的建議:
如果您尚未開始考慮,請先讓開發人員測試一些GitOps工具,來檢視最適合您的環境、團隊和流程的工具。將Git導入到你們的開發流程,這會是推薦的第一步。
參考來源: https://resources.whitesourcesoftware.com/blog-whitesource/gitops