Free性欧美Hd另类_精品亚洲欧美视频在线观看_freesex欧美喷水_字幕av在线_久久久久久国产免费_伊人5566

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 學(xué)習(xí)交流 > 中培專家提示 | 實現(xiàn)高鐵般的穩(wěn)定與速度- DevOps的發(fā)布管理模式與實踐

中培專家提示 | 實現(xiàn)高鐵般的穩(wěn)定與速度- DevOps的發(fā)布管理模式與實踐

2018-02-01 14:36:28 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

在前一篇講Capital One如何成功進行DevOps轉(zhuǎn)型的文章中,我提到了他們公司總結(jié)出的DevOps轉(zhuǎn)型目標(biāo)是“Delivery High Quality Working Software Faster”,即更快速地交付高質(zhì)量的可工作系統(tǒng)。

其中的“可工作”是指跨產(chǎn)品線、共享服務(wù)和依賴的第三方,確保系統(tǒng)端到端必須可用。持續(xù)交付和DevOps的難點問題之一就在于跨系統(tǒng),尤其是銀行這類多個復(fù)雜系統(tǒng)共同協(xié)作的場景下,如何做好系統(tǒng)間的對齊,如何更有序的發(fā)布版本,是整個交付過程中非常關(guān)鍵的環(huán)節(jié)。

今天我們就來談一下大型復(fù)雜系統(tǒng)中如何發(fā)布管理的模式和技術(shù)。

▌常見的發(fā)布管理模式

常見的發(fā)布管理模式主要有以下幾種:

項目發(fā)布模式

發(fā)布窗口模式

發(fā)布火車模式

持續(xù)交付模式

1 ▏項目發(fā)布模式

一般來說,所謂項目就是指在一定約束條件下(主要是限定資源、限定時間、限定質(zhì)量),具有特定目標(biāo)的一次性任務(wù)。

目前很多大型企業(yè)的系統(tǒng)開發(fā)還是按照項目的模式開展,比如有時分為新建類項目(如新建系統(tǒng))或延續(xù)性項目(如增強或優(yōu)化系統(tǒng)),每個項目都需要完成從立項、項目啟動、項目實施到項目驗收等一系列較為完整的過程,實施流程繁瑣、參與人員眾多、普遍交付周期較長。

由于事先約定了項目所包含的需求或特性集合,當(dāng)所有需求或特性全部開發(fā)完成,并通過驗收測試后,才能批量進行版本發(fā)布。過程中如果出現(xiàn)需求變更或某些需求交付遇到阻礙,常常會導(dǎo)致項目的延期發(fā)布。

另外,由于項目大小不一,發(fā)布周期不固定,缺少穩(wěn)定的交付節(jié)奏,加之周期通常較長,可能導(dǎo)致項目交付的可預(yù)見性較差。

2 ▏發(fā)布窗口模式

發(fā)布窗口是指一個特定的時間段,在這個時間段內(nèi)一個或多個團隊可以發(fā)布產(chǎn)品到生產(chǎn)環(huán)境。

發(fā)布窗口一般選擇系統(tǒng)負(fù)載較低的時候進行,盡管現(xiàn)在大多數(shù)應(yīng)用系統(tǒng)的用戶都希望這些系統(tǒng)能夠提供7*24小時不間斷的服務(wù)。

在大型企業(yè)中,受到系統(tǒng)復(fù)雜度、研發(fā)流程和風(fēng)險控制等因素的影響,常常選擇周期跨度較大的發(fā)布窗口,比如每季度一次常規(guī)投產(chǎn)、每個月一次常規(guī)投產(chǎn),做的好一些的可以達(dá)到每兩周一次常規(guī)投產(chǎn)。

發(fā)布窗口模式的優(yōu)點:

對業(yè)務(wù)部門及用戶:提供了始終如一的發(fā)布節(jié)奏;

對交付團隊:提供了始終如一的發(fā)布日期目標(biāo);

發(fā)布窗口模式的缺點:

少量的發(fā)布窗口需要同時集中處理多個團隊的發(fā)布需求,發(fā)布風(fēng)險很高;

不同團隊爭搶有限的發(fā)布窗口,帶來大量溝通和協(xié)調(diào)成本;

不同系統(tǒng)之間存在相互依賴的情況,需要大量時間統(tǒng)一規(guī)劃和協(xié)調(diào);

3 ▏發(fā)布火車模式

