什么是�续交付?

分类: 365bet滚球网站 时间: 2025-09-22 19:21:24 作者: admin 阅读: 7189
什么是�续交付?

了解�续交付 �续交付 (CD) 是一�自动执行准备将软件�布到生产中所涉�的手动步骤的�法。

本文内容: 什么是�续交付? �续交付与�续部署 为什么�进行�续交付? �建�续交付管� �续交付的价值 �续交付的挑战 �续交付最佳�法 结论 TeamCity 如何�供帮助 什么是�续交付? �续交付 (CD) 建立在�续集� (CI) 的基础上,自动执行准备将软件�布到生产中所涉�的步骤。

æ¯�次将代ç �更改å�ˆå¹¶åˆ°æŒ‡å®šåˆ†æ”¯æ—¶ï¼ŒæŒ�续集æˆ�æµ�程都会è¿�行一系列检查,包括自动化å�•元测试,并创建构建。 æŒ�续交付扩展了这一æµ�程,自动将æ¯�个构建部署到一系列测试和暂存环境并è¿�行进一步自动化测试。

这些测试包括集æˆ�测试ã€�UI 测试ã€�性能测试(如负载ã€�浸泡和压力测试)以å�Šç«¯åˆ°ç«¯æµ‹è¯•。 æ ¹æ�®æ‚¨çš„行业,您还å�¯ä»¥ä½¿ç”¨æŒ�续交付è¿�行安全测试ã€�æ— éšœç¢�功能测试以å�Šæ‰‹åŠ¨ç”¨æˆ·éªŒæ”¶æˆ–æŽ¢ç´¢æ€§æµ‹è¯•ã€‚ 构建æˆ�功通过æ¯�个阶段å�Žï¼Œå°±å�¯ä»¥å�‘布到生产。

与æŒ�续集æˆ�ä¸€æ ·ï¼Œæœ‰æ•ˆæŒ�续交付å�šæ³•çš„å…³é”®æ˜¯å°½å�¯èƒ½è‡ªåŠ¨æ‰§è¡Œæµ�程。 这包括在æ¯�个阶段æ��ä¾›å��馈,并在构建未能通过æŸ�个阶段时æ��醒团队,以便您快速解决问题。

æŒ�续交付与æŒ�续部署 æŒ�续交付和æŒ�续部署都涉å�Šè‡ªåŠ¨å°†æž„å»ºéƒ¨ç½²åˆ°çŽ¯å¢ƒå¹¶è¿�行自动化测试。 å› æ­¤ï¼Œè¿™ä¸¤ä¸ªè¯�有时会互用。 ä¸�过,æŒ�续交付和æŒ�续部署之间ä»�有一个明显的区别。

借助æŒ�续部署,代ç �更改æ¯�次æˆ�功通过所有测试阶段å�Žï¼Œå°±ä¼šè‡ªåŠ¨éƒ¨ç½²åˆ°ç”Ÿäº§ä¸­ã€‚ æŒ�续交付则涉å�Šæœ€å�Žé˜¶æ®µçš„æ‰‹åŠ¨æ­¥éª¤ï¼Œä¹Ÿå°±æ˜¯å°†è½¯ä»¶å�‘布到生产。

虽然æŒ�续部署å�¬èµ·æ�¥åƒ�是软件开å�‘团队的ç�†æƒ³ç›®æ ‡ï¼Œä½†è®¸å¤šå›¢é˜Ÿç»�过å�ˆç�†è€ƒé‡�决定选择æŒ�续交付。

详细了解�续交付与�续部署。

为什么è¦�进行æŒ�续交付? CI/CD æµ�程的最å�Žé˜¶æ®µæ¶‰å�Šå°†ä»£ç �更改部署到生产。 对于æŒ�续交付,虽然å�‘布æµ�程本身是自动化的,但å�‘布到生产的决定还是手动步骤。

æŸ�些团队将æŒ�续交付作为æŒ�续部署的垫脚石。 在完善自动化测试和检查时,手动触å�‘到生产的最终部署å�¯ä»¥æ��供一个安全网。 在这ç§�情况下,您å�¯èƒ½ä¼šé€‰æ‹©å…ˆè¿›è¡Œå‡ 个月的æŒ�续交付,然å�Žå†�å°†æ¯�个æˆ�功的代ç �更改自动部署到生产。

但是,æ¯�天或æ¯�å°�时多次部署软件更新并ä¸�总是ç�†æƒ³çš„选择。 对于版本化软件(包括移动应用ã€�APIã€�嵌入å¼�软件或桌é�¢äº§å“�),通常有必è¦�将更改分组到更大的版本中。 已安装产å“�的用户ä¸�会希望æ¯�éš”å‡ ä¸ªå°�时就更新一次应用,而å�‡çº§åˆ°æ–°çš„ API 版本å�¯èƒ½ä¼šå¯¹æ‚¨çš„客户产生é‡�大影å“�。 在æŒ�续交付和部署之间å�šå‡ºé€‰æ‹©ï¼Œå°±æ˜¯è¦�为ä¼�业和用户å�šå‡ºæ­£ç¡®çš„决定。

