根据持续集成的设计,代码从提交到生产,整个流程:
提交--->本地测试---->构建(jenkins)---->测试----->部署---->代码回滚
1.持续集成
1)概念
在传统的软件开发中,集成过程通常在每个人完成工作后的项目结束时进行。整合通常需要数周或数月的时间,可能会非常痛苦.
持续集成是一种将集成阶段置于开发周期中较早的做法,软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
2)目的
让产品可以快速迭代,同时还能保持高质量。
它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
3)好处
快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
选择持续集成系统只是持续集成应用的其中一步,还需要建立合适的持续集成文化比如代码质量管控、测试文化等。做好持续集成,可为持续交付与持续部署打好坚实基础。
2.持续交互:
1)概念
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」.
给测试团队以供评审。如果评审通过,代码就进入生产阶段。
2)目的
持续交付用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期
3)好处
快速发布。能够应对业务需求,并更快地实现软件价值。
编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈;
高质量的软件发布标准。整个交付过程标准化、可重复、可靠
整个交付过程进度可视化,方便团队人员了解项目成熟度;
更先进的团队协作方式。从需求分析、产品的用户体验到交互 设计、开发、测试、运维等角色密切协作,相比于传统的瀑布式软件团队,更少浪费
3.持续部署
1)概念
持续部署是持续集成的下一步或者说更高阶段,指的是代码通过评审以后(或者是通过自动化测试以后),自动部署到生产环境。
持续部署是持续交付的最高阶段。这意味着,所有通过了一系列的自动化测试的改动都将自动部署到生产环境。
2)目的
代码在任何时刻都是可部署的,可以进入生产阶段
关于持续集成,持续交付还有持续部署比必成装修厨房:
持续集成:
装修厨房时我们需要铺地砖,如果把所有的地砖都切好再拿去铺就会发现:每一块地砖单独都是好的,但是实际铺地砖的时候,把所有地砖整合在一起,发现和厨房总体尺寸不匹配。边边角角的地砖需要重新切除,时间和物料成本增加。
持续集成就是要根据需要的吃粉莱切,今早发现尺寸变化,避免返工。
持续交付:
全部装修号之后房屋主任来眼周,各专功能都正常,但是水龙头的样式主任不喜欢,灶台的位置不满意,要求返工。
持续交付就是房屋主人随时查看进度,施工团队即时调整。
持续部署:
全部装好后发现灯不良,电路出现问题;冷热水装反了,管道有问题。这些问题要解决必须把地砖和墙砖拆掉----一个环节有问题,其他环节跟着返工.
持续部署要做的就是:任何安装完成即时测试,保证其正常工作。












网友评论