ci /cd_如何开始使用CI / CD

ci /cd

在软件设计和开发中,加快速度的关键是称为CI / CD的操作原理和实践的集合,它结合了持续集成(CI)和持续交付(CD)。 CI / CD使软件开发团队可以更频繁,更可靠地交付代码更改,从而更快地满足业务及其客户的需求。

持续集成是一种编码哲学和一套实践,旨在驱动开发团队进行少量更改,并经常将代码检入版本控制存储库。 鉴于当今大多数应用程序要求团队使用不同的平台和工具来开发代码,因此团队需要一种方法来集成和验证其更改。

[ 同样在InfoWorld上:什么是CI / CD? 持续集成和持续交付的解释 ]

持续集成的目的是创建一种一致,自动化的方式来构建,打包和测试软件应用程序。 集成过程中的一致性使开发团队可以更频繁地实施代码更改,从而提高了协作和软件质量。

同样在本系列中:

持续集成之后的持续交付使应用程序自动交付到选定的基础架构环境。 如今,大多数开发团队除了在生产环境中(包括测试环境)外,还在多种环境中工作,并且持续交付可确保采用自动方式将代码更改推送到这些各种环境中。

持续集成和持续交付需要持续测试,因为目标是向最终用户交付高质量和安全的应用程序和代码。 连续测试通常被部署为在管道内执行的一组自动化回归,性能和其他测试。

CI和CD在一起(CI / CD)包含一种文化,一套操作原则和一组加速软件开发过程的实践。 该实现也称为CI / CD管道,被认为是devop团队的最佳实践之一。

行业专家表示,越来越多的组织正在实施CI / CD,因为它们希望增强内部或客户使用的软件应用程序的设计,开发和交付。

研究公司Gartner的副总裁兼分析师Sean Kenefick说:“我们肯定会看到CI / CD的使用正在增加。” “我个人一直在询问有关持续开发,测试和发布的问题。”

