<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么大廠都用DevOps呢?我來告訴你

          共 4789字,需瀏覽 10分鐘

           ·

          2020-12-05 12:24


          目前很多大廠如阿里、騰訊、百度、頭條、滴滴、美團(tuán)等公司內(nèi)部都在做DevOps,那么 DevOps是什么 ? 為什么大廠都對其趨之若鶩 DevOps到底應(yīng)該怎么做 ?剛好我也負(fù)責(zé)我們公司的DevOps,今天就來講講吧!

          前言

          提到DevOps這個(gè)詞,我相信很多人一定不會陌生。作為一個(gè)熱門的概念,DevOps近年來頻頻出現(xiàn)在各大技術(shù)社區(qū)和媒體的文章中,備受行業(yè)大咖的追捧,也吸引了很多吃瓜群眾的圍觀。

          那么什么是DevOps呢?

          有人說它是一種方法,也有人說它是一種工具,還有人說它是一種思想。更有甚者,說它是一種哲學(xué)。


          DevOPs是一種方法論。

          DevOps=Developers+Operators,即開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)一體化,盡可能的為公司創(chuàng)造更多價(jià)值。

          現(xiàn)在流行的做法是將兩個(gè)職能部門的人融合為一個(gè)職能部門,實(shí)現(xiàn)開發(fā)運(yùn)維一體化,而早期的時(shí)候是兩波人分別承擔(dān)不同的職能,中期的時(shí)候是要求兩波人密切配合、快速迭代,這中間的變化取決于開發(fā)模式的轉(zhuǎn)變。



          瀑布開發(fā)模型

          早期的時(shí)候是瀑布開發(fā)模型。因?yàn)榛ヂ?lián)網(wǎng)上涌入的網(wǎng)民還不多,大家的關(guān)注點(diǎn)是能用、能解決問題即可,所以早期在需求評審階段產(chǎn)品經(jīng)理給到的是完整、清晰、固定的需求,研發(fā)人員只需要根據(jù)需求在約定的時(shí)間點(diǎn)進(jìn)行交差即可


          這種開發(fā)模式存在的問題是需求不能快速得到驗(yàn)證,很有可能團(tuán)隊(duì)花費(fèi)半年的時(shí)間開發(fā)出來的東西早已經(jīng)不適合市場了,也還有種可能是在開發(fā)階段研發(fā)需求理解不到位,等到后期驗(yàn)證時(shí)發(fā)現(xiàn)有問題再去做調(diào)整耽誤整體工期。

          敏捷開發(fā)模型

          中期的時(shí)候是敏捷開發(fā)模型。因?yàn)榛ヂ?lián)網(wǎng)上涌入的網(wǎng)民開始增多,大家的關(guān)注點(diǎn)開始變成好用、好玩,而此時(shí)一些有遠(yuǎn)見的人開始注意到互聯(lián)網(wǎng)紅利,投身于互聯(lián)網(wǎng),此時(shí)的開發(fā)模式演變成了敏捷開發(fā)模型。


          敏捷開發(fā)模型面對的是頻繁的需求變化,要求快速開發(fā)。比較流行的實(shí)際案例則是Scrum、XP極限編程。在新迭代(一般2-6周)開始前,產(chǎn)品經(jīng)理將需求拆分成具體的開發(fā)任務(wù),研發(fā)人員進(jìn)行任務(wù)認(rèn)領(lǐng),每日會進(jìn)行任務(wù)的review,直到開發(fā)完成,發(fā)布新的可用版本。

          DevOps

          現(xiàn)在最流行的是DevOps。因?yàn)榛ヂ?lián)網(wǎng)上涌入的網(wǎng)民在海量的增加,互聯(lián)網(wǎng)企業(yè)的競爭也開始變得激烈,同一塊蛋糕很多人來搶來分(電商領(lǐng)域的淘寶、京東、網(wǎng)易嚴(yán)選、拼多多、小鵝拼拼等),快速迭代產(chǎn)品,快速占領(lǐng)市場,快速占據(jù)用戶心智成為了各互聯(lián)網(wǎng)公司的目標(biāo),此時(shí)的開發(fā)模型變成了DevOps,需要持續(xù)開發(fā)、持續(xù)集成、持續(xù)測試、持續(xù)部署、持續(xù)監(jiān)控,每一次代碼的改動都觸發(fā)一次校驗(yàn),每天每時(shí)每刻都可進(jìn)行新版本的上線。


          DevOps是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)開發(fā)、技術(shù)運(yùn)營質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。


          這個(gè)定位稍微有點(diǎn)抽象,但是并不難理解。反正它不是某一個(gè)特定軟件、工具或平臺的名字。

          從目標(biāo)來看,DevOps就是讓開發(fā)人員和運(yùn)維人員更好地溝通合作,通過自動化流程來使得軟件整體過程更加快捷和可靠。



          破墻工具

          很多人可能覺得,所謂DevOps,不就是Dev+Ops嘛,把兩個(gè)團(tuán)隊(duì)合并,或者將運(yùn)維劃歸開發(fā),不就完事了嘛,簡單粗暴。

          注意,這個(gè)觀點(diǎn)是不對的。這也是DevOps這些年一直難以落地的主要原因。

          想要將DevOps真正落地,首先第一點(diǎn),是思維轉(zhuǎn)變,也就是“洗腦”。不僅是運(yùn)維的要洗,開發(fā)的也要洗。員工要洗,領(lǐng)導(dǎo)更要洗。


          DevOps并不僅僅是組織架構(gòu)變革,更是企業(yè)文化和思想觀念的變革。如果不能改變觀念,即使將員工放在一起,也不會產(chǎn)生火花。


          除了洗腦之外,就是根據(jù)DevOps思想重新梳理全流程的規(guī)范和標(biāo)準(zhǔn)


          在DevOps的流程下,運(yùn)維人員會在項(xiàng)目開發(fā)期間就介入到開發(fā)過程中,了解開發(fā)人員使用的系統(tǒng)架構(gòu)和技術(shù)路線,從而制定適當(dāng)?shù)倪\(yùn)維方案。而開發(fā)人員也會在運(yùn)維的初期參與到系統(tǒng)部署中,并提供系統(tǒng)部署的優(yōu)化建議。


          DevOps的實(shí)施,促進(jìn)開發(fā)和運(yùn)維人員的溝通,增進(jìn)彼此的理(gan)解(qing)。


          在思維和流程改變的同時(shí),想要充分落地DevOps,當(dāng)然離不開軟件和平臺的支持。


          目前支持DevOps的軟件實(shí)在是太多了。限于篇幅,就不一一介紹了。話說回來,現(xiàn)在DevOps之所以被吹得天花亂墜,也有這些軟件和平臺的功勞,可以趁機(jī)賣錢啊。


          DevOps生態(tài)圈中令人眼花繚亂的工具

          上述這些關(guān)鍵要素里面,技術(shù)(工具和平臺)是最容易實(shí)現(xiàn)的,流程次之,思維轉(zhuǎn)變反而最困難。

          換言之,DevOps考驗(yàn)的不僅是一家企業(yè)的技術(shù),更是管理水平和企業(yè)文化。

          對比前面所說的瀑布式開發(fā)和敏捷開發(fā),我們可以明顯看出,DevOps貫穿了軟件全生命周期,而不僅限于開發(fā)階段。


          下面這張圖,更明顯地說明了DevOps所處的位置,還有它的價(jià)值:



          DevOps生命周期

          在不了解DevOps生命周期的情況下,對DevOps的理解也會片面化?,F(xiàn)在讓我們看看DevOps生命周期,并探討它們?nèi)绾闻c軟件開發(fā)階段相關(guān)聯(lián)。

          持續(xù)開發(fā)

          這是DevOps生命周期中軟件不斷開發(fā)的階段。與瀑布模型不同的是,軟件可交付成果被分解為短開發(fā)周期的多個(gè)任務(wù)節(jié)點(diǎn),在很短的時(shí)間內(nèi)開發(fā)并交付。這個(gè)階段包括編碼和構(gòu)建階段,并使用GitSVN等工具來維護(hù)不同版本的代碼,以及Ant、Maven、Gradle等工具來構(gòu)建/打包代碼到可執(zhí)行文件中,這些文件可以轉(zhuǎn)發(fā)給自動化測試系統(tǒng)進(jìn)行測試。?

          持續(xù)測試

          在這個(gè)階段,開發(fā)的軟件將被持續(xù)地測試bug。對于持續(xù)測試,使用自動化測試工具,如Selenium、TestNG、JUnit等。這些工具允許質(zhì)量管理系統(tǒng)完全并行地測試多個(gè)代碼庫,以確保功能中沒有缺陷。在這個(gè)階段,使用Docker容器實(shí)時(shí)模擬“測試環(huán)境”也是首選。一旦代碼測試通過,它就會不斷地與現(xiàn)有代碼集成。

          持續(xù)集成

          這是支持新功能的代碼與現(xiàn)有代碼集成的階段。由于軟件在不斷地開發(fā),更新后的代碼需要不斷地集成,并順利地與系統(tǒng)集成,以反映對最終用戶的需求更改。更改后的代碼,還應(yīng)該確保運(yùn)行時(shí)環(huán)境中沒有錯(cuò)誤,允許我們測試更改并檢查它如何與其他更改發(fā)生反應(yīng)。

          Jenkins是一個(gè)非常流行的用于持續(xù)集成的工具。使用Jenkins,可以從git存儲庫提取最新的代碼修訂,并生成一個(gè)構(gòu)建,最終可以部署到測試或生產(chǎn)服務(wù)器??梢詫⑵湓O(shè)置為在git存儲庫中發(fā)生更改時(shí)自動觸發(fā)新構(gòu)建,也可以在單擊按鈕時(shí)手動觸發(fā)。

          持續(xù)部署

          它是將代碼部署到生產(chǎn)環(huán)境的階段。在這里,我們確保在所有服務(wù)器上正確部署代碼。如果添加了任何功能或引入了新功能,那么應(yīng)該準(zhǔn)備好迎接更多的網(wǎng)站流量。因此,系統(tǒng)運(yùn)維人員還有責(zé)任擴(kuò)展服務(wù)器以容納更多用戶。由于新代碼是連續(xù)部署的,因此配置管理工具可以快速,頻繁地執(zhí)行任務(wù)。

          Puppet,Chef,SaltStack和Ansible是這個(gè)階段使用的一些流行工具。容器化工具在部署階段也發(fā)揮著重要作用。Docker和Vagrant是流行的工具,有助于在開發(fā),測試,登臺和生產(chǎn)環(huán)境中實(shí)現(xiàn)一致性。除此之外,它們還有助于輕松擴(kuò)展和縮小實(shí)例。

          持續(xù)監(jiān)控

          這是DevOps生命周期中非常關(guān)鍵的階段,旨在通過監(jiān)控軟件的性能來提高軟件的質(zhì)量。這種做法涉及運(yùn)營團(tuán)隊(duì)的參與,他們將監(jiān)視用戶活動中的錯(cuò)誤/系統(tǒng)的任何不正當(dāng)行為。這也可以通過使用專用監(jiān)控工具來實(shí)現(xiàn),該工具將持續(xù)監(jiān)控應(yīng)用程序性能并突出問題。

          使用的一些流行工具是Splunk,ELK Stack,Nagios,NewRelic,Sensu,Promethus。這些工具可幫助密切監(jiān)視應(yīng)用程序和服務(wù)器,以主動檢查系統(tǒng)的運(yùn)行狀況。它們還可以提高生產(chǎn)率并提高系統(tǒng)的可靠性,從而降低IT支持成本。發(fā)現(xiàn)的任何重大問題都可以向開發(fā)團(tuán)隊(duì)報(bào)告,以便可以在持續(xù)開發(fā)階段進(jìn)行修復(fù)。

          DevOps發(fā)展現(xiàn)狀

          目前,DevOps處于高速增長的階段。尤其是在大企業(yè)中,DevOps受到了廣泛的歡迎。
          根據(jù)最近調(diào)查發(fā)現(xiàn),74%的受訪者已經(jīng)接受了DevOps,而前一年這一比例為66%。

          越大的企業(yè),越喜歡DevOps。包括國內(nèi)的騰訊,阿里,百度,美團(tuán),國外的Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Walmart、Sony等公司,都在采用DevOps。

          如今,DevOps幾乎已經(jīng)成為了軟件工程的代名詞。
          DevOps迅猛發(fā)展,相關(guān)專業(yè)人才的薪資待遇也跟著水漲船高。
          根據(jù)調(diào)研,DevOps工程師在美國的平均年薪為130000美金,在中國平均年薪也在40萬-50萬區(qū)間,能力強(qiáng)者年薪百萬也是比比皆是。


          數(shù)據(jù)來自招聘網(wǎng)站


          薪資的猛漲,又帶動了IT工程師們學(xué)習(xí)和認(rèn)證的熱潮。


          DevOps的認(rèn)證目前最受歡迎的就是EXIN DevOps Master和EXIN DevOps Professional。這些認(rèn)證的培訓(xùn)費(fèi)用不低,但是仍然吸引了很多人踴躍報(bào)名。


          EXIN DevOps認(rèn)證體系


          DevOps與微服務(wù),容器化的關(guān)系

          這幾年云計(jì)算技術(shù)突飛猛進(jìn),大家應(yīng)該對虛擬化、容器、微服務(wù)這些概念并不陌生。當(dāng)我們提到這些概念的時(shí)候,也會偶爾提及DevOps。

          它們之間有什么聯(lián)系呢?

          其實(shí)很簡單。

          大家可以設(shè)想一下,如果要對一項(xiàng)工作進(jìn)行精細(xì)化分工,我們是對一個(gè)大鐵疙瘩進(jìn)行加工方便?還是拆成一塊一塊進(jìn)行加工更加方便?

          顯然是拆分之后會更加方便。

          所謂“微服務(wù)”,就是將原來黑盒化的一個(gè)整體產(chǎn)品進(jìn)行拆分(解耦),從一個(gè)提供多種服務(wù)的整體,拆成各自提供不同服務(wù)的多個(gè)個(gè)體。如下圖所示:

          單體式架構(gòu)(Monolithic)→ 微服務(wù)架構(gòu)(Microservices)


          微服務(wù)架構(gòu)下,不同的工程師可以對各自負(fù)責(zé)的模塊進(jìn)行處理,例如開發(fā)、測試、部署、迭代。

          而虛擬化,其實(shí)就是一種敏捷的云計(jì)算服務(wù)。它從硬件上,將一個(gè)系統(tǒng)“劃分”為多個(gè)系統(tǒng),系統(tǒng)之間相互隔離,為微服務(wù)提供便利。

          容器就更徹底了,不是劃分為不同的操作系統(tǒng),而是在操作系統(tǒng)上劃分為不同的“運(yùn)行環(huán)境”(Container),占用資源更少,部署速度更快。


          明白了吧?虛擬化和容器,其實(shí)為DevOps提供了很好的前提條件。開發(fā)環(huán)境和部署環(huán)境都可以更好地隔離了,減小了相互之間的影響。

          這也是DevOps為什么09年時(shí)不火,現(xiàn)在越來越火的一個(gè)主要原因之一。

          DevOps總結(jié)

          DevOps的目的是更快速,更可靠地創(chuàng)建質(zhì)量更好的軟件,同時(shí)開發(fā),運(yùn)維團(tuán)隊(duì)之間進(jìn)行更多的溝通和協(xié)作。它是一個(gè)自動化過程,允許快速,安全和高質(zhì)量的軟件開發(fā)和發(fā)布,同時(shí)保持所有利益相關(guān)者在一個(gè)循環(huán)中。這就是DevOps獲得越來越多的大型互聯(lián)網(wǎng)公司青睞的真正原因。


          時(shí)代發(fā)展到現(xiàn)在,客戶的需求瞬息萬變,市場的風(fēng)向也難以預(yù)測。作為企業(yè),想要生存下去,只有讓自己變得更快。作為員工,必須讓自己眼光更加長遠(yuǎn),內(nèi)心更加包容。


          推薦文章

          原創(chuàng)電子書

          歷時(shí)整整一年總結(jié)的?Java 面試 + Java 后端技術(shù)學(xué)習(xí)指南,這是本人這幾年及校招的總結(jié),各種高頻面試題已經(jīng)全部進(jìn)行總結(jié),按照章節(jié)復(fù)習(xí)即可,已經(jīng)拿到了大廠offer。

          原創(chuàng)思維導(dǎo)圖

          掃碼或者微信搜?程序員的技術(shù)圈子?回復(fù)?面試?領(lǐng)取原創(chuàng)電子書和思維導(dǎo)圖。


          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美亚洲性爱在线 | 69综合| 久草免费极品盛宴 | www.苗条身,材骚气逼逼出水 | 无码人妻一区二区三区毛片视频 |