溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

GitOps與ChatOps的實踐案例分析

發(fā)布時間:2021-11-15 17:15:14 來源:億速云 閱讀:154 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“GitOps與ChatOps的實踐案例分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“GitOps與ChatOps的實踐案例分析”吧!

前言

說到 GitOps 和 ChatOps ,那就不得不談到 DevOps 。 DevOps 作為一種文化,旨在促進開發(fā)、測試和運維人員之間的溝通與協(xié)作。而促進合作的方式,往往是使用一系列工具,完成這三個角色的相互協(xié)作。這帶來的好處也是顯而易見的:更快的交付速度和更低的人力成本。獲益于 DevOps 和公有云,一個近百人的研發(fā)團隊,可以只配備一到兩個專職運維人員,降低的成本不言而喻。既然 DevOps 是一種文化,那么在不同的團隊則會有不同的實踐,而無論實踐如何,其最終目的都是一樣的:最大化的實現(xiàn)自動化,釋放更多的人力資源,創(chuàng)建更大價值。

而 GitOps 和 ChatOps ,則是 DevOps 的兩種實踐。這兩種實踐分別通過使用 版本控制軟件 Git實時聊天軟件來達到提升交付速度和研發(fā)效率的目的。

GitOps

GitOps 是一種實現(xiàn)持續(xù)交付的模型,它的核心思想是將應(yīng)用系統(tǒng)的聲明性基礎(chǔ)架構(gòu)和應(yīng)用程序存放在 Git 的版本控制庫中。

將 Git 作為交付流水線的核心,每個開發(fā)人員都可以提交拉取請求(Pull Request)并使用 Git 來加速和簡化 Kubernetes 的應(yīng)用程序部署和運維任務(wù)。通過使用像 Git 這樣的簡單熟悉工具,開發(fā)人員可以更高效地將注意力集中在創(chuàng)建新功能而不是運維相關(guān)任務(wù)上。

通過應(yīng)用 GitOps ,應(yīng)用系統(tǒng)的基礎(chǔ)架構(gòu)和應(yīng)用程序代碼可以快速查找來源——基礎(chǔ)架構(gòu)和應(yīng)用程序代碼都存放在 gitlab 、或者 github 等版本控制系統(tǒng)上。這使開發(fā)團隊可以提高開發(fā)和部署速度并提高應(yīng)用系統(tǒng)可靠性。

GitOps與ChatOps的實踐案例分析

將 GitOps 應(yīng)用在持續(xù)交付流水線上,有諸多優(yōu)勢和特點:

  • 安全的云原生 CI/CD 管道模型

  • 更快的平均部署時間和平均恢復(fù)時間

  • 穩(wěn)定且可重現(xiàn)的回滾(例如,根據(jù)Git恢復(fù)/回滾/ fork)

  • 與監(jiān)控和可視化工具相結(jié)合,對已經(jīng)部署的應(yīng)用進行全方位的監(jiān)控

在我看來 GitOps 的最大優(yōu)勢就是通過完善的 git 分支管理來達到管理所有 CI/CD 管道流水線的目的,不同的環(huán)境可以對應(yīng)不同分支,在該環(huán)境出現(xiàn)問題時候,可以直接查找對應(yīng)分支代碼,達到快速排查問題的目的。而對于 Git 的熟悉,更是省去學(xué)習(xí)使用一般 DevOps 工具所需的學(xué)習(xí)成本和配置時間,開發(fā)人員可以無任何培訓(xùn)直接上手使用,進一步降低了時間與人力成本。

ChatOps

ChatOps 以聊天室(聊天群),即實時聊天軟件為中心,通過一系列的機器人去對接后臺的各種服務(wù),開發(fā)&測試&運維人員只需要在聊天窗口中與機器人對話,即可與后臺服務(wù)進行交互,整個工作的展開就像是使喚一個智能助手那樣簡單自然。

GitOps與ChatOps的實踐案例分析

ChatOps 帶來了很多好處:

  • 公開透明。所有的工作消息都在同一個聊天平臺中沉淀并公開給所有相關(guān)成員,消除溝通壁壘,工作歷史有跡可循,團隊合作更加順暢。

  • 上下文共享。減少因工作臺切換等對消息的截斷,保證消息的完整性,讓工作承接有序,各角色,各工具都成為完成工作流中的一環(huán),打造真正流暢的工作體驗。

  • 移動友好。只需要在前臺與預(yù)設(shè)好的機器人對話即可完成與后臺工具、系統(tǒng)的交互,在移動環(huán)境下無需再與眾多復(fù)雜的工具直接對接,大大提升移動辦公的可行性。

  • DevOps 文化打造。用與機器人對話這種簡單的方式降低 DevOps 的接受門檻,讓這種自動化辦公的理念更容易的擴展到團隊的每一個角落。

