Redian新闻
>
一文教你分清持续集成,持续交付,持续部署

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

公众号新闻

总结

   持续集成(CI)是一种开发实践,其中开发人员经常(最好每天几次)将代码集成到共享存储库中。然后可以通过自动构建和自动测试来验证每个集成。尽管自动化测试不是严格意义上的CI的一部分,但通常隐含了它。
  定期集成的主要好处之一是,您可以快速检测到错误并更轻松地定位它们。由于引入的每个更改通常很小,因此可以快速查明引入缺陷的特定更改。
    近年来,CI已成为软件开发的最佳实践,并遵循一系列关键原则。其中包括版本控制,构建自动化和自动化测试
   此外,持续部署和持续交付已成为最佳实践,可让您随时随地部署应用程序,甚至在每次引入新更改时甚至将主代码库自动推入生产环境。这使您的团队可以快速行动,同时保持可以自动检查的高质量标准。 

CI/CD应用场景:

  • 开发人员将本地代码上传gitlab版本服务器
  • jenkins通过webhook插件自动到gitlab服务器拉取最新代码
  • 通过docker-maven-plugin插件自动编译代码
  • 将自定义镜像上传docker私服仓库
  • k8s集群自动拉取最新版本镜像
  • 自动化部署整个项目
  • 用户通过nginx负载均衡访问整个项目  

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

持续集成(CI)  

 是一种开发实践,要求开发人员每天多次将代码集成到共享存储库中(GitLab)。

开发人员通常使用称为CI Server的工具来进行构建和集成。CI要求自检代码。这是用于自我测试以确保其按预期工作的代码,这些测试通常称为单元测试。集成代码后,当所有单元测试通过时,将得一个最新的的代码版本。这表明他们已经验证了自己的更改已成功集成到一起,并且代码按测试期望的那样工作。 

从图例上来看持续集成的流程就十分清晰了:
  • 开发人员提交代码到 Source Repository (源代码仓库),并通过 git hook 等
  • 触发 CI Server(持续集成服务器)的相关功能。执行 编译 -> 测试 -> 输出结果的流程,
  • 向开发人员反馈结果的 report
可以看出,持续集成的核心在于确保新增的代码能够与原先代码正确的集成。与后续要介绍的持续交付以及持续部署,其最主要的差别也就在于其目标不同

连续交付(CD)  

是一种软件工程方法,团队可以在短时间内将软件部署到生产环境,确保在任何时候可靠地发布软件,并且在发布软件时可以手动进行。

持续交付意味着每次更改代码,集成并构建代码时,他们还将在与生产非常相似的环境中自动测试该代码。我们将此部署到不同环境并在不同环境上进行测试的过程称为部署管道。部署管道通常具有开发环境,测试环境和过渡环境,但是这些阶段因团队,产品和组织而异。 

与持续集成相比,持续交付的侧重点在于交付,其核心对象不在于代码,而在于可交付的产物。由于持续集成仅仅针对于新旧代码的集成过程执行了一定的测试,其变动到持续交付后还需要一些额外的流程

可以看到,与 持续集成 相比较,持续交付 添加了 Test -> Staging -> Production 的流程,也就是为新增的代码添加了一个保证:确保新增的代码在生产环境中是可用的 。

在这一增加的流程中,Test 环节不仅仅包含基本的单元测试,还需要延伸到更为复杂的功能测试以及集成测试等。在这里,Staging 指的是 类生产环境 ,其尽可能的对真实的网络拓扑、数据库数据以及硬件设备等资源进行模拟,从而为测试人员反馈代码在生成环境中的可能表现。流程中每一个环节的执行结果都会对开发人员进行反馈,每一个出现的错误都会导致版本的回滚。当测试完毕确认无误之后,将由相关人员对其进行手动部署到生产环境。

持续部署  

持续部署意味着:通过自动化部署的手段将软件功能频繁的进行交付
在这种实践中,团队负责人所做的每一项更改都通过了所有测试阶段,并自动投入生产。要实现连续部署,团队负责人首先需要进行连续交付。
可以看到,同持续交付相比 持续集成 的区别体现在对 Production 的自动化。从开发人员提交代码到编译、测试、部署的全流程不需要人工的干预,完全通过自动化的方式执行。这一策略加快了代码提交到功能上线的速度,保证新的功能能够第一时间部署到生产环境并被使用。

DevOps概述  

介绍完了持续集成、持续交付和持续部署三大件,接下来在讲讲 DevOps。与三大件不同,DevOps 更偏向于一种对于文化氛围的构建

DevOps 一词本身是对于 development 以及 operation 两个词的混合,其目的在于缩短系统开发的生命周期,在这过程中发布特性、修复bug以及更新均被紧密的结合

