持續(xù)部署的發(fā)展之路

我們無數次聽到這類的抱怨:管理層不會去做、代碼太過混亂、項目太大、有太多的監(jiān)管障礙。由此種種,對于許多企業(yè)來說,在持續(xù)集成/持續(xù)部署的道路已步履蹣跚,但不得不說,仍有一部分企業(yè)做到了。

以Michiel Rook在2016 年的DevOps大會上的演講為例,一起來看看關于持續(xù)部署的發(fā)展之旅。他們的項目被稱為“San Diego Project”,但他們公司內部卻被稱為“大泥球”,因為它的代碼庫相當地混亂。

下圖是實施持續(xù)部署前的狀態(tài):

該項目的壓力很大。皆來源于它純手動發(fā)布,脆弱的測試,頻繁的宕機以及問題不斷。這個項目團隊大約由16人組成,但他們對修改現有代碼并沒有什么信心。

他們知道需要做什么,所以他們設定了以下目標:

減少問題

減少周期時間

提高生產效率

提高積極性

他們采取的方法是:整體修改,建立一個代理并添加一個服務,然后不斷地增加服務,直到這個整體被取代。

他們以如下原則來指導這次持續(xù)部署之旅:

應用strangler模式

使用API的第一個方法

為每個domain設置一個服務

遷移單個頁面

建立負載平衡器后的服務

訪問遺留數據庫

實施持續(xù)部署

運用docker

開發(fā)前端作為服務

從持續(xù)集成開始:開發(fā)和構建/測試,每次都產生一個工件。持續(xù)交付:從構建/測試到驗收再到生產; 進入生產階段是一個手動的過程,但代碼是可部署的。最后,當整個流程實現自動化時,就達到持續(xù)部署的目標了。

關于持續(xù)部署的優(yōu)點有以下幾點:

小步推進

早期反饋

減少循環(huán)時間

風險減低

實驗室環(huán)境

Michiel的項目落地后,他總結了幾個實現持續(xù)部署的關鍵方面,如下:

l直接提交到Master沒有分支。我們都不希望延遲集成,且濫用版本控制功能分離。另外,分支上的所有內容都會增加沖突和延遲集成的風險。

每一次提交都要投入生產。

使用配對編碼進行代碼審查。這需要約束,但所有的開發(fā)人員都需要成對進行,混合搭配有經驗的開發(fā)人員。

嚴把質量關。確保大量測試和代碼覆蓋率。

功能切換和A/B Test確保一部分開發(fā)人員可以看到版本信息,一部分人不能看到,并促進A / B測試。但一定要把人員數量保持在一個合理的范圍內。

Dashboards顯示是部署的關鍵,通過它我們可以獲取很多信息,比如KPI、構建時間、頁面加載時間、訪問者數量、A/B Test結果,等等。

DevOps心態(tài)是一種文化;dev和ops之間并無太多隔閡。團隊內部都擁有所有權,但這并不意味著每個人都知道所有事。

自動化可重復的事。如果同樣的事你需要做兩次,那說明你已經浪費了時間。

連續(xù)測試。使用單元測試和冒煙測試來查看服務是否存在,并持續(xù)監(jiān)控。探索性的測試很重要,因為你將繼續(xù)測試最關鍵的路徑。

管道作為代碼。自動化流水線。最后,部署起來是這樣的:

反饋–及時的反饋很重要,因為DevOps是在此基礎之上建立的。舉個例子,Michiel這個項目上有一個閃爍的紅光,這表示失敗。所以不管什么時候,及時反饋都是工作中的第一要事。

Michiel的項目時間跨度有一年之久。最終,他們將每個服務的構建時間減少到不到10分鐘,顯著改善了頁面加載時間,同時他們自己也增加了自信心和加快了速度等。明白了團隊需要接受和改變的重要性的真理。同時,他們還了解到,與業(yè)務優(yōu)先級一致是關鍵,確保擁有一定工作經驗的員工亦是至關重要,限制功能切換同樣至關緊要。

總的來說,Michiel和他的團隊實現了持續(xù)部署。在他的演講結束時,Michiel也提到了他的無奈,想要取代的遺留系統仍在服務中。所以持續(xù)部署這條路還很長,但值得去做。

關于Ghostcloud

Ghostcloud(中文名:精靈云)坐落于成都天府軟件園,是成都高新區(qū)重點扶持企業(yè),國內首批從事容器虛擬化研發(fā)的企業(yè),是西南地區(qū)唯一一家基于Docker的云計算服務商,為企業(yè)級行業(yè)客戶提供針對互聯網化、私有云管理平臺、大數據業(yè)務基礎架構的平臺服務。

Ghostcloud因容器技術而生,以最新容器技術Docker為基礎,為適應不同行業(yè)客戶需求,全自主研發(fā)了一套調度引擎框架Newben,且全方位適配Kubernetes主流開源調度引擎,也是國內率先實現雙調度引擎的企業(yè),是一流的企業(yè)級容器云服務專家。Ghostcloud推出了企業(yè)級容器云PaaS/CaaS平臺,命名為EcOS(EnterpriseContainer Operation System)。Ghostcloud將EcOS平臺與微服務/DevOps相融合,運用至企業(yè)IT系統的全生命周期的開發(fā)、測試、運維及發(fā)布流程中,致力于為多個領域企業(yè)向“互聯網+”轉型提供針對互聯網化、私有云管理平臺、大數據業(yè)務基礎架構的平臺服務,幫助企業(yè)級客戶降低成本、提升效率、簡化運維及產品部署,并提升系統的可靠性和安全性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載本文需注明出處:微信公眾號EAWorld,違者必究。 本文目錄: 一、企業(yè)應用的部署發(fā)展 二、普元容器云與De...
    72a1f772fe47閱讀 917評論 0 3
  • 前言 DevOps方案實施在互聯網行業(yè)中已經相對成熟了,而在游戲行業(yè)中還處在起步的初級階段(據個人了解的身邊游戲公...
    云時代構架楊彪閱讀 2,624評論 0 8
  • 自微信出現后,朋友圈時不時就會被刷爆,有的是秀恩愛虐狗的、有的是奢飾品炫富的、還有的是出門旅游炫生活的。面對春風十...
    想走走閱讀 381評論 0 0
  • 余笙一路跑回太師府,喘的上氣不接下氣,把青羅甩了老遠去,門口的守衛(wèi)一見余笙,焦急地與她道:“小姐,您可回來了,...
    嚶語喃喃sherry閱讀 458評論 0 1
  • 1.愛在旅途 這部劇雖然是2010年熱播的,但是是我百看不厭的一部劇,女主也是我很喜歡的泰國女星,女主為了尋找父親...
    wei_waou閱讀 578評論 0 1