發(fā)布火車是指組成復(fù)雜系統(tǒng)的每個團隊都參與到統(tǒng)一發(fā)布節(jié)奏的“火車”中來。每列發(fā)布火車采用固定的“發(fā)車”時間,特性的發(fā)布取決于該特性是否趕上最近的火車發(fā)車時間。如果某個團隊錯過了發(fā)布日期,即錯過了這列火車,火車還是會按時發(fā)出,這個團隊可以等待下列火車的到來。

許多大型企業(yè)都在使用發(fā)布火車的發(fā)布模式,這種模式適用于不同團隊有各自負(fù)責(zé)的子系統(tǒng)或組件,但需要整體進行對齊和集成的場景。發(fā)布火車模式的提出最早是一些大型軟件公司組合不同的軟件產(chǎn)品,但近些年來SAFe等大規(guī)模敏捷框架的推廣讓發(fā)布火車模式更為流行。

當(dāng)然,同樣是發(fā)布火車,不同場景下的展現(xiàn)形式可能不同。比如有的框架介紹發(fā)布火車一般8~12周完成一個大型產(chǎn)品的增量發(fā)布,有些企業(yè)實現(xiàn)的小型發(fā)布火車可以做到1~2周級別的發(fā)布(也有做的更快的,他們叫做班車模式)。

我們這里僅是從管理模式上和技術(shù)實現(xiàn)上考慮,發(fā)布火車可以實現(xiàn)多個子系統(tǒng)或組件團隊之間的高效協(xié)同,以及發(fā)布包的遞次晉級,我們討論的是一個廣義上的概念,具體的發(fā)布周期是可以按需求調(diào)整的。

發(fā)布火車模式的優(yōu)點:

發(fā)布火車讓參與的團隊達(dá)成統(tǒng)一的發(fā)布節(jié)奏;

所有參與的團隊可以有效對齊該版本的各個實施階;

發(fā)布火車可以更有效的協(xié)調(diào)多團隊的發(fā)布;

火車的間隔周期通常可以設(shè)置的相對較短,即便錯過一列火車還可以等待下一列,緩解了爭搶發(fā)布窗口的問題;

發(fā)布火車模式的缺點:

統(tǒng)一的發(fā)布火車時刻表同時也約束了開發(fā)團隊,沒有做到持續(xù)交付;

如果發(fā)布火車間隔時間設(shè)置的很長,一樣會出現(xiàn)集成的瓶頸;

關(guān)于發(fā)布火車模式的具體實現(xiàn)細(xì)節(jié)方法,下文會進行詳細(xì)介紹。

4 ▏持續(xù)交付模式

持續(xù)交付是DevOps的核心工程實踐,也是眾多互聯(lián)網(wǎng)公司采用的交付模式。持續(xù)交付的思路是開發(fā)以小批量工作在主干上,或者每個人工作在短Feature分支上,有規(guī)律的合并主干。主干一直保持可部署狀態(tài),可以做到通過一鍵式操作的方式在正常業(yè)務(wù)時段按需發(fā)布。

在流水線上,開發(fā)可以得到快速反饋,包括缺陷、性能問題、安全問題、易用性問題等,當(dāng)問題被發(fā)現(xiàn),他們快速修復(fù),以保證主干一直保持可部署狀態(tài)。關(guān)于持續(xù)交付的實施框架和細(xì)節(jié)技術(shù)實踐,我曾經(jīng)做過多次分享,但這并不是今天討論的重點,所以我們暫不展開。

持續(xù)交付可以做到行云流水一般,快速、按需發(fā)布到生產(chǎn)環(huán)境,相當(dāng)于我們的發(fā)布窗口是7*24小時!以互聯(lián)網(wǎng)為代表的一些高績效IT公司,通過持續(xù)交付可以做到每天成千上萬次高質(zhì)量的發(fā)布。但是,做到持續(xù)交付需要非常多的技術(shù)實踐,包括高度自動化的流水線,自動化構(gòu)建,自動化測試,自動化部署,低風(fēng)險的發(fā)布技術(shù)等等。

在大型復(fù)雜系統(tǒng)中實現(xiàn)持續(xù)交付,還需要考慮系統(tǒng)之間相互依賴的問題。正確的思路應(yīng)該是讓架構(gòu)盡量做到解耦,使得每個系統(tǒng)能夠獨立的開發(fā)、測試、部署和發(fā)布,而不依賴其他系統(tǒng)。每個系統(tǒng)獨立演進的過程中,可以通過契約測試的方式驗證相互接口的正確性,同時還需要實現(xiàn)服務(wù)提供方的向下兼容以及服務(wù)消費方的容錯性設(shè)計。

▌發(fā)布管理模式的綜合應(yīng)用

