数字化转型从持续集成和持续交付开始

来源 :计算机世界 | 被引量 : 0次 | 上传用户:jjdoris1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

  在软件设计和开发中,提升速度的关键是被称为CI/CD的一系列操作原则和实践,因为其整合了持续集成(CI)和持续交付(CD)。CI/CD让软件开发团队能够更加频繁和可靠地交付代码更改,从而能够更快地满足业务及其客户的需求。
  持续集成是一种编码哲学和实践,旨在推动开发团队进行少量更改,并经常性地将代码放入版本控制存储库进行检查。鉴于目前大多数应用程序都要求团队使用不同的平台和工具来开发代码,因此团队需要有一种方法来集成和驗证其更改的结果。
  持续集成的目的是创建一种统一的自动化方式来构建、打包和测试软件应用程序。集成过程中的一致性使得开发团队可以更为频繁地修改代码,从而强化协作和提升软件质量。
  持续集成之后的持续交付可使应用程序被自动交付到指定的基础设施环境中。如今,除了在生产环境(包括测试环境)外,大多数开发团队还在多种其他环境中工作,持续交付可确保更改后的代码能够被自动推送到这些不同的环境中。
  持续集成和持续交付需要连续测试,因为目标是向最终用户交付高质量的且安全的应用程序和代码。持续测试常常被作为自动化回归、性能等测试的一部分。
  持续集成和持续交付(CI/CD)包含了相同的文化、操作原则以及一系列可加速软件开发过程的实践。其实现途径被称为CI/CD管道,被认为是DevOp团队的最佳实践之一。
  行业专家称,由于希望改善内部或客户使用的软件应用程序的设计、开发和交付,越来越多的企业开始采用CI/CD。
  市场研究机构Gartner的副总裁兼分析师Sean Kenefick说:“我们肯定会看到CI/CD使用量大大增加的情况。我个人也一直都在不断进行开发、测试和发布这方面的问题。”
  Gartner在最近的一项名为《企业敏捷性》的调查报告中指出,越来越多的团队在进行敏捷开发,这些敏捷团队在持续集成、自动化验收测试和开发方面的执行率显然更高。
  Kenefick说:“我认为CI是创建自动化管道的天然起点,这也正是团队的起始领域。CD中的困难是需要实现应用程序的自动化测试和重构,以便少量功能也可以单独被测试和发布。”
  云咨询公司ServerCentral Turing Group的云解决方案高级主管Josh Quint说,他所在的公司参与的所有新软件项目都使用了一定程度的CI/CD。
  这种趋势背后的核心驱动力是无服务器计算基础设施需要CI/CD集成,安全需求要求限制开发人员登录到生产基础设施的权限,以及敏捷方法需要更快的部署和测试周期。
  CI/CD目前已经在许多参与开发的企业中成为了主流策略。卡内基梅隆大学软件工程学院(SEI)负责持续部署能力的技术总监Hasan Yasar说:“持续集成、全面自动化测试和持续交付之类的技术专长曾经一度只被一些紧跟潮流的初创公司所掌握,如今传统企业也已可以成功部署。”
  以下是一些关于实施和维护CI / CD策略的建议。

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


  Yasar说,让开发项目的所有利益相关者在项目之初就尽早参与到项目之中是一个好主意。例如,IT运营人员在架构决策中拥有发言权,因此开发人员可以在经过IT批准的基础设施上进行开发。
  Yasar说:“全部决策都应该由所有的利益相关者做出,这样一来所有重大决策都可以交由专家完成。这种做法大大减少了整个项目生命周期中累积大量技术欠账。”