�建�续交付管� 虽然具体的构建步骤�环境和测试�决于您的产�和组织,但以下一般原则还是�以帮助您构建�续交付�程:

从 CI 开始:大多数情况下,å�¯ä»¥åœ¨æŒ�续交付之å‰�实现æŒ�续集æˆ�。 CI 主è¦�å½±å“�å¼€å�‘团队,这就æ��供了一个在涉å�Šå¤–部利益相关者之å‰�熟悉自动执行构建ã€�测试和部署æµ�程的机会。 设计您的 CD æµ�程以获得快速å��馈:尽早å�‘现问题å�¯ä»¥ä½¿æ‚¨çš„å¼€å�‘æµ�ç¨‹æ›´åŠ é«˜æ•ˆã€‚ æŸ�些阶段å�¯ä»¥å¹¶è¡Œè¿�行,例如针对ä¸�å�Œå¹³å�°æž„建的自动化 UI 测试。 å�Œæ ·ï¼Œè¿�行时间较长或消耗大é‡�资æº�的性能测试也å�¯ä»¥æŽ¨è¿Ÿï¼Œç›´åˆ°æž„建æˆ�功通过先å‰�的阶段。 与利益相关者互动:DevOps – CI/CD 背å�Žçš„ç�†å¿µé¼“励开å�‘å›¢é˜Ÿæ‰“ç ´å­¤å²›ï¼Œè€ƒè™‘æ•´ä¸ªè½¯ä»¶å¼€å�‘æµ�程。 设计 CD 管é�“时,从è¿�è�¥å’Œå®‰å…¨åˆ°è�¥é”€å’Œæ”¯æŒ�,让å�‚与当å‰�å�‘布æµ�ç¨‹çš„æ‰€æœ‰äººå‘˜åŠ å…¥è¿›æ�¥ã€‚ 自动执行测试:自动化测试对于æŒ�续交付至关é‡�è¦�ï¼Œå› ä¸ºå®ƒä»¬å�¯ä»¥æ��供快速å�¯é� 的验è¯�,确ä¿�软件按预期è¿�行。 如果没有自动化测试,则应优先考虑影å“�最大的领域,并é€�步扩大测试覆盖率。 é‡�用相å�Œçš„æž„建工件:为了é�¿å…�引入ä¸�一致,应将相å�Œçš„æž„建工件从 CI 阶段部署到æ¯�个预生产环境和生产本身。 自动刷新测试环境:ç�†æƒ³æƒ…况下,应当为 CI/CD æµ�程中的æ¯�个新构建刷新测试环境。 容器和基础架构å�³ä»£ç �æ–¹å¼�让您å�¯ä»¥æ›´è½»æ�¾åœ°æ ¹æ�®éœ€è¦�拆除和å�¯åŠ¨æ–°çŽ¯å¢ƒã€‚ 考虑利益相关者的需求:上一点的例外是支æŒ�ã€�销售或è�¥é”€å›¢é˜Ÿç”¨æ�¥ç†Ÿæ‚‰æ–°åŠŸèƒ½çš„æš‚å­˜çŽ¯å¢ƒã€‚ 这些团队å�¯èƒ½æ›´å–œæ¬¢æ ¹æ�®è¯·æ±‚更新环境,以é�¿å…�中断正在进行的工作。 采用 DevSecOps:信æ�¯å®‰å…¨æˆ–网络安全团队通常被视为频ç¹�å�‘布的障ç¢�ï¼Œå› ä¸ºå®‰å…¨å®¡æ ¸éœ€è¦�大é‡�时间,并且éš�å�Žéœ€è¦�生æˆ�长篇报告。 采用 DevSecOps æ–¹å¼�,从一开始就将安全è¦�求èž�入管é�“。 考虑手动测试è¦�æ±‚ï¼šæ ¹æ�®æ‚¨çš„ä¼�ä¸šï¼ŒåŠ å…¥ä¸€äº›æ‰‹åŠ¨æŽ¢ç´¢æ€§æµ‹è¯•ï¼Œå¸®åŠ©è¯†åˆ«æ„�外故障模å¼�。 与其è¦�求对æ¯�次代ç �更改进行手动测试,ä¸�妨考虑设置æ¯�周或æ¯�月è¿�行的å�¯é€‰æ­¥éª¤æˆ–替代管é�“。 自动执行å�‘布:虽然æŒ�续交付æ„�味ç�€å�‘布到生产的决定是手动å�šå‡ºï¼Œä½†å�‘布本身应该自动化。 您应当能够使用一个命令将良好的构建部署上线。 æŒ�续交付的价值 æŒ�续交付使团队能够更快ã€�更频ç¹�地å�‘布软件,å�Œæ—¶å‡�少进入生产的 bug æ•°é‡�。 为此,关键在于æŒ�续测试更改并在å�‘现问题时立å�³è§£å†³ï¼Œç¡®ä¿�代ç �éš�æ—¶å�¯ä»¥å�‘布。