[ 同样在InfoWorld上:什么是敏捷方法论? [现代软件开发讲解 ]

Kenefick说,Gartner最近的“企业敏捷”调查显示,越来越多的团队在进行敏捷开发 ,并且敏捷团队在持续集成,自动化验收测试和开发方面的执行率明显更高。

Kenefick说:“我认为CI是创建自动化管道的自然起点,而这正是团队倾向于开始的领域。” “ CD更困难的方面是需要自动化测试和应用程序的重新架构,以便可以单独测试和发布少量功能。”

云解决方案高级主管Josh Quint说,实际上,云咨询公司ServerCentral Turing Group参与的所有新软件项目都使用了一定程度的CI / CD。

这种趋势背后的核心驱动力是无服务器计算基础架构需要CI / CD集成。 安全要求要求开发人员登录生产基础架构的权限有限或没有登录; Quint说,敏捷方法需要更快的部署和测试周期。

CI / CD已成为许多参与开发的组织的主流策略。

“持续集成,全面的自动化测试和持续交付等技术专长只能一次由髋关节掌握,而现在,传统企业已成功地完成了时尚的初创企业。”持续部署能力的技术总监Hasan Yasar说,在卡内基梅隆大学软件工程学院(SEI)任职。

以下是一些建议的实施和维护CI / CD策略的做法。

[ 同样在InfoWorld上:如何在敏捷软件开发中脱颖而出 ]

尽早让主要利益相关者参与CI / CD

Yasar说,最好在开发初期尽可能早地让所有开发项目的利益相关者参与。

Yasar说:“最大的好处是,在项目的每个阶段,所有利益相关者的参与都可以做出发展决定。” 例如,IT运营人员将在体系结构决策中拥有发言权,因此开发人员可以在经过IT批准的基础架构上进行开发。

Yasar说:“这应该在所有类型的利益相关者的所有决策中完成,以便所有重大决策都可以由会议室内的专家做出。” “这种做法大大减少了整个项目生命周期中通常累积的技术债务。”

选择并实施正确的CI / CD系统-并继续实施

容器安全技术提供商StackRox的资深开发工程师Josh Komoroske说,市场上的CI / CD系统可以为组织提供具体的价值,并且它们的使用表明工程/产品组织的健康程度。

“如果构建,测试和部署新功能变得微不足道,那么(一个)组织应对变化的能力就会大大提高,”负责StackRox的CI / CD流程的Komoroske说。 “如果要花几周甚至几个月的时间才能在您的客户面前取得成功,那么其他人将能够并会做得更好。”

但是,公司在研究支持CI / CD流程的软件时需要进行足够的研究。 “由负责产品技术指导,寿命或健康状况的人专门花一些时间研究生态系统和可用的解决方案,” Komoroske说。 “请他们征求该产品开发人员的意见。 他们将成为CI / CD系统的主要客户,因为他们每天都会处理它。”

[ 也在InfoWorld上:什么是Scrum Master? 敏捷开发领导者定义 ]

一旦组织选择了这样的系统,就需要避免废弃的问题。 “这些解决方案中的大多数都可以免费试用,并且可以与GitHub之类的平台集成,” Komoroske说。 “设置一个集成,并使其开始构建某些东西。 自动执行构建,测试或部署。 当人们看到这些系统为其工作流程提供价值时,他们自然会开始将更多任务迁移到它们上。”

将全面的自动化测试与手动批准相结合

Kenefick说,连续交付基本上由四个主要部分组成:

  • 重新架构以进行隔离
  • 测试自动化
  • 创建自动化流程管道
  • 自动化环境的供应和配置

他说:“这四个组成部分相当笼统,可能需要许多单独的实践来实现它们。”

例如,为了使测试自动化,团队将专注于测试优先方法,以加强自动化单元测试和功能测试的创建。 创建一组自动回归,性能和安全性测试; 并进行自动化测试,以确保正确配置了环境和业务流程平台。

Kenefick说:“没有任何一项测试比其他测试更重要,这都是非常重要的。” Kenefick说:“并且应该与其他质量实践相结合,例如使用静态分析工具,确保通过拉动请求进行同行评审以及使用持续集成管道。”

Quint说,确保在部署过程中的关键时刻有手动批准步骤。 他说:“手动批准步骤可以防止未经测试或未经批准的代码进入生产环境或更高的测试环境。” “这还使您可以控制代码到达关键环境的时间。”

[ 也在InfoWorld上:Devops最佳实践:应该采用的5种方法 ]

跟踪指标以确保CI / CD成功

与大多数其他技术和流程部署一样,CI / CD并非“一劳永逸”的主张。

“在构建/测试/部署周期中,可以洞悉时间和脆弱性,” Komoroske说。 “确定优化和改进的领域和机会。 快比慢要好,但是可靠性和正确性要比速度快。”

Komoroske说,CI / CD流程和相关工具应被视为“力量倍增器”,从减少工程设计,测试时间和缩短产品上市时间方面获得回报。

通过采用CI / CD,组织可以在开发和工程上实现可衡量的改进,并且他们应该衡量这些改进并随时间进行性能比较。

协作软件提供商Altimetrik的工程主管Farid Roshan说:“ Devops建立在持续学习和改进的前提下,大多数组织在采用CI / CD的初期就忽略了它。” 他说,公司应该在CI / CD工具上进行数据清单,以帮助确定在整个开发过程中要衡量的关键绩效指标,绩效目标和分析。

[ 同样在InfoWorld上:如何将测试自动化与敏捷和devop结合使用 ]

了解采用CI / CD的业务驱动力,并考虑未来需求

对于组织而言,重要的是要理解为什么它实际上需要采用CI / CD,以便组织的开发团队能够建立必要的能力,以确保实现关键目标。

“正确完成后,CI / CD可以改善   开发人员的生产力,交付框架的优化,运营效率和敏捷转换。” Roshan说。

Roshan说,第一代CI / CD平台是作为业务流程服务开发的,该服务将整个产品生命周期中的流程连接起来,以提高生产率。 但是,根据开发代码所需的时间,这样的平台可能不会产生强大的投资回报(ROI)。

Roshan说:“现代CI / CD功能采用模块化架构,允许采用“即插即用”采用模型,并具有可配置的管道,以支持各种交付框架。 适当地将流水线作为代码实现,可使工程团队开发高级功能以满足业务当前的需求。 但是预测将来的需求也很重要。

“为您的业务目标未来状态开发CI / CD功能,” Roshan说。 “在基于现有流程的筒仓中采用devops CI / CD将导致[工具采用]分散,缺乏标准化,并且将为实现交付敏捷性提供最小的ROI。 这种失误会在整个企业中产生连锁React。”

[ 通过InfoWorld Daily新闻通讯了解软件开发,云计算,数据分析和机器学习方面的最新发展 ]

在任何有意义的地方实现自动化

Yasar说,作为CI / CD的一部分,组织应该使可以自动化的东西自动化,并清楚地描述不能自动化的事情。 他说:“自动化是devop的Struts之一,并且是从实现CI / CD的devops实现中获得的主要好处之一。”

通过“基础架构即代码”(IaC)的实践,SEI推荐的敏捷开发方法成为可能-使用devops团队用于源代码的相同版本控制方法来管理基础结构组件(例如网络,虚拟机和负载均衡器),并通过自动化各种环境。

Yasar说:“组织可以采用流程和实践来启用IaC,包括配置管理,环境供应等。” “目标是将所有自动化程序都视为代码,并存储在安全的版本控制系统中。”

理想情况下,基础结构代码与应用程序代码存储在同一存储库中,操作团队和其他利益相关者可以随时访问它。

翻译自: https://www.infoworld.com/article/3513499/how-to-get-started-with-cicd.html

ci /cd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值