如果說問運維的同學接下來有啥工作規(guī)劃, 可能大多數(shù)人都說學習一門編程語言拐纱, 實現(xiàn)自動化或者是運維平臺铜异、CMDB類的。 基于這種情況我想說自動化肯定是我們的追求秸架,但是平臺化就不一定(中小型公司)揍庄。公司滿打滿算那么兩個運維,并且大家開發(fā)水平不一樣东抹, 追求平臺化思想沒有錯蚂子, 但是就怕最后追求了個寂寞。 平臺化最后追尋的結果是啥呢缭黔? 在我看來肯定是規(guī)范化食茎、標準化。 那不開發(fā)平臺有沒有辦法去實現(xiàn)呢? 答案肯定是有的馏谨,我推薦gitops
别渔。
運維的日常基本圍繞部署、監(jiān)控哎媚、日志展開的喇伯, 我們可以使用git做為所有基礎設施的來源, 使所有的配置代碼化拨与,借助相應的CI工具來達到我們的目標稻据。 這樣既有變更歷史,也可以有審批流程买喧,可以說是皆大歡喜捻悯。
為什么說要gitops
在當前的企業(yè)中,git可以說是最受歡迎的版本控制工具岗喉, 并且我們在維護集群使用的資源文件大多數(shù)也存儲在git中秋度。 本質上來講, Gitops也是基礎設施及代碼的演進钱床,利用Git
作為來源, 創(chuàng)建荚斯、更新和刪除集群架構中的資源。
那么利用gitops可以給我們帶來哪些好處呢查牌?
- git作為通用工具事期,可以使團隊成員輕松的參與到Gitops中
- git作為版本控制工具可以讓團隊成員輕松的跟蹤所有修改, 可以輕松的查看到歷史記錄以及何人修改纸颜,何人引入
- 當修改不符合預期時兽泣, 團隊可以輕松的恢復到之前的狀態(tài)筐付。
gitops的實現(xiàn)原理
Gitops做為特殊的編排系統(tǒng)沪停,可以做為kubernetes、aliyun的編排工具苍糠, 要實現(xiàn)完整的流程涮较, 我們需要借助于Jenkins
稠鼻、gitlab ci
這些流水線工具。
工作流程如下
- 運維同學推送變更到GIT倉庫的Dev分支狂票;
- 觸發(fā)CI工具進行代碼檢測候齿;
- 檢測通過后,提交Merge Request將Dev分支的代碼合并到Master分支闺属;
- 觸發(fā)WebHooks執(zhí)行變更慌盯。
使用場景
- 管理Jenkins job
- 管理Aliyun或者AWS的基礎設施
- 管理kubernetes中的相關資源對象, 如創(chuàng)建namespace掂器, 維護secret亚皂,維護自研的服務等。
- 也可以用來管理相關中間件服務的部署與配置国瓮, 例如隊列孕讳,數(shù)據(jù)庫匠楚,日志等。