- 資訊首頁(yè) > 互聯(lián)網(wǎng) >
- Devops 落地的核心和13條經(jīng)驗總結
前面的文章中介紹了,Devops的概念以及企業(yè)應用Devops能夠帶來(lái)的好處,請參考文章:
DevOps究竟能給企業(yè)解決什么問(wèn)題
接下來(lái)我來(lái)介紹一下Devops要想實(shí)際落地,那么我們需要解決的問(wèn)題有哪些。我將從產(chǎn)品需求、開(kāi)發(fā)、測試、運維的角度來(lái)分享Devops落地的實(shí)際經(jīng)驗。
核心
部署流水線(xiàn)核心軟件開(kāi)發(fā)過(guò)程是一個(gè)將客戶(hù)或用戶(hù)的想法變成一個(gè)真實(shí)可用的特性的過(guò)程。部署流水線(xiàn)是這個(gè)過(guò)程中的一部分,是指軟件從版本控制庫到用戶(hù)手中這一過(guò)程自動(dòng)化的展現形式。這一過(guò)程包括編譯構建、代碼檢查、上傳制品庫、測試和部署等,并且這些階段的執行都應該是自動(dòng)執行的。自動(dòng)化帶來(lái)的好處是這個(gè)流程變得更快、可重復且更加可靠。部署流水線(xiàn)的核心是使用jenkins作為各個(gè)節點(diǎn)的串聯(lián),然后在各個(gè)流程節點(diǎn)中使用一系列的工具來(lái)實(shí)現流水線(xiàn)的自動(dòng)化!如下圖所示:
13條經(jīng)驗 產(chǎn)品需求 1.產(chǎn)品定義、里程碑規劃和用戶(hù)需求分析
可以使用影響地圖、用戶(hù)故事、看板等方法。
開(kāi)發(fā) 2.代碼預檢查
代碼預檢查就是在代碼提交到代碼庫之前對代碼進(jìn)行檢查,包括靜態(tài)檢查、Code Review、測試、編譯等多種方式。
3.技術(shù)債務(wù)管理
主要的技術(shù)債務(wù)包括:
沒(méi)有文檔或者跟版本不同步;
過(guò)時(shí)的架構設計;
需要重構的代碼;
遺留代碼缺乏文檔和單元測試,無(wú)人能改,無(wú)人敢改。
注意:未實(shí)現的功能需求不屬于技術(shù)債務(wù)。
技術(shù)債務(wù)管理的核心是:在技術(shù)債務(wù)產(chǎn)生之前能避免則避免,不能避免的可以借助工具提前發(fā)現,對于發(fā)現的技術(shù)債務(wù)盡可能早的償還掉。
4.第三方組件管理
使用第三方組件,可以不必“重復造輪子”,節約了時(shí)間和精力,加快了軟件開(kāi)發(fā)的過(guò)程。第三方組件已經(jīng)是軟件開(kāi)發(fā)不可或缺的組成部分。然而,使用第三方組件并非易事。主要有以下幾方面的問(wèn)題:
組件的版本會(huì )過(guò)時(shí);
組件需要額外的維護成本。
通常對第三方組件管理需要關(guān)注以下兩個(gè)方面:
依賴(lài)掃描:能夠掃描出依賴(lài)存在的問(wèn)題,包括是否存在安全漏洞以及版本是否過(guò)時(shí)。
依賴(lài)管理:制定黑白名單,控制策略和影響范圍。黑名單指不允許使用的組件。白名單是可以使用的組件??刂撇呗灾傅氖钱敯l(fā)現組件有問(wèn)題時(shí)采取的措施,如阻斷,警告。影響范圍指的該控制策略的應用范圍,如當前系統,所有系統等。當檢測到依賴(lài)組件中包含了黑名單中的組件,按照設置好的控制策略對該組件進(jìn)行處理,比如編譯失敗,郵件通知負責人等。
5.非功能需求的管理
非功能需求的實(shí)現是有成本的,而且它們之間可能彼此排斥,因此我們必須權衡利弊。比如,對安全性要求高的系統往往易用性就不會(huì )太好。在實(shí)際開(kāi)發(fā)中,考慮到系統的交付時(shí)間,系統的總成本,往往會(huì )根據非功能需求的實(shí)現難度,做出權衡。
6.API管理
API 管理就是有效管理企業(yè)內部各服務(wù)提供的API 接口和對外暴露的共有接口,管理 API 接口的創(chuàng )建、測試、發(fā)布等生命周期,以及 API 接口的版本、并提供 API 開(kāi)發(fā)者門(mén)戶(hù)供開(kāi)發(fā)人員查看。服務(wù)的 API 接口在構建時(shí)自動(dòng)地注冊到 API 管理平臺的 API Gateway 中,其他調用方可以通過(guò) API Gateway 訪(fǎng)問(wèn)這些接口提供的服務(wù),并基于 API Gateway 進(jìn)行 API 的自動(dòng)化測試,保證 API 的正確性和健壯性。
7.配置管理
配置管理是指一個(gè)過(guò)程,通過(guò)該過(guò)程,所有與項目相關(guān)的產(chǎn)物,以及它們之間的關(guān)系都被唯一定義、修改、存儲和檢索。例如,可以基于 Git 的方式,在應用程序部署時(shí)提供特定環(huán)境的配置文件,實(shí)現了代碼與配置的隔離,保證了代碼的唯一性。
8.持續集成
這里持續的意思并不是“始終,一直”,它的意思是“隨時(shí)”。比較恰當的頻率是:每當有人提交代碼,同時(shí)集成一次。通常分為即時(shí)集成和定時(shí)集成。
即時(shí)集成:是指團隊成員每次提交之后就進(jìn)行集成,并執行編譯、構建、自動(dòng)化測試等任務(wù)來(lái)檢查個(gè)人提交的代碼是否可用。這種集成方式要求執行的時(shí)間要短,要快速反饋結果,因此只能執行一些簡(jiǎn)單的測試。
定時(shí)集成:類(lèi)似每日構建(Daily Build),是指每天定時(shí)(一般為晚上)自動(dòng)執行一次集成過(guò)程,第二天將執行結果發(fā)送給關(guān)系人。這種集成方式注重的是檢測的全面性和徹底性,對執行時(shí)長(cháng)要求不高。
測試 9.測試數據管理
測試數據管理指對測試數據的自動(dòng)創(chuàng )建以及銷(xiāo)毀。主要包括驗證業(yè)務(wù)基礎功能的少量測試數據和驗證核心業(yè)務(wù)性能所需要的大規模測試數據。
10.自動(dòng)化測試
指對產(chǎn)品的UI測試、服務(wù)的接口測試以及代碼的單元測試通過(guò)測試代碼來(lái)實(shí)現。
運維
11.實(shí)時(shí)監控
將所有主機加入監控,時(shí)刻掌握他們的狀態(tài),一旦有指標不正常,觸發(fā)器觸發(fā)告警,可通過(guò)微信、釘釘、郵件方式進(jìn)行告警.
12 日志收集
當集群環(huán)境壯大之后,某一個(gè)模塊可能會(huì )部署多個(gè)節點(diǎn),再登錄到機器上查看某一模塊的日志就變得很困難,通??梢酝ㄟ^(guò)elk來(lái)建立集中式日志收集系統,將所有節點(diǎn)上的日志統一收集,管理,訪(fǎng)問(wèn)。
13 環(huán)境管理
環(huán)境管理就是準備部署環(huán)境的過(guò)程以及部署之后對環(huán)境的管控。既能保證準備環(huán)境的快速和一致性,又使得部署后的環(huán)境能夠有效利用。一般環(huán)境分為,集成環(huán)境、測試環(huán)境類(lèi)生產(chǎn)環(huán)境和生產(chǎn)環(huán)境。如果想要高效管理各種環(huán)境,必須通過(guò)腳本實(shí)現環(huán)境的創(chuàng )建與部署工作,即一鍵部署。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站