云原生集成開發(fā)環(huán)境——TitanIDE
通過網(wǎng)頁在任何地方更安全、更高效地編碼2022-05-27
771
作者:樂魚創(chuàng)新 郭云峰
DevOps這個(gè)詞,我們要注意它承載了很多不同的含義。一方面它本身代表了一種運(yùn)動(dòng),世界范圍、行業(yè)范圍內(nèi)去推動(dòng)這種文化和工作方式,另一方面也是代表了強(qiáng)調(diào)打破部門墻,開發(fā)和運(yùn)維通力協(xié)作的文化,以及具體如何協(xié)作、更快交付業(yè)務(wù)價(jià)值的交付方式、協(xié)作方式。
傳統(tǒng)IT技術(shù)團(tuán)隊(duì)中通常都有多個(gè)獨(dú)立的組織如:開發(fā)團(tuán)隊(duì)、測試團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)。開發(fā)團(tuán)隊(duì)負(fù)責(zé)軟件開發(fā)、測試團(tuán)隊(duì)負(fù)責(zé)軟件測試,運(yùn)維團(tuán)隊(duì)部署,負(fù)載平衡和發(fā)布管理。 他們之間的職能有時(shí)重疊、有時(shí)依賴、有時(shí)候會(huì)沖突。
一、如何判斷自己的研發(fā)團(tuán)隊(duì)是否貫徹了“DevOps”?
我們對照下自身,通過四個(gè)小問題來看看自己的團(tuán)隊(duì)是不是已經(jīng)是“DevOps”了。
1、開發(fā)者每次寫完代碼都可以持續(xù)部署生產(chǎn)環(huán)境,不需要?jiǎng)e人協(xié)助;
2、有很多監(jiān)控、運(yùn)維工具可以任我使用,輕松處理線上各種問題和故障;
3、開發(fā)者可以直接為線上用戶的體驗(yàn)負(fù)責(zé),不管是代碼缺陷還是運(yùn)維故障,自己搞的自己背鍋;
4、開發(fā)者的開發(fā)成果可以復(fù)用分享。
以上四個(gè)問題,其實(shí)分別涉及到了Devops最重要的幾個(gè)方面,文化、自動(dòng)化、精益程度、度量能力、服務(wù)分享等。
你的團(tuán)隊(duì)又是什么樣的呢?
二、淺談企業(yè)為何要落地DevOps?
DevOps它不僅僅體現(xiàn)在流程上打通了軟件開發(fā)的整個(gè)生命周期,它還包括以下述所提到的幾個(gè)要素:
一是文化:
DevOps與傳統(tǒng)職能型團(tuán)隊(duì)不同,它的前提是建立一體化的全功能團(tuán)隊(duì),打破開發(fā)(Dev)與技術(shù)運(yùn)營(Ops)隔閡,形成DevOps的協(xié)同合作的文化氛圍;
二是自動(dòng)化:
自動(dòng)化一切可以自動(dòng)化的,通過自動(dòng)化的工具或腳本實(shí)現(xiàn)軟件工程從構(gòu)建到運(yùn)維過程的自動(dòng)化流水線作業(yè);
三是精益:
以精益的方式小步快跑,持續(xù)改善;
四是度量:
建有效的監(jiān)控與度量手段快速獲得反饋,推動(dòng)產(chǎn)品和團(tuán)隊(duì)的持續(xù)改進(jìn),測試驅(qū)動(dòng)開發(fā)、增量式開發(fā)這些實(shí)踐都是為了獲得有效反饋并作用于下一次迭代周期中;
五是分享:
不同職能、不同產(chǎn)品之間經(jīng)驗(yàn)分享能夠促進(jìn)DevOps的文化沉淀,促進(jìn)產(chǎn)品迭代和更新。
三、淺談DevOps的實(shí)踐
獨(dú)立的DevOps團(tuán)隊(duì)
DevOps團(tuán)隊(duì)使用各種工具,例如docker、k8s、Jenkins, Nagios,Grafana,Prometheus或Splunk等,DevOps團(tuán)隊(duì)負(fù)責(zé)開發(fā)團(tuán)隊(duì)中的敏捷實(shí)踐設(shè)置,該團(tuán)隊(duì)將研究出來的新工具堅(jiān)持使用,并提供指導(dǎo)程序和培訓(xùn)以實(shí)施DevOps。其核心工作是是追求測試、集成、部署的自動(dòng)化,減少人員參與、降低溝通成本。
變更控制
在配置控制過程中,如果現(xiàn)有系統(tǒng)和基礎(chǔ)架構(gòu)中需要進(jìn)行任何更改,那么此時(shí)就要考慮更改控制。運(yùn)營團(tuán)隊(duì)需要提供他們的意見,更改的原因,以及可能在更大范圍內(nèi)產(chǎn)生的后果,包括可能受到新更改影響的其他系統(tǒng);
項(xiàng)目管理:
敏捷開發(fā)團(tuán)隊(duì)提供簡單高效的團(tuán)隊(duì)協(xié)作服務(wù),包含多項(xiàng)目管理、需求管理、敏捷迭代、看板協(xié)作、缺陷跟蹤、文檔管理、儀表盤自定制報(bào)表等功能;
代碼檢查:
代碼質(zhì)量管理服務(wù),軟件開發(fā)者可在編碼完成后執(zhí)行多語言的代碼檢查和安全檢查,獲取全面的質(zhì)量報(bào)告,并提供缺陷的改進(jìn)建議和趨勢分析,有效管控代碼質(zhì)量,降低開發(fā)者解決成本;
自動(dòng)化測試:
軟件開發(fā)者的測試平臺,覆蓋測試管理、接口測試、性能測試,融入DevOps敏捷測試?yán)砟?,幫助開發(fā)者高效管理測試活動(dòng),保障產(chǎn)品高質(zhì)量交付。
持續(xù)集成:
持續(xù)集成是一種軟件開發(fā)實(shí)踐,可改善團(tuán)隊(duì)之間的協(xié)作并有助于構(gòu)建高質(zhì)量的軟件。開發(fā)團(tuán)隊(duì)會(huì)定期檢入存儲庫中的代碼更改,持續(xù)集成會(huì)執(zhí)行自動(dòng)構(gòu)建和測試以驗(yàn)證代碼質(zhì)量。持續(xù)集成所采用的實(shí)踐可以在早期階段快速檢測出軟件開發(fā)生命周期的挑戰(zhàn),從而有助于開發(fā)團(tuán)隊(duì)在開發(fā)階段本身解決問題。
持續(xù)交付/部署:
部署過程具有不同的階段,例如開發(fā)→構(gòu)建→驗(yàn)證→構(gòu)建版本控制→部署→后部署等。持續(xù)部署過程是,將已開發(fā)的代碼自動(dòng)部署到生產(chǎn)環(huán)境中。有一些可用的工具,例如Jenkins,Ansible,Chef,等,使DevOps團(tuán)隊(duì)可以建立自動(dòng)化鏈條,以最少的人工干預(yù)就可以在多個(gè)環(huán)境中進(jìn)行部署。減少手動(dòng)部署,并將生產(chǎn)中的故障風(fēng)險(xiǎn)降至最低。
href="/"
持續(xù)監(jiān)控:
持續(xù)監(jiān)控建議使用幾種工具,儀表板和警報(bào)來監(jiān)視所有系統(tǒng)和基礎(chǔ)架構(gòu),包括對影響軟件的不同指標(biāo)的實(shí)時(shí)洞察,例如性能測試,測試次數(shù),成功和失敗率,部署狀態(tài),均可以以圖形,表格和詳細(xì)報(bào)告格式顯示。為了達(dá)到理想的監(jiān)控效果,DevOps團(tuán)隊(duì)可以利用一些工具,例如Prometheus,Grafana。
DevOps核心是快速交付價(jià)值,給與開發(fā)最大自由度,負(fù)責(zé)開發(fā)和運(yùn)維全部過程。在監(jiān)控、故障防控工具,功能開關(guān)的配合下,可以在保障用戶體驗(yàn)和快速交付價(jià)值之間找到合適的平衡點(diǎn)。
四、樂魚創(chuàng)新一體化DevOps平臺解決方案
樂魚創(chuàng)新一體化DevOps平臺,助力構(gòu)建企業(yè)云原生DevOps體系,打造研發(fā)運(yùn)維管理一體化平臺,整個(gè)方案涵蓋了創(chuàng)新管理-產(chǎn)品管理-項(xiàng)目管理-代碼托管-持續(xù)交付-微服務(wù)治理-運(yùn)維監(jiān)控-線上反饋的開發(fā)全生命周期。
一體化DevOps平臺架構(gòu)圖
了解樂魚創(chuàng)新一體化DevOps平臺解決方案更多詳情,請查看官網(wǎng)>