什么是DevOps

今天就跟大家聊聊有關什么是DevOps,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

我們提供的服務有:成都做網(wǎng)站、網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、常山ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的常山網(wǎng)站制作公司

什么是DevOps

說起DevOps有多火,相信大家在每天的朋友圈中就能夠感受到。如此同時,另外一個佐證就是新鮮出爐的Gartner  2015 I&O Automation報告中,DevOps正處其技術發(fā)展曲線的在***點(如下圖)。

什么是DevOps

當然,上面的圖也同樣說明DevOps在企業(yè)內部落實還有很多路需要走,需要落實到企業(yè)日常IT系統(tǒng)的開發(fā)、測試和運維,有效提升企業(yè)的IT服務能力。也正是因為如此,現(xiàn)在很多人可能對于DevOps的理念仍然充滿懷疑。但是,不斷出現(xiàn)的成功案例還是讓大家對其充滿期待。為此,由Puppet  Labs領導的年度DevOps發(fā)展報告也希望能夠對此進行更全面分析和調研,其2014年DevOps發(fā)展報告則再次用具體調查數(shù)據(jù)揭示了組織績效、IT服務績效與DevOps實踐之間的關系。其中的核心觀點包括如下:

◆擁有強IT服務績效的企業(yè)通常會雙倍超過其市場及盈利目標。

◆企業(yè)的IT服務績效和DevOps推崇的普遍實踐(如持續(xù)交付等)有非常明顯的正相關。例如,調查發(fā)現(xiàn)強IT服務績效的團隊比較差IT服務績效團隊的部署頻率要快30倍,變更失敗率要低50%。

由上可見,DevOps實踐對于提升企業(yè)IT服務能力是有明顯的正面作用,并且從實踐中也得到廣泛驗證,值得企業(yè)關注和學習。

一、DevOps從哪里來? 

如果希望了解DevOps,就不可避免需要要展開這個詞中的兩個角色:Dev和Ops(注:這里的Dev包括我們常說的開發(fā)和測試人員,Ops則指服務運維人員,更多時候特指生產(chǎn)環(huán)境的服務運維人員)?;仡櫄v史,Dev和Ops這兩個角色從計算機誕生之日就已經(jīng)存在,而且在誕生之初它們本身就是一體的。在最早期,計算機的使用范圍非常有限。其硬件生產(chǎn)、軟件開發(fā)和日常運維很多時候都是來自同樣人員或者團隊。所以,Dev和Ops這兩個角色也就自然融合在一塊。

隨著計算機使用用途的擴展,越來越多的行業(yè)開始使用計算機來提升效率。尤其是個人電腦(PC)的出現(xiàn),讓計算機從傳統(tǒng)的計算領域大大拓展開來。于是,PC時代其就誕生了許多獨立的計算機軟硬件供應商出現(xiàn)。進入這個階段后,計算機軟硬件研發(fā)就會和最終使用者自然分離。當企業(yè)普遍開始使用計算機及相關軟件來提升日常運營效率時,會需要專職的IT系統(tǒng)運維管理人員來保證其正常運行,于是,最早期的專職運維人員(也稱系統(tǒng)管理員)也就應運而生。

在這個階段,系統(tǒng)的研發(fā)人員(Dev)和運維人員(Ops)其實是處在不同的組織中。他們之間的溝通和交互主要靠產(chǎn)品說明書,操作文檔以及付費的Support完成。為保證企業(yè)內IT系統(tǒng)的穩(wěn)定運行,以Ops為中心的運維管理體系(如ITIL)逐步形成。在這個時間段,企業(yè)運維管理體系以服務企業(yè)內部運營為主,并不直接面對企業(yè)最終用戶。實際運維過程則以保證系統(tǒng)穩(wěn)定為核心目標,對于系統(tǒng)自身的迭代速度要求并不高。一個最明顯的例證就是這個時期軟件及系統(tǒng)的交付周期一般都是以年為單位(甚至于Windows則以三年為單位更新版本)。同時,由于這個階段的Dev和Ops完全分離在不同組織中,基本無法形成持續(xù)有效的溝通和交互,也就是無法相互了解。通常Ops團隊對于軟件的設計及實現(xiàn)思路缺乏最基本的了解,而Dev團隊對于Ops在實際運維過程中的挑戰(zhàn)和問題也知之甚少。

