吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文教你分清持續集成,持續交付,持續部署

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-06-25 17:17 ? 次閱讀

總結

持續集成(CI)是一種開發實踐,其中開發人員經常(最好每天幾次)將代碼集成到共享存儲庫中。然后可以通過自動構建和自動測試來驗證每個集成。盡管自動化測試不是嚴格意義上的CI的一部分,但通常隱含了它。 定期集成的主要好處之一是,您可以快速檢測到錯誤并更輕松地定位它們。由于引入的每個更改通常很小,因此可以快速查明引入缺陷的特定更改。 近年來,CI已成為軟件開發的最佳實踐,并遵循一系列關鍵原則。其中包括版本控制,構建自動化和自動化測試。 此外,持續部署和持續交付已成為最佳實踐,可讓您隨時隨地部署應用程序,甚至在每次引入新更改時甚至將主代碼庫自動推入生產環境。這使您的團隊可以快速行動,同時保持可以自動檢查的高質量標準。

d7079c34-11db-11ee-962d-dac502259ad0.png

CI/CD應用場景:

開發人員將本地代碼上傳gitlab版本服務器

jenkins通過webhook插件自動到gitlab服務器拉取最新代碼

通過docker-maven-plugin插件自動編譯代碼

將自定義鏡像上傳docker私服倉庫

k8s集群自動拉取最新版本鏡像

自動化部署整個項目

用戶通過nginx負載均衡訪問整個項目

d726816c-11db-11ee-962d-dac502259ad0.png

什么是持續集成、持續交付和持續部署 ?

持續集成(CI)

是一種開發實踐,要求開發人員每天多次將代碼集成到共享存儲庫中(GitLab)。

開發人員通常使用稱為CI Server的工具來進行構建和集成。CI要求自檢代碼。這是用于自我測試以確保其按預期工作的代碼,這些測試通常稱為單元測試。集成代碼后,當所有單元測試通過時,將得一個最新的的代碼版本。這表明他們已經驗證了自己的更改已成功集成到一起,并且代碼按測試期望的那樣工作。

d742a180-11db-11ee-962d-dac502259ad0.png

從圖例上來看持續集成的流程就十分清晰了:

開發人員提交代碼到 Source Repository (源代碼倉庫),并通過 git hook 等

觸發 CI Server(持續集成服務器)的相關功能。執行 編譯 -> 測試 -> 輸出結果的流程,

向開發人員反饋結果的 report

可以看出,持續集成的核心在于確保新增的代碼能夠與原先代碼正確的集成。與后續要介紹的持續交付以及持續部署,其最主要的差別也就在于其目標不同。

連續交付(CD)

是一種軟件工程方法,團隊可以在短時間內將軟件部署到生產環境,確保在任何時候可靠地發布軟件,并且在發布軟件時可以手動進行。

持續交付意味著每次更改代碼,集成并構建代碼時,他們還將在與生產非常相似的環境中自動測試該代碼。我們將此部署到不同環境并在不同環境上進行測試的過程稱為部署管道。部署管道通常具有開發環境,測試環境和過渡環境,但是這些階段因團隊,產品和組織而異。

與持續集成相比,持續交付的側重點在于交付,其核心對象不在于代碼,而在于可交付的產物。由于持續集成僅僅針對于新舊代碼的集成過程執行了一定的測試,其變動到持續交付后還需要一些額外的流程。

d761439c-11db-11ee-962d-dac502259ad0.png

可以看到,與持續集成 相比較,持續交付 添加了 Test -> Staging -> Production 的流程,也就是為新增的代碼添加了一個保證:確保新增的代碼在生產環境中是可用的。

在這一增加的流程中,Test 環節不僅僅包含基本的單元測試,還需要延伸到更為復雜的功能測試以及集成測試等。在這里,Staging 指的是 類生產環境 ,其盡可能的對真實的網絡拓撲、數據庫數據以及硬件設備等資源進行模擬,從而為測試人員反饋代碼在生成環境中的可能表現。流程中每一個環節的執行結果都會對開發人員進行反饋,每一個出現的錯誤都會導致版本的回滾。當測試完畢確認無誤之后,將由相關人員對其進行手動部署到生產環境。

持續部署

持續部署意味著:通過自動化部署的手段將軟件功能頻繁的進行交付。 在這種實踐中,團隊負責人所做的每一項更改都通過了所有測試階段,并自動投入生產。要實現連續部署,團隊負責人首先需要進行連續交付。

d781254a-11db-11ee-962d-dac502259ad0.png