此外,�续交付还�供了多项�外优势:

更频ç¹�地å�‘布æ„�味ç�€æ‚¨å�¯ä»¥åŠ å¿«äº§å“�上市时间,更快地å�‘用户æ��供新功能ã€�修正和增强。 æŒ�续测试æµ�程æ„�味ç�€æ‚¨å�¯ä»¥å¿«é€ŸèŽ·å¾—å·¥ä½œå��馈。 如果最近的更改引入了æ¼�洞,导致应用在æŸ�些情况下挂起或者 API è°ƒç”¨å¤±è´¥ï¼Œç›¸è¾ƒäºŽä¼ ç»Ÿçš„å�‘布测试æµ�程,您会更快å�‘现。 尽早å�‘现问题会使开å�‘æµ�ç¨‹æ›´åŠ é«˜æ•ˆã€‚ 您ä»�ç„¶è®°å¾—æ›´æ”¹ï¼Œè€Œä¸”æ·»åŠ ä¾�赖于错误代ç �的其他代ç �更改的风险也更å°�。 自动执行é‡�å¤�构建ã€�测试和å�‘布任务å�¯ä»¥ç¡®ä¿�一致执行并é™�低出错风险,å�Œæ—¶è®©å›¢é˜Ÿæˆ�å‘˜èƒ½å¤Ÿä¸“æ³¨äºŽå¢žåŠ ä»·å€¼ã€‚ 投资自动化测试有助于更全é�¢åœ°æµ‹è¯•软件。 è¿™å�¯èƒ½åŒ…括跨多个平å�°è¿›è¡Œä¸€è‡´æµ‹è¯•ã€�检查您是å�¦æ»¡è¶³æ— éšœç¢�功能è¦�求,或对产å“�或æœ�务的性能进行基线测试。 自动刷新环境和部署构建å�¯ä»¥å¸®åŠ©æ‚¨æ›´æœ‰æ•ˆåœ°ä½¿ç”¨åŸºç¡€æž¶æž„ï¼Œæ— è®ºæ˜¯å†…éƒ¨æœ�务器还是云托管构建场。 自动执行到暂存站点的部署有助于确ä¿�产å“�ã€�è�¥é”€å’Œæ”¯æŒ�团队å�¯ä»¥é¢„è§ˆæ–°åŠŸèƒ½ï¼Œæ— éœ€å¼€å�‘或è¿�è�¥å›¢é˜Ÿè¿›è¡Œé¢�外的手动æ“�作。 æŒ�续交付使å�‘布æµ�程稳å�¥ä¸”å�¯é‡�å¤�,å�Œæ—¶è®©æ‚¨å�¯ä»¥ç²¾ç¡®æŽ§åˆ¶å�‘布时间。 通过 CD æµ�程,您å�¯ä»¥é€‰æ‹©æ¯�周ã€�æ¯�天甚至æ¯�å°�时交付å°�型改进。 æŒ�续交付的挑战 实现æŒ�续交付æµ�程å�¯èƒ½ä¼šé�‡åˆ°ä¸€äº›æŒ‘战:

跨团队å��作:您å�¯èƒ½éœ€è¦�组织多个部分的å��作,例如è¿�è�¥ã€�基础架构和安全团队。 è™½ç„¶æ‰“ç ´å­¤å²›åœ¨çŸ­æœŸå†…å�¯èƒ½å…·æœ‰æŒ‘战性,但从长远æ�¥çœ‹ï¼Œå®ƒä¼šå¸¦æ�¥æ›´å¥½çš„å��作和更高的效率。 时间投入:自动执行构建ã€�测试和å�‘布æµ�程需è¦�时间。 ä¸�过,采å�–迭代方å¼�å¹¶é€�步完善æµ�程å�¯ä»¥ä½¿è¿™æ›´æ˜“于管ç�†ã€‚ æ”¶é›†ç¼ºé™·çŽ‡å’Œæž„å»ºæ—¶é—´ç­‰æŒ‡æ ‡å¹¶å°†å…¶ä¸Žæ‰‹åŠ¨è¿‡ç¨‹è¿›è¡Œæ¯”è¾ƒï¼Œæ˜¯å�‘利益相关者展示投资回报的有效方å¼�。 扩缩挑战:在扩缩æŒ�续交付æµ�程时,您å�¯èƒ½ä¼šå¸Œæœ›å¹¶è¡Œè¿�行多个构建和测试。 此时,å�¯ç”¨æœ�务器的数é‡�å�¯èƒ½æˆ�为é™�åˆ¶å› ç´ ã€‚ 优化管é�“性能å�Žï¼Œå�¯ä»¥è€ƒè™‘è¿�ç§»åˆ°äº‘æ‰˜ç®¡åŸºç¡€æž¶æž„ï¼Œä»¥æ ¹æ�®éœ€è¦�扩缩构建场。 æŒ�续交付最佳å�𿳕 æ�­å»ºæŒ�续交付æµ�程看似艰巨,但å�ªè¦�方法得当,它å�¯ä»¥å¤§å¹…åŠ å¿«è½¯ä»¶å�‘布速度,å�Œæ—¶æœ€å¤§é™�度地å‡�å°‘ bug。