选择并部署正确的CI/CD系统


  容器安全技术提供商StackRox的资深开发工程师Josh Komoroske说,市场上的CI/CD系统可以为企业带来具体价值,其使用情况可以反映出工程/产品企业的健康程度。
  Komoroske负责StackRox的CI/CD流程,他说:“如果构建、测试和部署新功能变得很便捷,那么公司应变能力将会得到极大提高。如果要花上几周甚至几个月的时间才能在客户面前取得成功,那么客户就会选择其他能够做得更好的企业。”
  在研究支持CI/CD流程的软件时,企业需要进行足够的研究。Komoroske说:“企业要有负责产品技术指导、寿命或健康状况的人来专门花费一些时间研究生态系统和可用的解决方案。请他们征求产品开发人员的意见。这些人将成为CI/CD系统的主要用户,因为他们每天都要处理它们。”
  一旦企业选择了这样的系统,那么就需要避免弃用的问题。Komoroske说:“这些解决方案中的大多数都可以免费试用,并且能够与GitHub之类的平台进行集成。设置一个集成并使其开始构建某些东西,实现构建、测试或部署的自动化。当人们看到这些系统能够为其工作流程提供价值时,他们自然会将更多任务迁移到上面。”

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


  持续交付基本上由四个主要部分组成:
  ·针对隔离进行重构
  ·自动化测试
  ·创建自动化流程管道
  ·实现环境准备和配置的自动化
  这四个组成部分相当笼统,可能需要许多单独的实践来实现它们。例如,为了实现测试自动化,团队应专注于以测试优先的方法,以加强自动化单元测试和功能测试的创建;创建自动回归、性能和安全性测试;进行自动化测试,以确保环境和业务流程平台被正确配置。
  Kenefick说:“没有任何一项测试比这些测试更重要。与此同时还应该与其他质量实践相结合,例如使用静态分析工具,确保同行评审以及使用持续集成管道。”   Quint指出,要确保在部署过程中的关键时刻有手动批准的环节。他说:“手动批准环节可防止未经测试或未经批准的代码进入生产环境或更高的测试环境。这样还可使你能够控制代码到达关键环境的时间。”

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


  与大多数其他技术和流程部署一样,CI/CD也并非一劳永逸。Komoroske说:“我们要对构建/测试/部署周期的时间和脆弱性有深入的了解,这样可以确定优化和改进的领域与机会。尽管在速度方面快比慢要好,但是可靠性和正确性的重要性要高于速度。”
  CI/CD流程和相关工具应被视为“力量倍增器”,其可缩短工程设计、测试和产品上市时间,从而为企业带来回报。企业可以通过采用CI/CD在开发和工程上实现可衡量的改进,通过衡量这些改进再根据时间对性能展开比较。
  协作软件提供商Altimetrik的工程主管Farid Roshan说:“尽管我们都知道DevOps是在持续学习和改进的前提下建立起来的,但是大多数公司在采用CI/CD的早期就忽略了这一点。” 他指出,企业应该在CI/CD工具上处理数据清单,以帮助确定在整个开发过程中要衡量的关键绩效指标、绩效目标和分析。

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


  对于企业而言,重要的是要理解为什么需要采用CI/CD,以便企业的开发团队能够建立必要的能力,从而确保实现关键目标。
  Roshan说:“如果工作恰当,CI/CD可以提高开发人员的生产力,优化交付框架,提高运营效率和敏捷转换。”
  第一代CI/CD平台是作为编排服务开发的,它能够将整个产品生命周期中的流程连接起来,以提高生产效率。但是考虑到开发代码所需的时间,这样的平台可能不会产生良好的投资回报(ROI)。
  Roshan表示:“现代CI/CD功能采用的是模块化架构,支持即插即用模式,并具有可配置的管道,能够支持各种交付框架。”适当地将管道作为代码进行部署可使工程团队开发高级功能,从而满足业务的当前需求。
  尽管如此,预测未来需求也很重要。Roshan说:“企业要根据业务目标的未来发展开发CI/CD功能。在基于现有流程的孤岛中采用DevOps CI/CD会导致工具的部署出现分散化和缺乏标准化,这样一来即便实现了交付敏捷性,其所实现的ROI也是最低的。这种失误会在整个企业中产生连锁反应。”

全面实现自动化


  Yasar说,作为CI/CD的一部分,企业应使能够实现自动化的东西都实现自动化,并对不能自动化的東西进行清楚的描述。他说:“自动化是DevOps的支柱之一,也是具有CI/CD功能的DevOps可以实现的主要优势之一。”
  SEI推荐的敏捷开发方法是使用“基础设施即代码”(IaC)并对各种环境实现自动化。在基础设施即代码中,基础设施组件(例如网络、虚拟机和负载均衡器)的管理方法与DevOps团队管理源代码版本的方法相同。
  Yasar说:“企业可以通过流程和实践来启用IaC,包括配置管理、环境供应等。目标是将所有自动化程序都视为代码,并存储在安全的版本控制系统中。”
  理想情况下,基础设施代码与应用程序代码存储在同一存储库中,操作团队和其他利益相关者可以随时访问它。
  本文作者Bob Violino为Computerworld、CIO、CSO、InfoWorld和Network World等网站的特约撰稿人。
  原文网址
  https://www.infoworld.com/article/3513499/how-to-get-started-with-cicd.html?nsdr=true