可以看到,同持續交付相比 持續集成 的區別體現在對 Production 的自動化。從開發人員提交代碼到編譯、測試、部署的全流程不需要人工的干預,完全通過自動化的方式執行。這一策略加快了代碼提交到功能上線的速度,保證新的功能能夠第一時間部署到生產環境并被使用。

DevOps概述

介紹完了持續集成、持續交付和持續部署三大件,接下來在講講 DevOps。與三大件不同,DevOps 更偏向于一種對于文化氛圍的構建。

DevOps 一詞本身是對于 development 以及 operation 兩個詞的混合,其目的在于縮短系統開發的生命周期,在這過程中發布特性、修復bug以及更新均被緊密的結合。

聽起來似乎有點玄乎,可以這樣理解:DevOps 也即是促使開發人員與運維人員之間相互協作的文化。

DevOps 的概念似乎與持續交付的概念有些類似,兩者均旨在促進開發與運維之間的協作,但是實際上兩者差別很大:DevOps 更偏向于一種文化的構建,在 DevOps 文化指導下,團隊中將包含了具有不同技能的人員(開發、測試等),并通過自動化測試與發布的手段,更快、更高質量的生產軟件。

d7a01450-11db-11ee-962d-dac502259ad0.png

d7c2232e-11db-11ee-962d-dac502259ad0.png

在傳統的團隊組織方式中,開發人員與運維人員之間是割裂開的,軟件開發流程被分割為多個獨立環節,分別由不同的人員執行。這使得軟件開發過程中需要付出高昂的溝通成本,層層手動的流程將大量的時間耗費在了重復的勞動中。

在 DevOps 的指導下,不同技能的人員處在同個團隊中,為了一個共同的軟件開發目標而工作,更好的協同工作與自動化的手段能夠優化整個 Code -> Build -> Test -> Release -> Operate -> Code 的循環。這一理念看起來很美,用圖畫來說明就構成了一個和諧友好的大圈。

DevOps文化通常與持續交付相關聯,因為它們都旨在增強開發人員和運營團隊之間的協作,并且都使 用自動流程來更快,更頻繁,更可靠地構建,測試和發布軟件。這些都是像我們這樣的人想要的東西。盡管開發團隊經常沒有看到流程改進的最直接好處,但CI,CD和DevOps對我們其他人來說卻有很多好處。簡而言之,我相信實踐CD并擁護DevOps文化的組織將更頻繁地向其客戶提供更有價值,更可靠的軟件。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 自動化
    +關注

    關注

    29

    文章

    5622

    瀏覽量

    79664
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054
  • devops
    +關注

    關注

    0

    文章

    116

    瀏覽量

    12089