隨著互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)的出現(xiàn),人們重要找到了一種更好的軟件及服務交付方式,即在線服務。在這種模式下,用戶無需再承擔軟件及服務的運維工作,而是直接  “開箱即用”。系統(tǒng)的開發(fā)和運維工作再次回到一個組織內部,即在線服務提供商。但是,由于遺留系統(tǒng)(很多在線服務提供商在早期并沒有自研能力,而是采購外部技術來搭建自身服務系統(tǒng))及傳統(tǒng)運維思路的影響,很多在線服務供應商仍然是按照傳統(tǒng)模式組建自身的運維團隊。于是,很多組織內部的運維團隊和研發(fā)團隊雖然是在一個公司,也服務于同一個產(chǎn)品。但是他們在組織架構上仍然是獨立向上匯報。甚至,這種組織架構在很多公司內部還作為一種均衡各方勢力的法寶。由于這些原因,所有原來Dev和Ops相互分離而造成的問題并未由于他們重新回到一個組織內而得到根本改觀。同樣存在內Dev和Ops相互不了解,互不信任,上線流程異常緩慢等很多老問題。于是,人們就會思考一個問題:既然都在一個組織內,而且是服務于同一個產(chǎn)品,為啥不能讓兩者走向融合,變成一個以給最終用戶交付***價值為目標的團隊呢?于是,DevOps思潮開始涌現(xiàn),并從理論研究逐步成為目前非常主流的軟件生產(chǎn)方式。在這其中也誕生了很多非常優(yōu)秀的DevOps踐行者,如Facebook、Netflix等。

回顧發(fā)展歷史,我們可以看到隨著系統(tǒng)交付及使用方式的不斷演變,Dev和Ops兩者也經(jīng)歷了由合到分,又重新走向融合的過程。在其中可以看出,系統(tǒng)的生產(chǎn)方式其實和系統(tǒng)交付及使用方式息息相關。有什么樣的交付及使用方式,就會誕生與之匹配的系統(tǒng)生產(chǎn)方式。而現(xiàn)在,以互聯(lián)網(wǎng)和SaaS為代表的交付及使用方式已經(jīng)成為主流趨勢,與之相對應的軟件生產(chǎn)方式也必然會向全新的DevOps方向發(fā)展。

二、DevOps包括什么? 

盡管DevOps在現(xiàn)在這個階段重新走向融合,但是這個階段的融合已經(jīng)和最早期Dev和Ops來著同一個團隊有本質的差別了。無論從系統(tǒng)的復雜程度,面對的用戶規(guī)模,還是采用軟件工程思路都有天壤之別。具體來說,個人認為現(xiàn)在的DevOps應該包括如下三個層面的內容:

1.從組織文化角度上,DevOps應該成為組織文化上的一個內在要求。首先,企業(yè)關注的產(chǎn)出應該轉向最終交付價值(即交付給最終用戶的產(chǎn)品功能、用戶體驗)以及響應用戶和市場變化的能力。其次,企業(yè)需要從組織架構上解決遺留下來的Dev和Ops隔離的狀態(tài),為他們走向融合提供組織制度上的保障。***,DevOps文化強調跨部門協(xié)作和直接主動溝通,而不是流程導向的流水線模式??偨Y來說,需要在組織內部樹立“you  build it, you run it”的行為準則。

2.從方法論角度上,DevOps包括一系列***化交付價值的***實踐。例如,持續(xù)交付來提高交付的頻率,保證Dev的每一個改進能夠盡快交付給最終用戶,并能夠快速得到真實用戶的反饋,以便及時調整產(chǎn)品方向。持續(xù)構建和自動化測試保證Dev能夠盡快得到反饋,發(fā)現(xiàn)代碼中潛在的問題并及時修復。自動化一切的原則盡可能避免人為失誤并且保證整個流程的高效,可重復。

3.從工具角度上,DevOps指一套適應DevOps組織架構需求,能夠幫助團隊落實DevOps***實踐的工具。這其中包括代碼管理工具、持續(xù)構建工具、代碼部署工具、系統(tǒng)監(jiān)控與運維工具等。在工具選型中,用戶即可以基于開源軟件自己搭建,也可以考慮購買商業(yè)軟件(如FIT2CLOUD)來快速落地。

總結而言,DevOps團隊需要在組織文化層面能夠得到保證和支持,團隊成員能夠接受并踐行DevOps各種***實踐,并配套相應工具幫助落實。只有這樣才能比較完整的落實DevOps實踐,并最終讓團隊和業(yè)務都從中收益,***化交付給最終用戶的價值。而不是流于形式和炒作概念,并無法最終在實踐中見成效。

三、DevOps的抓手在哪里?

