成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發(fā)成功GitOps模型的三個(gè)步驟

譯文 精選
開發(fā) 前端 云原生
在這篇文章中,我們將探索GitOps 如何為基于容器化和微服務(wù)開發(fā)云原生解決方案的組織提供最佳服務(wù)。

譯者 | 崔瑩峰

審校 | 孫淑娟 梁策

在這篇文章中,我們將探索 GitOps 如何為基于容器化和微服務(wù)開發(fā)云原生解決方案的組織提供最佳服務(wù)。

什么是 GitOps,為什么它對組織很重要?

GitOps 是一種自動化和管理基礎(chǔ)設(shè)施和應(yīng)用程序的模型,它通過許多團(tuán)隊(duì)已經(jīng)使用過的相同 DevOps 最佳實(shí)踐來完成,例如版本控制、代碼審查和 CI/CD 管道等等。在實(shí)施 DevOps 過程中,我們雖然在軟件開發(fā)生命周期找到了自動化的方法,但在基礎(chǔ)設(shè)施安裝和部署方面,仍然需要手工處理。使用 GitOps,團(tuán)隊(duì)可以自動化基礎(chǔ)設(shè)施配置過程。這得益于我們能夠?qū)⒒A(chǔ)架構(gòu)作為代碼 (IaC)編寫、在 Git 倉庫中對代碼進(jìn)行版本控制以及基于云交付進(jìn)行持續(xù)部署。

因?yàn)樗哂刑岣呱a(chǎn)力和軟件質(zhì)量的巨大潛力,很多公司一直在采用 GitOps,而它也最適合開發(fā)基于容器化和微服務(wù)的云原生解決方案的組織。

GitOps 如何改善開發(fā)人員和運(yùn)維人員的日常工作?

GitOps 帶來的基礎(chǔ)設(shè)施自動化的增長創(chuàng)造了為應(yīng)用程序開發(fā)人員開發(fā)更具有“自助服務(wù)”方法的機(jī)會。熟練的開發(fā)人員可以使用基礎(chǔ)設(shè)施即代碼來聲明他們的云資源需求,而不是協(xié)商云資源。這成為對基礎(chǔ)設(shè)施的期望狀態(tài),集中存儲起來并可以用作代碼中聲明的需求與運(yùn)行環(huán)境的實(shí)際狀態(tài)之間的不可變參考點(diǎn)。

自助服務(wù)方法解放了開發(fā)人員。它讓開發(fā)人員更有效率,使他們能夠?qū)W⒂趧?chuàng)新,并讓他們的應(yīng)用程序更快地推向市場。此外,它避免了開發(fā)人員和運(yùn)營人員需要協(xié)商資源時(shí)可能引入的泥潭。

另一方面,經(jīng)常存在一種誤解,即運(yùn)營自動化程度的提高意味著運(yùn)營團(tuán)隊(duì)需要更少的人員,并且運(yùn)營在管道中的角色正被邊緣化。我們的觀點(diǎn)恰恰相反;我們認(rèn)為 GitOps 和??內(nèi)部開發(fā)平臺??等現(xiàn)代方法為 Ops(平臺團(tuán)隊(duì))提供了振奮人心的機(jī)會,以提高他們的技能并為組織創(chuàng)造更多價(jià)值。在一個(gè)采用 GitOps 的高水平的云原生軟件開發(fā)組織中,您可能會發(fā)現(xiàn)正是因?yàn)榇嬖谝粋€(gè)不斷壯大的平臺團(tuán)隊(duì)才讓一切工作正常。

平臺團(tuán)隊(duì)使用的實(shí)際技術(shù)可能會有所不同。在某些情況下,這可能只是一個(gè)封閉的 PaaS 解決方案。在其他情況下,它可以是創(chuàng)建適合組織需求的定制平臺各種工具的組合。這使他們能夠?qū)A(chǔ)設(shè)施資源和架構(gòu)施加更大的影響和控制,并創(chuàng)建“護(hù)欄”,以執(zhí)行簡單、高效和標(biāo)準(zhǔn)化的云原生應(yīng)用程序部署方法。

GitOps 有助于改善開發(fā)人員和運(yùn)營團(tuán)隊(duì)之間的協(xié)作,提高他們的生產(chǎn)力,并增加部署頻率。它使開發(fā)人員無需了解底層基礎(chǔ)架構(gòu)即可貢獻(xiàn)功能,從而增強(qiáng)了開發(fā)人員的體驗(yàn)。同時(shí),它通過代碼審查和批準(zhǔn)來控制操作。通過這些改進(jìn),團(tuán)隊(duì)可以更快、更安全地發(fā)布,以保持其在市場中的地位。

實(shí)施 GitOps 的三個(gè)必做步驟是什么?