听起来似乎有点玄乎,可以这样理解:DevOps 也即是促使开发人员与运维人员之间相互协作的文化

DevOps 的概念似乎与持续交付的概念有些类似,两者均旨在促进开发与运维之间的协作,但是实际上两者差别很大:DevOps 更偏向于一种文化的构建,在 DevOps 文化指导下,团队中将包含了具有不同技能的人员(开发、测试等),并通过自动化测试与发布的手段,更快、更高质量的生产软件

在传统的团队组织方式中,开发人员与运维人员之间是割裂开的,软件开发流程被分割为多个独立环节,分别由不同的人员执行。这使得软件开发过程中需要付出高昂的沟通成本,层层手动的流程将大量的时间耗费在了重复的劳动中。

在 DevOps 的指导下,不同技能的人员处在同个团队中,为了一个共同的软件开发目标而工作,更好的协同工作与自动化的手段能够优化整个 Code -> Build -> Test -> Release -> Operate -> Code 的循环。这一理念看起来很美,用图画来说明就构成了一个和谐友好的大圈。

DevOps文化通常与持续交付相关联,因为它们都旨在增强开发人员和运营团队之间的协作,并且都使 用自动流程来更快,更频繁,更可靠地构建,测试和发布软件。这些都是像我们这样的人想要的东西。尽管开发团队经常没有看到流程改进的最直接好处,但CI,CD和DevOps对我们其他人来说却有很多好处。简而言之,我相信实践CD并拥护DevOps文化的组织将更频繁地向其客户提供更有价值,更可靠的软件。  

链接:https://blog.csdn.net/m0_58026506/article/details/120039743

(版权归原作者所有,侵删)



微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
法拉第未来开始交付,贾跃亭要翻身了?比亚迪腾势N7七月中旬开启交付,双枪快充+多种车机系统兼容071巨舰正式交付,泰国却用全套西方设备,为何不用中式设备?BMP-3步兵战车生产提速大批交付,俄罗斯展示军工快速生产能力百集视频专题《大话集成电路》第三章:集成电路的基础工艺微软再炸场!Copilot与Windows强悍集成,与OpenAI标准互通 ,开建AI超级生态一文教你选购防晒霜!开启二阶段交付,法拉第未来称8 月中旬向首位用户交车天气热,小心奶粉变质!简单3招教你分辨特斯拉宣布重磅车型今年交付,马斯克要让 Model Y 冲击全球最畅销车型又一家百强房企司法重整,部分房屋尚未交付,管理层:深表歉意!【应用引领集成电路产业高质量发展】第三届中国集成电路设计创新大会暨无锡IC应用博览会(ICDIA 2023)7月即将在无锡召开都快想退休了,才发现/觉得我入错行了!文革记忆 -- 红小兵追疯子感染8亿国人的幽门螺杆菌,一文教你如何杀死它!毛军发院士 | 从集成电路到集成系统读书的目的,不仅仅是让你分清楚鸭脖还是老鼠为了减肥不吃晚饭,真的靠谱吗?一文教你正确减肥马斯克称征收富人税只会伤害中低收入群体;贾跃亭再度推迟交付,并需要再融资3亿美元;马云的内部指示:阿里电商应该回归淘宝丨邦早报美国电压是多少?出国、海淘前各国电压和插头先分清华为盘古大模型将在 7 月重大升级;Keep 通过港交所聆讯;FF 延迟交付,贾跃亭发文致歉 | 极客早知道强占兄弟孕妻澳洲华人火锅老板与爆料人持续交锋LinkedIn采用协议缓冲区进行微服务集成,将延迟降低了60%贾跃亭交车了?售价超200万,FF 91首辆新车交付,盘前一度大涨…一张表,了解大奖的世界贾跃亭造车梦成,200万一辆的FF91开启交付!但还有未履行金额超92亿!还债之路遥遥无期英国不同长居身份你该选哪个?长居/永居/公民你分清了吗?华中科大初步复现韩国室温超导材料,京东回应与永辉接洽收购事宜,推特大楼X标志被拆除,法拉第未来启动交付,这就是今天的其他大新闻!特斯拉降价,法拉第未来开启交付,抖音进军自营跨境电商,杭州亚运会电竞门票开售,这就是今天的其他大新闻!持续集成的关键:产品反馈驱动实践突发!ChatGPT 紧急暂停 Bing 集成,下线搜索功能冬季来袭,澳洲遭流感、新冠、RSV三重夹击,还有普通感冒在暗中作祟!一文教你区分判断!空巢日记摘要2005一文教你玩转临床指南app,快速get最新医学知识!川普或以独立人身份参选
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。