Coolblue的持續部署

2021-09-17 05:17:21 字數 2794 閱讀 9750

coolblue 的技術開拓者paul de raaij提出,持續部署會得到更強的責任感和更好的部署質量。**規範預防**庫混亂,自動化檢查很合適完成冗長而無聊的檢查,人工檢查很合適去檢查**的邏輯和用法實際上是否成立。

\\ de raaij 寫了一篇博文《我們軟體的持續部署》,在文章中他解釋了coolblue是如何完成持續部署的。

\\

\

僅僅開發軟體是不夠的。你還需要讓它投入使用,並確保部署了高質量的軟體且未對其造成破壞。

\

\\

paul de raaij 將在敏捷和軟體架構專題研討會2016上討論coolblue的持續部署。infoq有幸採訪了他,請他談了談coolblue的部署、持續部署的優勢和缺點、質量保證的技術和實踐、**規範、應用監控,以及coolblue面臨的挑戰和他們將如何應對。

\\infoq:什麼使coolblue決定要創造條件讓開發人員自己完成部署的?

\\

\

paul de raaij:我們希望軟體盡快投入使用。這能幫我們快速得到我們開發的功能的反饋意見,並使用這些反饋去了解是否需要改變方向。我們也喜歡讓開發團隊對他們的產品有完全的所有權。舉例來說,比如發布工程師正在轉移責任,其關鍵就在於擁有完全的所有權。如果你破壞了它,就必須由你來修復它。沒有人為你擦屁股。它會使大家擁有更高的責任感,使部署有更高的質量。

\

\\

infoq:目前部署是如何來做的?

\\

\

de raaij:很難就此給出乙個簡單而又全面的答案,簡短概括一下:我們使用gitflow 工作流並將git作為分布式版本系統工具。當一名開發人員想要把他的新**提交上線時,會建立乙個pull請求。這個pull請求將會得到自動化和人工的審核。全都亮綠燈了?那麼就會自動地把它打包並放到部署和驗收測試伺服器上。人工按一下按鈕就會把它部署到生產環境。當然,這裡面還有很多的內容,我將在asas會議上詳細**。

\

\\

infoq:持續交付的優勢是什麼?

\\

\

de raaij:它有很多的優勢。對於初學者而言,如果做法正確,你就有能力把自己的軟體部署到一台伺服器上。通過各種檢查工具的自動化檢查,它將顯示明確的質量水平。如果適當地設立了回歸測試,你就能保障原有功能在你部署之後仍可正常工作。

\

\\

infoq:有什麼缺點嗎?

\\

\

另外還要想想你的開發團隊的規模。500個開發人員在同一流程中工作和只有兩個人去做更新肯定會讓你的持續整合流水線有完全不同的工作方式。所以,提前思考你的解決方案有怎樣的可伸縮性。能否輕鬆地為**檢查增加額外的**?在乙個pull請求接受檢查之前等待半個小時是否可行?

\

\\

infoq:哪些技術和實踐被coolblue拿來用於質量保證?為什麼?

\\

\

de raaij:我們使用了多種方法,它們也使人工和自動化檢查更加多樣化了。自動化檢查能很好地完成冗長乏味的檢查(比如linting)、**規範的檢查、回歸測試的執行。人工檢查很合適去檢查**的邏輯和用法實際上是否成立,實際編碼的內容是否實際解決了全部的使用案例。

\

\\

infoq:如何應用編碼規範?這麼做會帶來什麼好處?

\\

\

de raaij:編碼規範非常重要,能避免你的**庫變得混亂。如果每位開發人員都按自己的縮排、間距和命名規則的話,很快就會變得一團糟。這將極大影響軟體和可交付物的質量,也會令開發人員的工作難以開展,迅速產生挫敗感而惱怒不已。

\\ 在我們的案例中,**規範大多數是遵循行業規範來定義的。比如我們的php規範就主要遵循了psr的規範,同時又進行了少量的微調。

\

\\

infoq:你們是如何監控應用的?

\\

\

de raaij:很多任務具都在我們的監控中發揮著作用。針對機器的技術監控,我們嚴重依賴nagios作為我們的監控應用。這實際關注的是機器的狀態以及應用和守護程序是否在執行。在我們的軟體生態中監控極其重要,所有應用都有自己的指標,我們將它們用於健康檢查、洞察力和分析。這些指標通過乙個statsd像聚合器一樣傳送到資料日誌。除了指標,我們還會利用elk棧深入分析日誌。

\

\\

infoq:coolblue正在面臨著什麼挑戰,你們將如何去應對它們?

\\

\

de raaij:完全的持續交付對於我們來說可是個大事。我們已經取得了相當的進展,但我們前方還有許多障礙,橫在我們走向真正的自動化部署的路上。其中乙個大的障礙是如何處理系統中的資料遷移,在我們應用的生態中它可是個大難題。如果我們解決了它,事實上就非常接近真正的持續部署了。

\

\\

敏捷和軟體架構專題研討會2016將於2023年9月28日在荷蘭阿納姆的gelredome球場召開:

\\

\

asas是乙個具體解決方案驅動的會議,在這裡技術帶頭人、軟體架構師、業務分析師和工程主管能夠了解和討論交付軟體解決方案的更好的方式,使其更適合於他們的使用者。

\

\\

infoq將使用問答、總結和文章全程報導本次大會。

\\檢視英文原文:continuous deployment at coolblue

Instgram的持續部署

我們每天都要在instagram改進後台 30到50次,但工程師們只在極少數的情況下需要將這些修改上傳到主伺服器上進行部署,但大部分情況下 可以自我改進以達到預期的效果,無須人為干涉。這可能聽起來不可思議,但持續部署早已開始應用。這篇文章將講述我們是如何實現持續部署,並讓它協調地執行。為什麼這麼做?...

持續整合 持續交付 持續部署

持續整合 持續整合強調開發人員提交了新 之後,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執行環境的 類生產環境 production like environments 中。比如,我們完成單...

持續整合 持續交付 持續部署

參考 1 continuous integration 持續整合 持續整合強調對於開發人員的每個提交,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。2 continuous delivery 持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執...