如果想讓公司實(shí)施的 GitOps 模型發(fā)揮最大優(yōu)勢,例如整體工作流程的標(biāo)準(zhǔn)化和一致性,您需要考慮以下幾點(diǎn)。

一切皆為代碼

  • 聲明你的 IaC。
  • 使用 Git 倉庫進(jìn)行 IaC 開發(fā)。
  • 將屬于應(yīng)用程序代碼生命周期一部分的實(shí)踐也復(fù)制到基礎(chǔ)架構(gòu)代碼中。
  • 使用 Docker 和 Kubernetes 等技術(shù),將您的環(huán)境、版本、配置和依賴項(xiàng)定義為代碼,并確保它們在運(yùn)行時(shí)得到強(qiáng)制執(zhí)行。
  • 逐漸將 GitOps 模型擴(kuò)展到可以定義為代碼的任何事物,例如安全性、策略、合規(guī)性以及基礎(chǔ)架構(gòu)之外的所有操作。

圖1: 一切皆為代碼

聲明式代碼提高了可讀性和可維護(hù)性。CloudFormation、Terraform、Pulumi 和 Crossplane 是一些可能的聲明性語言,您可以使用這些語言來定義您的基礎(chǔ)架構(gòu)配置。

當(dāng)一切都定義為代碼時(shí),您可以使用 Git 倉庫進(jìn)行開發(fā)并探索諸如版本控制、協(xié)作和審計(jì)等內(nèi)容。

審核流程

一個(gè)正確的 Git 流程包括:

  • 主分支,通常代表一個(gè)環(huán)境,如 dev、test、stage、prod 和在該環(huán)境上運(yùn)行的狀態(tài)。
  • 當(dāng)開發(fā)人員需要對代碼進(jìn)行更改時(shí),他們會從主分支創(chuàng)建一個(gè)新分支。
  • 當(dāng)更改準(zhǔn)備就緒時(shí),開發(fā)人員會創(chuàng)建一個(gè)拉取請求,該請求應(yīng)該由運(yùn)營團(tuán)隊(duì)審核以驗(yàn)證和批準(zhǔn)。安全和合規(guī)專家也可以參與此階段,正確地驗(yàn)證環(huán)境的狀態(tài)。
  • 一旦獲得批準(zhǔn),代碼就可以合并到主分支并交付到測試或生產(chǎn)環(huán)境。

使用此工作流程,您可以跟蹤誰進(jìn)行了哪些更改并確保環(huán)境具有正確的代碼版本。

圖 2:GitOps 工作流程

如果您已經(jīng)通過功能分支使用了??Git 流程系統(tǒng)??的拉取請求特性,那么您無需在 GitOps 的新流程上投入太多。此外,由于您的基礎(chǔ)設(shè)施(和其他操作)也被定義為代碼,您將能夠?qū)嵤┫嗤拇a審查實(shí)踐。

獨(dú)立的構(gòu)建和部署流程(CI 和 CD)

  • CI 流程負(fù)責(zé)構(gòu)建應(yīng)用程序代碼并將其打包到容器鏡像中。
  • CD 流程執(zhí)行使最終狀態(tài)與倉庫代碼中描述的系統(tǒng)所需狀態(tài)保持一致的自動化操作。

最終,GitOps 將 CI 和 CD 視為兩個(gè)獨(dú)立的過程——CI 是一個(gè)開發(fā)過程,而 CD 是一個(gè)操作過程。

通常用于分離這些進(jìn)程的 GitOps 方法是引入另一個(gè) Git 倉庫作為中介者。此倉庫包含有關(guān)環(huán)境的信息,并且每次提交都會觸發(fā)部署過程。另外會有一個(gè)組件,稱為操作器,位于管道和編排工具之間。該操作器會不斷將環(huán)境倉庫中的目標(biāo)狀態(tài)與部署的基礎(chǔ)設(shè)施中的實(shí)際狀態(tài)進(jìn)行比較,如果操作器檢測到任何更改,它就會更改基礎(chǔ)設(shè)施以匹配環(huán)境倉庫。此外,它還監(jiān)控鏡像倉庫以識別要部署的鏡像的新版本。這樣,CI 過程永遠(yuǎn)不會觸及底層基礎(chǔ)設(shè)施(例如,Kubernetes 集群)。

圖 3:基于拉取的 GitOps 部署

將構(gòu)建管道與部署管道解耦是針對錯(cuò)誤配置的強(qiáng)大保護(hù),這樣做有助于實(shí)現(xiàn)更高的安全性和合規(guī)性。

結(jié)論