對于 ChatOps 的理解最早要源于在 GitHub 上參與開源項目的一些經(jīng)歷,在向 Kubernetes 相關(guān)項目提交 PR 時,會有一個名叫 k8s-ci-robot 的小機器人來自動為該 RP 打上標(biāo)簽,并且根據(jù)你提交 PR 時的 commit 信息來為你分配 Reviewers,如果沒有填的話,則會自動為你分配 Reviewers 等功能。同時可以在 commit 中輸入命令,還可以進行其他的操作,詳見:命令列表。而其實這個機器人的后端就是名為 Prow 的由 Google 發(fā)起的適應(yīng)云原生 CI/CD 開源項目,有興趣的話推薦閱讀:Prow 快速入門向?qū)А?/p>

而一篇名為:《灣區(qū)日報是如何運作的?》 文章更是讓我堅定信心開始開發(fā)自己 ChatOps 系統(tǒng)。該文章介紹作者是怎么運營一個名叫灣區(qū)日報的個人博客,這個博客通過11個渠道(網(wǎng)站,iOS app,Android app、微博,微信,Twitter,Chrome 瀏覽器推送、Facebook、郵件訂閱、RSS、Telegram)推薦給讀者,而這個11個渠道的發(fā)布都是通過 slack 和作者開發(fā)的小機器人完成。在我還在為使用腳本可以在多渠道發(fā)布個人技術(shù)博客而沾沾自喜的時候,人家早在多年前就開始使用 ChatOps 模式向多渠道使用多格式自動推送文章了。這也堅定了我開發(fā)我們自己的 ChatOps 系統(tǒng)的決心。

GitOps & ChatOps 的實踐

使用 Drone 實現(xiàn) GitOps

DevOps 文化早已在我司落地,這也是為什么我們有將近百人的研發(fā)團隊,卻只有兩個專職運維的原因。CI/CD 方面我們之前使用的是 jenkins , jenkins 是一個十分強大的工具,但是隨著公司的發(fā)展,項目也越來越多,粗略統(tǒng)計了一下我們在 jenkins 中有幾百個 Job ,雖然所有項目都使用 Jenkinsfile 的方式將 pipeline 持久化到了 gitlab 中,但是所有的 Job 配置,包括參數(shù)化構(gòu)建配置,SCM 配置等都是保存在 jenkins 上,一旦有失,幾百個 Job ...哭都沒有地方哭去(別問我是怎么知道的)。

經(jīng)過調(diào)研我們選擇了 drone CI 進行 GitOps ,通過自己開發(fā)不同功能的插件,完善了我們的整個 CI/CD 流水線。而插件的開發(fā)也并不是從頭開始,而是直接 fork 現(xiàn)有的插件進行定制化的二次開發(fā),有興趣的可以到我的 GitHub   和 DockerHub 上查看。

將項目配置進行了分離,配置使用單獨的 git 倉庫維護,同時整合了鏡像安全掃描,釘釘通知等功能。

GitOps與ChatOps的實踐案例分析

由于 drone CI 的配置文件 .drone.yml 需要統(tǒng)一規(guī)范,所以我們在自己的 DevOps 平臺開發(fā)了 Drone 配置頁面,幫助開發(fā)自主配置。我們提供了 Java 、 Node 、 Python 三種配置模板,并且由于 DevOps 平臺已與 GitLab 集成,可以直接將生成的 .drone.yml 文件插入到相應(yīng) git 項目中。

GitOps與ChatOps的實踐案例分析

同時也提供了釘釘構(gòu)建通知,在構(gòu)建成功后會發(fā)送到相應(yīng)的開發(fā)群組中,如果需希望自動發(fā)布的話,也可點擊通知中的連接自行發(fā)布。

GitOps與ChatOps的實踐案例分析

自研平臺配合釘釘 Outgoing 功能實現(xiàn) ChatOps

前面的構(gòu)建通知機器人使用的是釘釘?shù)淖远x機器人,將構(gòu)建信息推送到各個項目群中。而釘釘機器人的 Outgoing 功能,則可用來實現(xiàn) ChatOps 的功能(注意:釘釘?shù)?Outgoing 功能目前還處于灰度測試階段,想要使用的需要聯(lián)系官方管理員開啟該功能)。

由于我司專職運維人員只有兩位,管理著整個團隊全部的基礎(chǔ)設(shè)施。但是隨著開發(fā)團隊的擴張,運維人員每天要處理大量的咨詢類工作,而這類工作有著重復(fù)性強和技術(shù)性弱的特點,對于運維人員的技術(shù)水平毫無提升,那么這類工作交給機器人豈不是更好。得益于我們 DevOps 平臺完善的 API ,小助手機器人的開發(fā)并不困難。

小助手機器人的誕生,極大的提高了咨詢類工作的效率,同時也釋放了運維人員的工作時間,運維人員可以將更多精力投注到更有技術(shù)含量的事情上。

GitOps與ChatOps的實踐案例分析

小助手機器人還有運維版本,功能包括:批量操作虛擬機、重啟服務(wù)、DNS 解析、Kubernetes 信息檢測&操作等功能,由于還是測試版本,這里就不做詳細介紹了。

感謝各位的閱讀,以上就是“GitOps與ChatOps的實踐案例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對GitOps與ChatOps的實踐案例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI