乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      為什么大公司一定要使用DevOps?

       楚云澤 2019-10-08
      0 DevOps的意圖

      究竟什么是DevOps? 要想回答這個(gè)問(wèn)題,首先要明確DevOps這個(gè)過(guò)程參與的人員是誰(shuí)?即開(kāi)發(fā)團(tuán)隊(duì)和IT運(yùn)維團(tuán)隊(duì)!那么,DevOps的意圖是什么呢?即在兩個(gè)團(tuán)隊(duì)之間,建立良好的溝通和協(xié)作,更快更可靠的創(chuàng)建高質(zhì)量軟件!

      事實(shí)上,并不是這兩個(gè)團(tuán)隊(duì)之間的協(xié)作幫助交付了更好的軟件,而是“開(kāi)發(fā)”和“運(yùn)維”團(tuán)隊(duì)之間的統(tǒng)一導(dǎo)致了軟件的改進(jìn),并以更快的速度交付。我們不要忘記DevOps工具在實(shí)現(xiàn)自動(dòng)化方面所扮演的角色。

      開(kāi)發(fā)和運(yùn)維“一體”的感覺(jué)是由開(kāi)發(fā)人員和操作工程師之間的技能組合和實(shí)踐的橋接以及自動(dòng)化(DevOps)工具的實(shí)現(xiàn)引起的。 世界各地的大型互聯(lián)網(wǎng)公司已采用DevOps方法來(lái)徹底改進(jìn)其性能,安全性和團(tuán)隊(duì)動(dòng)態(tài)。 

      在本篇文章中,讓我們看看什么是DevOps,為什么它如此重要! 我們將首先跟蹤導(dǎo)致DevOps的軟件開(kāi)發(fā)方法的演變,然后探索什么是DevOps及其生命周期,并通過(guò)評(píng)估世界頂級(jí)公司,來(lái)看看如何使用DevOps來(lái)獲得益處。

      1 軟件開(kāi)發(fā)的演變

      多年來(lái),DevOps從現(xiàn)有的軟件開(kāi)發(fā)策略/方法發(fā)展而來(lái),以響應(yīng)業(yè)務(wù)需求。讓我們簡(jiǎn)要地看一下這些模型是如何演變的,以及它們最適合的場(chǎng)景。

      640?wx_fmt=png

      緩慢而繁瑣的瀑布模型演變成敏捷,開(kāi)發(fā)團(tuán)隊(duì)在短時(shí)間內(nèi)完成軟件開(kāi)發(fā),持續(xù)時(shí)間甚至不超過(guò)兩周。如此短的發(fā)布周期幫助開(kāi)發(fā)團(tuán)隊(duì)處理客戶反饋,并將其與bug修復(fù)一起合并到下一個(gè)版本中。

      雖然這種敏捷的SCRUM方法為開(kāi)發(fā)帶來(lái)了敏捷性,但它在運(yùn)維方面卻失去了敏捷實(shí)踐的速度。開(kāi)發(fā)人員和運(yùn)維工程師之間缺乏協(xié)作仍然會(huì)減慢開(kāi)發(fā)過(guò)程和發(fā)布。

      DevOps方法就是基于對(duì)更好的協(xié)作和更快的交付的需求而產(chǎn)生的。DevOps允許用較少?gòu)?fù)雜問(wèn)題的持續(xù)軟件交付來(lái)修復(fù)和更快地解決問(wèn)題。

      現(xiàn)在我們已經(jīng)了解了DevOps的發(fā)展,讓我們來(lái)詳細(xì)看看DevOps是什么。

      2 什么是DevOps?

      DevOps是一種軟件開(kāi)發(fā)方法,涉及軟件在整個(gè)開(kāi)發(fā)生命周期中的持續(xù)開(kāi)發(fā),持續(xù)測(cè)試,持續(xù)集成,持續(xù)部署和持續(xù)監(jiān)控。 這些活動(dòng)只能在DevOps中實(shí)現(xiàn),而不是敏捷或瀑布,這就是為什么頂級(jí)互聯(lián)網(wǎng)公司選擇DevOps作為其業(yè)務(wù)目標(biāo)的前進(jìn)方向。 DevOps是在較短的開(kāi)發(fā)周期內(nèi)開(kāi)發(fā)高質(zhì)量軟件的首選方法,可以提高客戶滿意度。 

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

      640?wx_fmt=jpeg

      持續(xù)開(kāi)發(fā):

      這是DevOps生命周期中軟件不斷開(kāi)發(fā)的階段。與瀑布模型不同的是,軟件可交付成果被分解為短開(kāi)發(fā)周期的多個(gè)任務(wù)節(jié)點(diǎn),在很短的時(shí)間內(nèi)開(kāi)發(fā)并交付。

      這個(gè)階段包括編碼和構(gòu)建階段,并使用Git和SVN等工具來(lái)維護(hù)不同版本的代碼,以及Ant、Maven、Gradle等工具來(lái)構(gòu)建/打包代碼到可執(zhí)行文件中,這些文件可以轉(zhuǎn)發(fā)給自動(dòng)化測(cè)試系統(tǒng)進(jìn)行測(cè)試。

      持續(xù)測(cè)試:

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

      持續(xù)集成:

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

      Jenkins是一個(gè)非常流行的用于持續(xù)集成的工具。使用Jenkins,可以從git存儲(chǔ)庫(kù)提取最新的代碼修訂,并生成一個(gè)構(gòu)建,最終可以部署到測(cè)試或生產(chǎn)服務(wù)器。可以將其設(shè)置為在git存儲(chǔ)庫(kù)中發(fā)生更改時(shí)自動(dòng)觸發(fā)新構(gòu)建,也可以在單擊按鈕時(shí)手動(dòng)觸發(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是流行的工具,有助于在開(kāi)發(fā),測(cè)試,登臺(tái)和生產(chǎn)環(huán)境中實(shí)現(xiàn)一致性。 除此之外,它們還有助于輕松擴(kuò)展和縮小實(shí)例。

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

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

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

      這些DevOps階段連續(xù)循環(huán)進(jìn)行,直到達(dá)到所需的產(chǎn)品質(zhì)量。下面的圖表將顯示可以在DevOps生命周期的哪個(gè)階段使用哪些工具。

      640?wx_fmt=jpeg

      既然我們已經(jīng)確定了DevOps的重要性,并且了解了它的不同階段以及所涉及的DevOps工具,現(xiàn)在讓我們看看Facebook的一個(gè)案例研究,并理解為什么他們從敏捷轉(zhuǎn)向DevOps。我們將采用Facebook曾推出的新特性的用例,這些新特性導(dǎo)致Facebook重新評(píng)估其產(chǎn)品交付并采用DevOps方法。

      3 DevOps案例研究

      曾經(jīng),F(xiàn)acebook向遍布全球的若干億用戶推出了一系列新功能 - 時(shí)間軸,推薦和音樂(lè)功能。 發(fā)布后Facebook上產(chǎn)生的巨大流量導(dǎo)致服務(wù)器崩潰。 推出的功能獲得了用戶的大規(guī)模超常規(guī)響應(yīng),這導(dǎo)致了新功能產(chǎn)生了不可控的結(jié)果,使他們沒(méi)有預(yù)料到。

      640?wx_fmt=jpeg

      這導(dǎo)致了Facebook重新評(píng)估和戰(zhàn)略調(diào)整,從而使Facebook推出了暗啟動(dòng)技術(shù)。 使用DevOps原則,F(xiàn)acebook為其新版本的發(fā)布創(chuàng)建了以下方法。

      640?wx_fmt=jpeg

      Facebook暗啟動(dòng)技術(shù)

      暗啟動(dòng)是在新功能完全發(fā)布給所有用戶之前,逐步將新功能,推廣到選定的一組用戶的過(guò)程。 這允許開(kāi)發(fā)團(tuán)隊(duì)盡早獲得用戶反饋,測(cè)試錯(cuò)誤,并且還可以測(cè)試基礎(chǔ)架構(gòu)性能。 這種發(fā)布方法是持續(xù)交付的直接結(jié)果,有助于實(shí)現(xiàn)更快,更迭代的版本,確保應(yīng)用程序性能不會(huì)受到影響,并且用戶可以很好地更新該版本。

      640?wx_fmt=jpeg

      在暗啟動(dòng)技術(shù)中,新功能通過(guò)專用的部署管道發(fā)布給小型用戶群。 在上面給出的Facebook暗啟動(dòng)圖表中,您可以看到只打開(kāi)了一個(gè)部署管道,將新功能部署到一組選定用戶。 此時(shí)剩余的數(shù)百條管道全部關(guān)閉。

      持續(xù)監(jiān)視部署功能的特定用戶群,以收集反饋并識(shí)別錯(cuò)誤。 這些錯(cuò)誤和反饋將被納入開(kāi)發(fā),測(cè)試和部署在同一用戶群中,直到功能變得穩(wěn)定。 一旦實(shí)現(xiàn)穩(wěn)定性,通過(guò)啟用其他部署管道,將逐步在其他用戶群上部署這些功能。

      Facebook通過(guò)將代碼包裝在功能標(biāo)記或功能切換中來(lái)實(shí)現(xiàn)此目的,該切換用于控制誰(shuí)可以看到新功能以及何時(shí)查看。與此同時(shí),模擬向用戶啟動(dòng)代碼的全部效果,在向用戶開(kāi)放全部功能之前,可以及早的暴露應(yīng)用程序基礎(chǔ)架構(gòu)的痛點(diǎn)和區(qū)域,功能穩(wěn)定后,將通過(guò)多個(gè)版本將其部署到其余用戶。

      通過(guò)這種方式,F(xiàn)acebook擁有一個(gè)受控或穩(wěn)定的機(jī)制,可以為其龐大的用戶群開(kāi)發(fā)新功能。相反,如果功能沒(méi)有得到很好的響應(yīng),他們可以選擇完全回滾部署。這也幫助他們?yōu)椴渴饻?zhǔn)備服務(wù)器,因?yàn)樗麄兛梢灶A(yù)測(cè)網(wǎng)站上的用戶活動(dòng),并相應(yīng)地?cái)U(kuò)展服務(wù)器。上面給出的圖表描述了Facebook的暗啟動(dòng)過(guò)程。

      4 總結(jié)

      微信,淘寶,以及許多領(lǐng)先的科技巨頭,在向所有人發(fā)布之前,都使用暗發(fā)布逐漸向一小部分用戶發(fā)布和測(cè)試新功能。

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

      陛下...看完奏折,點(diǎn)個(gè)贊再走吧!

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多