原文標題:一文教你分清持續集成,持續交付,持續部署

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    6.6持續集成交付

    軟件工程
    jf_75936199
    發布于 :2023年03月08日 00:43:50

    AliOS Things 持續集成(CI)系統介紹

    摘要: AliOS Things在快速的迭代進化之中,如何保證提交的代碼質量,并保證在各個硬件平臺上的穩定性,是個非常大的挑戰。同時物聯網硬件碎片化,資源緊張,對持續集成(CI)系統也提出了特殊
    發表于 01-26 15:34

    什么樣的持續交付工具和平臺最適合你的組織?

    能力和靈活性不足。很多活動都需要在些模型的概念下進行。那么來聊聊吧你的組織規模如何,你在組織內的角色是什么正在使用什么樣的持續交付工具鏈,又遇到什么問題是否使用了云平臺,你的工具鏈和云平臺的
    發表于 05-02 14:18

    有方法與XC8持續集成

    你好,有沒有種方法可以在持續集成的環境中構建些項目,比如GITLAB跑步者?這樣,我們將能夠自動生成最新的通用XC版本的HEX文件。 以上來自于百度翻譯 以下為原文 Hell
    發表于 09-26 17:26

    介紹個RT-Thread進行持續集成的容器化Linux環境

    RT-Thread Linux CI Environment個用于嵌入式實時操作系統 RT-Thread 進行持續集成的容器化環境。使用步驟:拉取并啟動鏡像 maikebing
    發表于 07-28 10:51

    如何在持續集成開發流程中使用Jenkins和Docker?

    本指南介紹了如何在持續集成開發流程中使用Jenkins和Docker。 本指南的受眾是嵌入式軟件開發人員。在指南中,我們還討論了測試平臺的主題,強調了使用Arm Fast Model技術的虛擬硬件
    發表于 08-02 10:50

    在Jenkins管理的持續集成境引入Docker來優化資源配置

    Jenkins是被廣泛應用的持續集成、自動化測試、持續部署的框架,甚至有些項目組順便將其用來做流程管理的工具。根據任務的多寡,Jenkins通常有兩種典型的部署方式。 單節點(Mast
    發表于 09-26 11:42 ?0次下載
    在Jenkins管理的<b class='flag-5'>持續集成</b>境引入Docker來優化資源配置

    實例分析無線持續交付平臺 MCD 的實踐應用

    。如果沒有個有效的無線持續交付平臺,很難實現大版本的集成發布在 3 天內完成。而對比市場上開源的無線持續集成工具 Fastlane、Tes
    發表于 09-30 13:36 ?3次下載
    實例分析無線<b class='flag-5'>持續</b><b class='flag-5'>交付</b>平臺 MCD 的實踐應用

    使用Docker實現持續集成

    本文轉載自《程序員》,謝絕轉載,更多精彩,請訂閱2016年《程序員》 持續集成(Continuous Integration,簡稱CI)作為先進的項目實踐之,近年來逐漸受到國內軟件公司的重視;但對
    發表于 10-10 10:26 ?0次下載
    使用Docker實現<b class='flag-5'>持續集成</b>

    jenkins持續集成原理

    本文詳細介紹了jenkins持續集成原理。持續集成就是為解決程序代碼提交質量低,提交內容導致原有系統的bug,按時或按需自動編譯版本,自動進行自動化測試。
    的頭像 發表于 02-06 11:43 ?4140次閱讀

    關于持續集成與基于模型的設計的分析和應用

    在實際的工程項目中,隨著項目和人員的擴展,越來越多的開發人員會利用合適的代碼版本管理和持續集成工具進行并行開發。Git、GitLab、Jenkins這個組合適用于任意大小規模的持續集成開發模式。持續集成也是敏捷開發的
    的頭像 發表于 09-12 09:10 ?2243次閱讀
    關于<b class='flag-5'>持續集成</b>與基于模型的設計的分析和應用

    持續集成持續部署助于敏捷開發概念的出現

      由于數字世界的迅速擴散和廣泛的可訪問性,軟件開發項目中傳統的時間框架和順序過程不再有效。這些有助于敏捷開發概念的出現,例如測試自動化、持續集成持續部署
    的頭像 發表于 12-09 15:14 ?713次閱讀

    持續集成構建狀態信號量開源硬件

    電子發燒友網站提供《持續集成構建狀態信號量開源硬件.zip》資料免費下載
    發表于 12-23 17:42 ?0次下載
    <b class='flag-5'>持續集成</b>構建狀態信號量開源硬件

    高質量持續集成:VectorCAST與Jenkins實戰指南

    持續集成(ContinuousIntegration,簡稱CI)是種軟件開發/測試方法。它要求開發及測試人員頻繁地將代碼提交到用于共享的開發分支中,經過充分的測試和審查,然后通過自動化的構建和測試
    的頭像 發表于 09-28 08:27 ?1316次閱讀
    高質量<b class='flag-5'>持續集成</b>:VectorCAST與Jenkins實戰指南

    INTEWORK—PET 汽車軟件持續集成平臺

    INTEWORK-PET-CI是經緯恒潤自主研發的汽車軟件持續集成&持續交付平臺,在傳統的持續集成基礎上深化了研運體化(DevOps)的概
    的頭像 發表于 01-19 11:04 ?646次閱讀
    INTEWORK—PET 汽車軟件<b class='flag-5'>持續集成</b>平臺
    莫斯科百家乐的玩法技巧和规则 | 百家乐官网游戏必赢法| 火命与金命做生意| 大发888娱乐城casinolm0| 百家乐官网最新投注方法| 电子百家乐假在线哪| 独赢百家乐官网全讯网| 网络百家乐会作假吗| 赌博百家乐官网赢不了| 如何看百家乐路| 百家乐官网代理新闻| 澳门百家乐玩法与游戏规则| 百家乐官网庄闲几率| 百家乐英皇娱乐场| 百家乐官网事电影| 百家乐建材| 南京百家乐官网赌博现场被抓| 全讯网zq06| 沙龙百家乐官网娱乐| 大发888娱乐场游戏| 百家乐官网证据| 棋牌赌博| 百家乐注册送10彩金| 澳门百家乐官网园游戏| 百家乐娱乐代理| BB百家乐官网HD| 大发888游戏平台 娱乐场下载| 百家乐官网娱乐城有几家| 发中发百家乐的玩法技巧和规则| 百家乐官网赌场现金网| 大发888体育网| 做生意的人早晨讲究| 百家乐官网所有技巧| 正规百家乐平注法口诀| 金矿百家乐官网的玩法技巧和规则| 皇冠足球现金网| 百家乐游戏平台有哪些哪家的口碑最好 | 大发扑克网站| 缅甸百家乐玩假吗| 网站百家乐官网假| 澳门娱乐在线|