其他文献
2012年高考文综天津卷以近代城市化进程为主题,设计了一道考查天津“地方史”内容的综合题,赋分高达19分,不论从题量、篇幅,还是考查内容、目标上看,均为历年地方史试题之最,引发了人们对“地方史”教学和考试的思考。现结合试题就其特点和考查目标试做简要分析。  一、精选天津史料 创设试题情境  按照现代考试测量理论,“任何试题要求考生完成的思维任务或操作活动,都是置于一定的背景材料之中的”[1]。注重
2012年5月11—14日,适值山西大学建校110周年、山西大学中国社会史研究中心成立20周年之际,“改革开放以来的中国社会史研究”国际学术研讨会暨第十四届中国社会史学会年会在太原隆重召开。本次会议由中国社会史学会、山西大学中国社会史研究中心、山西省历史学会主办,山西大学中国社会史研究中心承办。来自海内外的学者120余人参会,提交论文97篇。大会在开闭幕式的主题发言环节中,特邀田居俭、宋德金等20
新课程改革推行以来,历史课堂的学习目标、教学方式及教学内容发生了很大变化,探究性学习已经成为历史常态课的学习方式。但由于探究性学习课堂中师生自由发挥的空间很大,这样什么样的历史课才是好课,似乎很难找到一个公认的标准,黄牧航老师说:“对于一节课无论是运用哪种教学评价理论与方法,有三个问题是授课者所绕不过去的。第一是教什么?第二是怎样教?第三是持什么样的观念去教?……以新的课程观来理解教学,教师是课程
关键词 借题发挥,史事,系统化  中图分类号 G63  文献标识码 B  文章编号 0457—6241(2010)07—0010—03  2009年高考广东历史卷第4题:  中国古代,朝廷有时将不在户口册内且因此不纳税的人称为“盗贼”。这反映当时朝廷  A.要求民众纳税  B.只要求部分民众纳税  C.不要求民众纳税  D.只要求部分“盗贼”纳税  答案:A  这是一道不错的试题。新课程教材打破通
?眼关键词?演历史思维,历史素养,探究要素  ?眼中图分类号?演G63 ?眼文献标识码?演B ?眼文章编号?演0457-6241(2014)11-0061-05  当前的美国中学历史课堂,正在着力应对如何提高学生主动参与性和开展有意义学习的挑战,广大历史科或社会科教师、历史学家和教育专家们,为教好每堂课也着实下了一番工夫。“做历史”(Doing History)可能是在中学历史课堂中流行的、时髦的
[关键词]历史课堂,巧妙,五四运动,问题设置  [中图分类号]G63 [文献标识码]B [文章编号]0457-624l(2016)05-0061-04  历史课堂教学中,通过设置问题引导学生开展学习活动是一种常见的教学行为,已经为广大历史教师重视并付诸实施。课堂设问是一个常讲常新的话题,“历史教师课堂提问技艺的高低,是教师课堂教学艺术的主要表现”,因此,课堂设问既是教学技巧,也是教学艺术。技术贵在
列强的中立及对革命军交战团体身份的默认,是中华民国寻求列强承认的前奏。就国际惯例而言,中华民国宣告成立时,清政府仍然是合法政权,在国际上代表中国。从中华民国成立到清帝逊位,属于过渡时期,不能简单视此一时期的拒绝承认为刁难与要挟。日本虽然主导了列强对中华民国的延迟承认,但在清帝逊位前日本并未就承认问题提出预案,是在英、俄等国的建议下,日本才开始认真关注承认问题,并先后两次提出倡议书。面对承认问题的困
[关键词]演雅典民主,监察,分析题  [中图分类号]G63[文献标识]B[文章编号]0457-6241(2015)07-0070-03  2014年高考福建省文科综合试卷第18题是这样设计的:  雅典城邦任何公职人员,无论地位多高,皆不能离开公民大会而擅自决定政务大事,他们都处于公民大会和五百人会议的经常督查监视之下,若公民大会认为他有失职守,皆依法惩处。这反映了古代雅典  A.最高权力机关由直接
【关键词】历史细节,感受历史,中国原始人类  【中图分类号】G63 【文献标识码】B 【文章编号】0457-6241(2013)23-0034-05  很多初中历史教师都有这样的困惑:学生平时对历史非常感兴趣,可为什么一到历史课上就昏昏欲睡?笔者认为,病因就在于很多教师忽视了初中学生对历史的“感受”。学生之所以喜欢历史,历史中一定有某一处细节打动了他们。一节成功的历史课不仅要使学生掌握知识,更重要
【关键词】开放性试题,图像证史,辩证思维  【中图分类号】G63 【文献标识码】B 【文章编号】0457-6241(2013)23-0039-04  开放性材料分析题近来已成高考常态题型,如2011、2012年新课标文综卷的第41题均为此种题型。此类题型通常旨在考查学生学习成果的复杂性,即学生如何建构学习要点以及数量,并根据学生在回答问题时的表现较为全面地判断考生所处的思维发展阶段,进而给予合理评