我的經(jīng)驗是很多傳統(tǒng)一些企業(yè)都在使用發(fā)布窗口模式或發(fā)布火車模式,但也都在積極嘗試持續(xù)交付的發(fā)布模式。通常引入敏捷和DevOps的方法和實踐都會促進發(fā)布頻率的提升和發(fā)布周期的縮短。

那么如何綜合應(yīng)用以上幾種發(fā)布管理模式,取長補短,即能夠提升單個系統(tǒng)的發(fā)布效率,又能兼顧系統(tǒng)之間的依賴關(guān)系呢?這個是我們接下來要討論的話題。

1 ▏綜合應(yīng)用的策略

我們需要根據(jù)發(fā)布頻率的實際需求來選擇和搭配不同的發(fā)布模式。

在上圖中,我們可以看到有不同類型的發(fā)布需求,比如Major Release(可能是產(chǎn)品級的功能整體升級),或者Subsystem Release(可能是某個子系統(tǒng)內(nèi)部的功能優(yōu)化),也有為了滿足特定合規(guī)性需求或解決線上問題的緊急修復(fù)等。

不同的發(fā)布需求對應(yīng)了不同的發(fā)布節(jié)奏。首先我們要按特定的節(jié)奏規(guī)劃產(chǎn)品級增量發(fā)布,此時可以應(yīng)用發(fā)布火車的模式;然后是在產(chǎn)品級增量發(fā)布的中間,規(guī)劃粒度更細(xì)的子系統(tǒng)級發(fā)布,以及穿插其中不定期的緊急發(fā)布,此時可以應(yīng)用持續(xù)交付的發(fā)布模式。

所以我們提出的整體策略就是“按節(jié)奏開發(fā),按需進行發(fā)布”。按節(jié)奏開發(fā)是指以固定的節(jié)奏安排產(chǎn)品級發(fā)布規(guī)劃,同步和對齊不同團隊之間工作,主動管理風(fēng)險并限制非預(yù)期的差異;按需進行發(fā)布是指構(gòu)成復(fù)雜產(chǎn)品的不同子系統(tǒng)或組件,可以各自按需靈活安排自己的發(fā)布活動,只要合理、合規(guī)就可以在任意適合的時間進行發(fā)布。

2 ▏發(fā)布火車的實現(xiàn)細(xì)節(jié)

發(fā)布火車的實現(xiàn)細(xì)節(jié)如下圖所示(引用自EXIN DevOps課程的TTT講師 Bart de Best):

使用發(fā)布火車將發(fā)布包從構(gòu)建狀態(tài)逐步發(fā)布到測試及生產(chǎn)環(huán)境。

發(fā)布火車傳輸?shù)膬?nèi)容是發(fā)布包,而非代碼(曾經(jīng)遇到有些團隊用發(fā)布火車模式來傳遞代碼,這種方式問題較多,而且不符合持續(xù)交付的單一制品原則);

只有出示了“車票”,才被允許上火車;

“車票”是指有效的測試結(jié)果;

在發(fā)布之旅中有很多的“站點”;

“站點”可以理解為不同的環(huán)境(開發(fā)環(huán)境、集成測試環(huán)境、驗收測試環(huán)境、生產(chǎn)環(huán)境);

每個站點上特定的“關(guān)卡”,指的是特定環(huán)境上不同級別的測試;

火車會一站接一站的運行,從開發(fā)到測試,從測試到驗收,從驗收到生產(chǎn),遞次運行;

每列火車有一個火車司機,火車司機就是發(fā)布經(jīng)理;

火車司機(發(fā)布經(jīng)理)負(fù)責(zé)判斷是否可以上車,除了檢查是否有車票,還要關(guān)注系統(tǒng)間的依賴和沖突;

如果發(fā)布包沒有趕上這列火車,或者有Bug,將會被放置在站點上等待;

直到修復(fù)Bug、通過測試(取得車票),并且滿足依賴之后,才能通過關(guān)卡,并搭乘下一列到達(dá)站點火車,奔向下一站;

下圖形象的展示了整個過程:

3 ▏發(fā)布模式的支撐技術(shù)

為了做到更快速、更穩(wěn)健的發(fā)布,僅僅引入相關(guān)的方法是不充分的,還需要在自動化發(fā)布技術(shù)、架構(gòu)解耦、可部署性、可靠性、快速恢復(fù)能力等方面進行建設(shè)。

除此之外,以下技術(shù)實踐的使用有助于實現(xiàn)更為靈活的發(fā)布模式:

功能開關(guān)