GitOps 作為一種運(yùn)營模型,使用了許多團(tuán)隊(duì)都知道的 DevOps 實(shí)踐。使用 GitOps,您可以自動化基礎(chǔ)設(shè)施配置過程,并將 Git 用作基礎(chǔ)設(shè)施配置變更的單一事實(shí)來源。因此,要創(chuàng)建成功的 GitOps 模型,您需要對環(huán)境進(jìn)行聲明性定義。

如果您的團(tuán)隊(duì)中也有拉取請求工作流程,那就最好不過了。為了能夠在基礎(chǔ)架構(gòu)代碼上進(jìn)行協(xié)作并創(chuàng)建操作更改,您應(yīng)該提交一個(gè)拉取請求。隨后,高級 DevOps 工程師和安全專家會審查該拉取請求以驗(yàn)證更改并在一切正常的情況下將它們合并到主分支中。

對于完整的 GitOps 實(shí)施,您需要 CI/CD 自動化設(shè)置參數(shù)并配置底層環(huán)境以及部署定義的代碼。

最后,公司內(nèi)部應(yīng)該有一種支持性的組織文化。根據(jù)我們的經(jīng)驗(yàn),GitOps 方法很自然地形成了一種結(jié)構(gòu),在這種結(jié)構(gòu)中,開發(fā)人員將會受益于自助服務(wù)基礎(chǔ)設(shè)施資源自動化的增長,而平臺工程師則可以在組織中扮演更有影響力的角色。這將是一種雙贏的方法,使團(tuán)隊(duì)中的每個(gè)人都更團(tuán)結(jié)一致,感到充實(shí)。

譯者介紹

崔瑩峰,51CTO社區(qū)編輯,一名70后程序員,擁有10多年工作經(jīng)驗(yàn),長期從事 Java 開發(fā),架構(gòu)設(shè)計(jì),容器化等相關(guān)工作,精通Java,熟練使用Maven、Jenkins等Devops相關(guān)工具鏈,擅長容器化方案規(guī)劃、設(shè)計(jì)和落地。

原文標(biāo)題:??3 Steps to Developing a Successful GitOps Model??,作者:Marija Naumovska


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-05-29 10:35:51

數(shù)字化轉(zhuǎn)型企業(yè)

2022-08-12 13:18:12

IT企業(yè)運(yùn)營

2020-03-02 10:33:39

云遷移公共云云計(jì)算

2023-12-21 16:25:23

WeChatSnapchatShopee

2014-04-09 14:02:21

混合云應(yīng)用混合云

2023-04-12 07:35:33

2022-05-12 12:55:28

容器Kubernetes運(yùn)行容器

2021-08-19 11:22:22

深度學(xué)習(xí)編程人工智能

2010-11-03 11:04:50

求職

2022-06-20 09:57:53

數(shù)字化金融服務(wù)

2019-09-15 14:26:46

2023-08-04 16:22:09

大數(shù)據(jù)

2013-12-13 13:23:29

馬云阿里巴巴

2019-01-29 07:14:41

2021-01-15 10:51:32

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2022-10-12 14:33:15

數(shù)字化轉(zhuǎn)型網(wǎng)絡(luò)安全數(shù)據(jù)中心

2023-03-16 11:04:00

CIO技術(shù)領(lǐng)導(dǎo)者

2021-04-26 10:35:49

物聯(lián)網(wǎng)智慧城市IoT

2022-03-07 14:24:05

供應(yīng)鏈分析大數(shù)據(jù)數(shù)據(jù)分析

2010-08-02 23:40:42

Linux NFS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品国产欧美 | 国产精品久久国产精品99 | 成人av一区| 欧美xxxx色视频在线观看免费 | 黄色网址在线免费播放 | 日韩视频在线播放 | 天天天天操 | 日韩欧美中文在线 | 神马影院一区二区三区 | 国产精品毛片无码 | 成人精品一区二区 | 国产精品色一区二区三区 | 亚洲精品久久久久久国产精华液 | 四虎首页 | 高清一区二区 | 91在线成人 | 国产乱码精品一区二区三区中文 | 中文字幕在线视频免费观看 | 成人免费黄色片 | 全免费a级毛片免费看视频免费下 | 天堂综合 | 亚洲精品一二区 | 国产1区2区3区 | 日韩免费av| 中文字幕不卡视频在线观看 | 性一交一乱一透一a级 | 日韩一区二区三区在线视频 | 国产真实精品久久二三区 | 久久久综合色 | 免费成人高清在线视频 | 精品亚洲一区二区 | 成人国产精品久久 | 国产欧美一区二区三区在线看 | 日韩欧美一区二区三区免费看 | 日韩精品一区二区三区中文在线 | 中文字幕免费在线 | 欧美男人天堂 | 91精品国产综合久久福利软件 | 日韩中文字幕网 | 免费av播放 | 天天拍天天射 |