這篇文章主要介紹“采用GitOps的原因有哪些”,在日常操作中,相信很多人在采用GitOps的原因有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”采用GitOps的原因有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、灞橋網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為灞橋等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
Kubernetes允許我們單純地使用聲明性的配置文件來(lái)管理我們的應(yīng)用部署和其他基礎(chǔ)設(shè)施組件(例如,我們現(xiàn)在都是YAML開(kāi)發(fā)者)。這使我們能夠把所有這些文件放到Git倉(cāng)庫(kù)中,然后把它掛到流水線上(Jenkins、GitLab等),流水線會(huì)把這些變化應(yīng)用到集群上,然后就有了GitOps。
為了使工作正常進(jìn)行,我們必須確保改變集群的唯一方法是在Git倉(cāng)庫(kù)上提交。GitOps并不是專(zhuān)門(mén)針對(duì)Kubernetes的,同樣的原理也可以應(yīng)用于任何其他聲明式配置管理的環(huán)境。
可以說(shuō),很多企業(yè)已經(jīng)開(kāi)始采用GitOps了,但現(xiàn)在是業(yè)界開(kāi)始充分認(rèn)識(shí)到其潛力的時(shí)候。
1、存儲(chǔ)環(huán)境變更歷史記錄
只有通過(guò)更新相應(yīng)Git倉(cāng)庫(kù)中的配置,才能改變應(yīng)用環(huán)境。這將創(chuàng)建一個(gè)完整的狀態(tài)變化的歷史記錄,包括誰(shuí)做了更改和為什么更改的記錄。你可以通過(guò)正在使用的Git用戶(hù)界面來(lái)讀取歷史記錄。
2、輕松回滾到之前的狀態(tài)
一旦我們所有的變更都被存儲(chǔ)為Git歷史記錄,就可以很容易地將一個(gè)環(huán)境回滾到之前的任何狀態(tài)。通過(guò)還原一些commit,我們可以回到以前的工作狀態(tài)。
3、保障部署安全
一旦對(duì)集群的所有更改都通過(guò)GitOps repo,用戶(hù)和持續(xù)集成(CI)流程就不需要再訪問(wèn)集群了。這大大降低了攻擊面,尤其是還可以減少對(duì)Kubernetes API的網(wǎng)絡(luò)訪問(wèn)。
部署過(guò)程無(wú)論如何實(shí)現(xiàn),都可以在集群內(nèi)部運(yùn)行,并從Git中拉取配置。其對(duì)API的訪問(wèn)使用基于角色的訪問(wèn)控制(RBAC)進(jìn)行限制。這極大地提高了集群的安全性,防止任何惡意的遠(yuǎn)程更改在API服務(wù)器上。
4、輕量化審批程序
在修改生產(chǎn)環(huán)境時(shí),開(kāi)發(fā)人員總是不受信任。因此在許多公司中都建立了四眼審批流程(four-eyes approval processes),不論是出于什么原因建立的審批流程,GitOps都提供了一個(gè)簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)它們。
具體實(shí)現(xiàn)方式取決于你使用的Git服務(wù)器,但重點(diǎn)是給開(kāi)發(fā)人員在Git repo上創(chuàng)建拉取請(qǐng)求的權(quán)利,同時(shí)給另一組人審查和合并的權(quán)利。大多數(shù)Git服務(wù)器都有一個(gè)很好的UI來(lái)檢查修改和批準(zhǔn)拉取請(qǐng)求——所以這個(gè)解決方案不僅便宜,而且對(duì)用戶(hù)也相當(dāng)友好。
5、模塊化架構(gòu)
GitOps有3個(gè)部分:Git repo、部署流程以及一個(gè)在Git repo中自動(dòng)更新版本的過(guò)程。這三者可以相互獨(dú)立演化或替換。
一邊是一個(gè)組件在Git repo寫(xiě)入,另一邊是一個(gè)組件在讀取。Git repo的結(jié)構(gòu)成為這些組件之間的橋梁。由于這是一個(gè)相當(dāng)松散的耦合,兩邊可以用不同的方式甚至不同的技術(shù)棧來(lái)實(shí)現(xiàn)。
6、獨(dú)立于工具的架構(gòu)
第5點(diǎn)中提到的模塊化可以看出GitOps架構(gòu)是一個(gè)可以靈活組裝最佳工具的架構(gòu)。當(dāng)然,任何流行的Git服務(wù)器都可以完成Git部分的工作,F(xiàn)luxCD或ArgoCD可以負(fù)責(zé)將repo同步到集群。JenkinsX是一個(gè)處理這個(gè)過(guò)程所有部分的工具,包括創(chuàng)建Git repos,并在構(gòu)建新的Docker鏡像時(shí)用新版本更新它們。
7、復(fù)用現(xiàn)有知識(shí)
將 Git 置于部署流程的核心,可以充分利用大多數(shù)開(kāi)發(fā)人員和運(yùn)維人員已經(jīng)掌握的 Git 知識(shí)。不需要新的工具來(lái)瀏覽部署歷史或?qū)嵤徟鞒?。所有的流程都是用大家都熟悉的工具?lái)完成的。
8、比較不同的環(huán)境
當(dāng)你有一個(gè)從開(kāi)發(fā)到用戶(hù)接受度測(cè)試(UAT)再到生產(chǎn)的環(huán)境鏈時(shí),跟蹤這些環(huán)境之間的差異是一件很麻煩的事情。多虧了存儲(chǔ)在Git repos中的聲明式配置,它使得處理環(huán)境間差異就像比較一組YAML文件一樣簡(jiǎn)單。
我們有非常棒的工具來(lái)做這件事,所以這將不再是一個(gè)問(wèn)題。更重要的是,從頭開(kāi)始創(chuàng)建一個(gè)新的環(huán)境,就像復(fù)制和粘貼這些文件到一個(gè)新的repo中一樣簡(jiǎn)單。
9、開(kāi)箱即用的備份
由于你的環(huán)境狀態(tài)存儲(chǔ)在Git中,如果Kubernetes上的etcd發(fā)生了什么事情,你也永遠(yuǎn)不會(huì)丟失數(shù)據(jù)。因?yàn)樗悄慵籂顟B(tài)的自然備份。
10、像應(yīng)用程序代碼一樣測(cè)試你的更改
你可以用測(cè)試應(yīng)用程序代碼的方式來(lái)測(cè)試環(huán)境中可能出現(xiàn)的破壞性變化。將更改放在一個(gè)分支上,然后在其上運(yùn)行 CI 流水線。你的 CI 工具將能夠運(yùn)行測(cè)試,并根據(jù)測(cè)試結(jié)果將 Git 中的 pull-request 狀態(tài)設(shè)置為綠色或紅色。一旦所有的東西都經(jīng)過(guò)測(cè)試和審查,你就可以合并到master。
這聽(tīng)起來(lái)非常簡(jiǎn)單,但自動(dòng)化測(cè)試是基礎(chǔ)設(shè)施管理中經(jīng)常被忽視的任務(wù)。雖然GitOps并沒(méi)有讓它變得更容易,但至少它為你提供了與你在其他地方使用的相同的熟悉工作流程。
11、高可用部署基礎(chǔ)設(shè)施
部署基礎(chǔ)設(shè)施保持一致很重要。Git repo服務(wù)器通常已經(jīng)以復(fù)制、高可用的方式進(jìn)行了設(shè)置。源代碼是所有開(kāi)發(fā)人員在大多數(shù)時(shí)間都需要訪問(wèn)的東西,所以使用Git作為部署的源碼并不會(huì)給Git本身增加額外的負(fù)擔(dān)。
到此,關(guān)于“采用GitOps的原因有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)站題目:采用GitOps的原因有哪些
文章分享:http://jinyejixie.com/article2/ggesoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、手機(jī)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)