新聞中心
最近,我進(jìn)行了一次網(wǎng)上搜索,以尋找DevOps的概述,盡管有大量的DevOps工具和實踐,但我無法找到一個綜合的概述。因此,我開始了對DevOps生態(tài)系統(tǒng)和最佳實踐的梳理,以創(chuàng)建一個整體視圖,方便后續(xù)研究實踐。

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)昭陽免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
CI(持續(xù)集成)
這個圖表的CI部分包括以下組件:
- 代碼倉庫:在圖表中,我使用了GitLab作為源代碼控制和代碼倉庫,因為它在倉庫管理方面具有用戶友好的界面。它允許以分層方式創(chuàng)建組和子組,有效地控制團(tuán)隊結(jié)構(gòu)。
- 構(gòu)建工具:圖表中也使用了GitLab作為構(gòu)建工具。它提供了廣泛的功能,用于編寫代碼管道,并支持模板化。
- 自動化測試:雖然有許多端到端測試框架可用,但目前在社區(qū)中最流行的是Cypress。對于自動化安全測試,您還可以使用GitLab,它提供了全面的工具集,供您使用。
- 構(gòu)件庫:為了存儲Docker鏡像或Helm圖表,我集成了Harbor作為構(gòu)建庫。盡管有基于云的選項,但在空隙環(huán)境中使用諸如Harbor之類的工具是必需的。
我將CD存儲庫與源代碼存儲庫分開,因為需要多個環(huán)境來為多個客戶提供服務(wù)。然而,如果您的每個產(chǎn)品沒有多個環(huán)境,您可以將它們合并到一個存儲庫中。
- 基礎(chǔ)設(shè)施即代碼:為了創(chuàng)建基礎(chǔ)設(shè)施(VM)和平臺(Kubernetes),使用像Terraform這樣的工具是必不可少的,它可以輕松創(chuàng)建。雖然還有其他選擇,比如Ansible或Puppet,但這些工具不支持聲明性格式。我強(qiáng)烈建議使用Terraform和GitLab來存儲您的IAC狀態(tài)。
- 部署服務(wù):我將GitLab作為部署服務(wù),用于存儲每個應(yīng)用程序的環(huán)境配置文件。您可以在GitLab內(nèi)創(chuàng)建一個Git存儲庫,存儲您的配置文件,并定義一個管道,以將Helm圖表部署到Kubernetes集群。雖然還有其他選擇,比如Spinnaker,但我發(fā)現(xiàn)它相當(dāng)復(fù)雜,具有許多可能對您的用例不必要的功能。
CM(持續(xù)監(jiān)控)
CM(持續(xù)監(jiān)控)部分包括以下組件和關(guān)系:
度量服務(wù)器:在圖表中,我使用Prometheus作為度量服務(wù)器,用于收集和存儲來自應(yīng)用程序、平臺和基礎(chǔ)設(shè)施的度量。
日志服務(wù)器:我使用了社區(qū)中廣受歡迎的ELK堆棧(Elasticsearch + Logstash + Kibana)來收集和存儲日志。它提供了廣泛的功能,可以根據(jù)收集的日志增強(qiáng)分析儀表板。
跟蹤服務(wù)器:對于跟蹤服務(wù)器,我選擇了Jaeger。雖然還有另一個選項Zipkin,但我個人推薦Jaeger,因為它是一個較新的項目,擁有更大的社區(qū)。如果您想了解如何從應(yīng)用程序發(fā)送跟蹤到Jaeger,可以查看我關(guān)于這個主題的另一篇文章:
基礎(chǔ)設(shè)施監(jiān)控:有許多可用于基礎(chǔ)設(shè)施監(jiān)控的工具,每個工具都有其自己的優(yōu)缺點。然而,我選擇了Zabbix,因為它是一個具有全面監(jiān)控能力的開源項目。它是一個基于代理的工具,雖然還有一些無代理的替代方案。一些公司選擇使用SolarWinds作為替代方案。
自動縮放器:Keda項目專門設(shè)計用于基于Kubernetes中不同指標(biāo)的Pod自動縮放。它支持各種類型的應(yīng)用程序,并從中收集指標(biāo)以便于自動縮放。此外,還有其他工具可用于根據(jù)Prometheus收集的指標(biāo)自動縮放基礎(chǔ)設(shè)施和平臺資源(如VM數(shù)量或Kubernetes工作節(jié)點)。
警報管理器:警報管理器工具應(yīng)能夠從不同系統(tǒng)收集和去重警報。Alertmanager是Prometheus開源團(tuán)隊開發(fā)的一個工具,可以接收來自各種監(jiān)控工具(如Prometheus、Zabbix和Elasticsearch)的警報。它能夠根據(jù)預(yù)定義的規(guī)則和配置對這些警報進(jìn)行分組、去重和過濾。此外,它還支持各種通知機(jī)制,可以將警報發(fā)送給支持團(tuán)隊,包括電子郵件、PagerDuty、Slack和其他自定義集成。
結(jié)論
總體而言,如下所示:
這些系統(tǒng)共同工作,以確保生產(chǎn)環(huán)境的可靠性和彈性。CI + CD + CM的組合促進(jìn)了不同團(tuán)隊之間更好的協(xié)作。如果您正在遵循敏捷方法,開發(fā)團(tuán)隊可以處理CI部分,運(yùn)維團(tuán)隊可以處理CD部分,監(jiān)控團(tuán)隊可以處理CM部分。這些團(tuán)隊合作,以確保服務(wù)的可靠性。
文章名稱:DevOps優(yōu)秀實踐和工具在本地環(huán)境中的概述
本文路徑:http://www.5511xx.com/article/cocoeis.html


咨詢
建站咨詢