如果一個組織希望推進DevOps實踐的落地,從哪里入手可能是很多組織內一線經(jīng)理最為困惑的地方。網(wǎng)絡上關于DevOps的分享涉及的內容非常多。那DevOps的抓手到底在哪里?來自Puppet  Labs 2015 DevOps發(fā)展報告的結論則能夠很好回答這個問題。其報告結論中包括如下觀點:

如果需要了解一個團隊的DevOps狀況,只需要問一個簡單的問題,那就是“團隊部署一次服務有多痛苦”。這個問題的答案會告訴你很多細節(jié)。

同樣,DevOps***的抓手也在于此。提高團隊持續(xù)交付和部署的能力在絕大部分情況下都是落實DevOps實踐***突破口。在落實這個突破口時,團隊需要關注如下幾點:

1.理清并打通團隊從代碼到服務的整個通道最為關鍵。例如,下圖就是一個典型的從代碼到服務的通道。需要提高團隊持續(xù)交付和部署的能力就體現(xiàn)在是否能夠打通這條通道,并讓其盡可能高效的運轉。

什么是DevOps

在打通這個通道過程中,團隊遇到的常見問題有以下幾點:

◆團隊缺少基本的可落實部署規(guī)范(包括Artifact打包規(guī)范和部署流程規(guī)范)。規(guī)范是提高團隊協(xié)作效率的重要一環(huán)。同時,這里的規(guī)范是必須要能夠落實到部署流程并能夠自動化實施。如果團隊在此沒有歷史成功經(jīng)驗,建議直接采用已經(jīng)廣泛使用的現(xiàn)有規(guī)范(如AWS的CodeDeploy規(guī)范)加快落實。

◆團隊缺少統(tǒng)一的制品庫管理。現(xiàn)實環(huán)境中,團隊構建出來的artifacts經(jīng)常直接存在FTP、共享目錄上,組織不規(guī)范而且也未集中管理。因此經(jīng)常出現(xiàn)選擇的版本不對,需要回滾時候沒有老版本,不同環(huán)境版本選擇錯誤等一系列問題。建議團隊建立統(tǒng)一的制品庫(例如開源的Nexsus,商業(yè)軟件Artifactory等)并直接對接構建環(huán)境和部署系統(tǒng)。構建時候自動把構建結果打包上傳到制品庫中,部署時從統(tǒng)一制品庫取部署包進行部署。

◆團隊缺少保證不同環(huán)境一致性的能力。如上圖所示,系統(tǒng)交付流程需要涉及到開發(fā)、測試、驗收和生產(chǎn)環(huán)境(簡稱DTAP),如何保證不同環(huán)境一致性并避免系統(tǒng)因環(huán)境不一致而導致事故是一個重要挑戰(zhàn)。一般來說,使用統(tǒng)一的基礎環(huán)境(如鏡像)加統(tǒng)一的部署流程及工具是保障環(huán)境一致性的關鍵所在。

2.關注團隊部署效率并持續(xù)改進是深入提高團隊交付和部署能力的法寶。在打通從代碼到服務的通道后,團隊整個交付能力會有一個質的提升。但是如果需要深入、持續(xù)地提升團隊交付能力,還需要持續(xù)關注團隊部署效率,找出影響團隊進一步前行的潛在障礙,并有針對性改進。在這個方面,Puppet  Labs 2015 DevOps報告提出了一個定量的分析模型非常有幫助。具體來說,這個定量分析模型由如下幾個關鍵指標組成:

◆產(chǎn)出指標:

○ 部署頻率(Deployment frequency):團隊代碼部署的頻率(包括所有環(huán)境的部署次數(shù)),一般以每天的部署次數(shù)計算。

○ 代碼上線延時(Deployment lead time):代碼從提交到代碼庫到其上線運行的時間間隔。

◆穩(wěn)定性指標:

○ 服務平均恢復時間(Mean time to recover):服務平均恢復時間。

○ 變更失敗率(Change fail rate):變更失敗率。

通過關注上面這些指標的變化趨勢,團隊可以定量衡量整個應用交付的效率和質量,并能夠始終保證對于應用交付的關注。當然,為了更方便統(tǒng)計如上指標,需要記錄團隊所有的部署操作及結果,不過這應該是一個好的部署系統(tǒng)需要支持的基本功能之一。

看完上述內容,你們對什么是DevOps有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享文章:什么是DevOps
文章路徑:http://muchs.cn/article10/ghghdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站服務器托管、ChatGPT搜索引擎優(yōu)化、動態(tài)網(wǎng)站網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營