有效实现æŒ�续交付的关键是采用 DevOps æ€�维。 DevOps 倡导å��作和从短的迭代周期中快速获å�–å��馈,而ä¸�是将软件开å�‘æµ�程视为å�•å�‘ä¼ é€�带 – è¦�求ã€�代ç �å’ŒæŠ¥å‘Šä»Žä¸€ä¸ªå›¢é˜Ÿä¼ é€’åˆ°å�¦ä¸€ä¸ªå›¢é˜Ÿã€‚

改å�˜æ‚¨å¯¹â€œå®Œæˆ�â€�的定义å�¯ä»¥å¸®åŠ©æ‚¨æŽ¥å�—è¿™ç§�心æ€�。 ä¸�è¦�在将代ç �交给测试时就认为任务已ç»�完æˆ�,å�ªæœ‰æ‚¨çš„æ–°åŠŸèƒ½æˆ–ä»£ç �更改å�‘布上线å�Žæ‰�算完æˆ�。 如果在管é�“的任何阶段å�‘现问题,与必须由更改委员审批的冗长报告相比,å�Šæ—¶ä¼ è¾¾å��馈并展开å��作å�¯ä»¥æ›´å¿«åœ°è§£å†³é—®é¢˜ã€‚ 这就是æŒ�续交付的æ„�义所在。

如需帮助您开始采用�续交付的更多�示,请阅读我们的 CI/CD 最佳�法指�。

结论 æŒ�续交付使å�‘布软件å�˜å¾—æ›´åŠ è½»æ�¾å¿«æ�·ï¼Œæ‚¨å�¯ä»¥æ›´é¢‘ç¹�地部署到生产。 更频ç¹�交付的å°�型更新将å�–代大型的季度或年度å�‘布。 è¿™ä¸�ä»…æ„�味ç�€ç”¨æˆ·å�¯ä»¥æ›´å¿«èŽ·å¾—æ–°åŠŸèƒ½å’Œ bug 修正,还æ„�味ç�€æ‚¨å�¯ä»¥äº†è§£è½¯ä»¶çš„实际使用情况并相应调整计划。

虽然�些组织倾�于对�布�程的最�一步��控制,但对其他组织�说,CI/CD 管�的逻辑结论是使用一�称为�续部署的�法自动将版本上线。 您�以在我们 CI/CD 指�的下一部分中了解详情。

TeamCity 如何æ��供帮助 TeamCity 是一个 CI/CD å¹³å�°ï¼Œå¹¿æ³›æ”¯æŒ�å�„ç§�构建工具ã€�测试框架ã€�容器和云基础架构æ��供商。 æ— è®ºæ‚¨æ˜¯æƒ³åœ¨çŽ°åœºã€�云端或两者结å�ˆæ�¥æ‰˜ç®¡æž„建机器,TeamCity 都会å��调构建任务以实现最高效率。

TeamCity çš„å�¯å®šåˆ¶ç®¡é�“逻辑æ„�味ç�€æ‚¨å�¯ä»¥é€‰æ‹©ä½•时并行è¿�行æµ�程(例如在ä¸�å�Œå¹³å�°ä¸Šè¿›è¡Œæµ‹è¯•)以å�Šä½•æ—¶è¦�求æˆ�功完æˆ�å�Žæ‰�能进入下一阶段。 æ— è®ºæ‚¨åœ¨å“ªé‡Œå·¥ä½œï¼Œå�¯é…�置的通知都能为您æ��供所需信æ�¯ï¼Œå¸®åŠ©æ‚¨é�¿å…�ä¸�å¿…è¦�的干扰。 最å�Žï¼Œè¯¦ç»†çš„结果有助于确ä¿�生产路径ä¿�æŒ�畅通。

相关推荐