功能開關(guān)打開或關(guān)閉,可以控制在生產(chǎn)環(huán)境上的功能是否對最終用戶可見。比如剛才提到的多種發(fā)布節(jié)奏混合的場景下,可能需要采用多分支的模式匹配不同的發(fā)布版本。

使用功能開關(guān)的技術(shù),就可以轉(zhuǎn)變?yōu)橹鞲砷_發(fā)模式,并有效規(guī)避并行多分支的問題。如下圖所示,Spotify公司在使用發(fā)布火車模式時,利用功能開關(guān)把未完成功能在發(fā)布時做隱藏處理,這樣可以盡早暴露集成問題、最小化對并行分支的需求,并降低發(fā)布火車模式下分支管理的復(fù)雜度。

金絲雀發(fā)布

在發(fā)布變更到所有用戶之前,可以先發(fā)布到一小部分用戶,降低直接發(fā)布到生產(chǎn)環(huán)境所帶來的風(fēng)險。

比如依次發(fā)布變更的功能到10%、20%、50%的用戶,并在每個節(jié)點驗證一段時間,最后再進行全量發(fā)布。在發(fā)布火車模式中,對生產(chǎn)環(huán)境的發(fā)布可以按金絲雀發(fā)布的模式,拆分為數(shù)個更小的發(fā)布階段來控制風(fēng)險,如下圖所示:

▌總結(jié)

今天我們介紹了幾種常見的發(fā)布管理模式,在不同場景下綜合應(yīng)用這些模式可以在更快速地交付高質(zhì)量的可工作系統(tǒng)。

發(fā)布管理模式的一些核心要點如下:

策略:按節(jié)奏開發(fā),按需進行發(fā)布;

可以根據(jù)發(fā)布頻率的實際需求來選擇和搭配不同的發(fā)布模式;

發(fā)布火車模式可以更有效的協(xié)調(diào)大型復(fù)雜系統(tǒng)多團隊的發(fā)布;

持續(xù)交付模式實現(xiàn)更頻繁的發(fā)布,前提是建設(shè)高度的自動化能力及復(fù)雜系統(tǒng)間充分的解耦;

發(fā)布火車模式下,傳輸?shù)膬?nèi)容是發(fā)布包,而非代碼。只有出示了“車票”,才被允許上火車。每個“站點”上設(shè)有特定的“關(guān)卡”,火車按站點遞次運行,每個站點由”火車司機”負(fù)責(zé)團隊間對齊的工作;

配合使用功能開關(guān)和金絲雀發(fā)布技術(shù)實踐,可以讓發(fā)布模式更靈活并降低發(fā)布風(fēng)險。

今天分享的內(nèi)容可能略微復(fù)雜,整理起來也花費了我不少時間,但最終還是希望能對你有所幫助!

心動不如行動,綜合運用以上方法與實踐,讓你的產(chǎn)品發(fā)布能夠像高鐵一樣穩(wěn)定的飛馳吧!

想了解更多IT資訊,請訪問中培偉業(yè)官網(wǎng):中培偉業(yè)

標(biāo)簽: DevOps轉(zhuǎn)型

相關(guān)閱讀

主站蜘蛛池模板: 久久被窝亚洲精品爽爽爽 | 欧美香蕉 | 国产亚洲亚洲 | 亚洲大片精品永久免费 | 亚洲国产精品视频一区 | 久久er99热精品一区二区三区 | 亚州毛多水多久久 | 久久久国产精品萌白酱免费 | JAPANESE国产高清在线观看播放 | 在线天堂最新版资源 | av亚洲一区 | 亚洲理论av | ass白俄罗斯大肥妇pics | 992tv人人网tv亚洲精品 | 丁香五月网久久综合 | 国产精品吹潮在线观看中文 | 男同gay18禁视频无码视频 | 国产精品成人免费视频 | 成人午夜福利视频镇东影视 | 亚洲精品成人久久久998 | 另类校园春色小说综合网 | 好吊色欧美一区二区三区视频 | 欧美乱大交高潮tp121cc | 久久99久久99精品免观看 | ASS年轻少妇BBWPIC | 中文久久 | 色影天堂 | 欧美日韩一区二区三区视频播放 | 999亚洲精品无码久久久久 | 免费无码国产欧美久久18 | 啦啦啦资源在线观看视频 | 宝贝好紧好爽再搔一点试视频 | 蜜臀色欲Av在线播放国产日韩 | 国产日韩视频在线播放 | 久久国产精品影片 | 亚欧视频在线观看 | 日本免费黄色大片 | 亚洲欧美日韩视频高清专区 | 亚洲干干| 国产成人亚洲中文字幕视频 | 好紧好湿好黄的视频 |