在當今競爭激烈的環境中,你須要在不影響質量的狀況下快速交付軟件特性。可是對於大多數組織來講,能跟上當前最新的版本管理實踐技術,並能和傳統的操做過程和諧共存是很困難的。git
如今,隨着開發人員採起端到端「你構建,你擁有」的方法來實現軟件的開發過程,他們須要使用他們最熟悉的工具和方法來快速適應變化。數組
在最近的倫敦Continuous Lifecycle會議上,Alexis Richardson發表了題爲「GitOps: Git Push All the Things」的主題演講,他討論了行業挑戰,包涵當前CI/CD發展趨勢和如何將這些工具與進程的操做與監控融合起來。此外,Alexis還闡明瞭如何運用GitOps更好的實踐,開發人員可使用其最熟悉的工具來控制開發與操做管道。安全
GitOps能夠歸納爲如下原則:工具
1.全部能夠被描述的內容都必須存儲在git中spa
經過使用Git做爲開發事實的來源,從業人員能夠觀察集羣並將其與所需的狀態進行比較。策略、代碼、配置項,甚至監控事件和版本控制均可以實現。將全部內容都置於版本控制系統後,全部咱們提交的變化都被聚合起來,這樣那些咱們提交的沒有被應用的代碼也有可能被再應用起來。.net
2.不能直接使用Kubectl命令行
廣泛來講,使用命令行工具集「kubectl」來直接部署到集羣並非個好辦法。許多人士使用他們的CI工具驅動部署,然而這樣作可能會給產品開發帶來衆所周知的安全漏洞。版本控制
3.使用符合操做模式的Kubernetes控制器blog
使用遵循操做模式的Kubernetes控制器,你的集羣老是經過已覈對好的Git的配置文件與「真實之源」保持同步。因爲你的集羣的指望狀態保存在Git中,所以你能夠觀察到它與運行的集羣的差別。進程
Alexis進一步闡述了第三點,他描述瞭如何經過比較Git中所需的狀態和運行中的集羣狀態,來觀察差別,並在兩種狀態不一樣步的時候提醒您的團隊。經過在集羣中安裝Kubernetes操做符,不只從認證的角度來看部署更安全,並且還容許有效的控制和反饋環。你的團隊可使用這些數據來迭代和改進產品特性以及集羣基礎設施的更新。
若是你描述了全部的東西,並將其保持在版本控制中,那麼能夠被描述的東西既能夠被驗證也能夠被自動化。這爲您提供了在版本控制中保持系統的正確描述並使用它來自動化整個系統的機制。」 - Alexis Richardson
觀看完整演講打開以下地址: https://youtu.be/uWzgmmCzdF4