项目开发模式
项目开发模式
瀑布模型(Waterfall Model)
瀑布模型是一种顺序型开发模式,各个阶段按照顺序依次进行,一个阶段完成后才能进入下一个阶段。这种模式适用于需求稳定、开发周期长的项目

敏捷开发(Agile Development)
敏捷开发是一种迭代型开发模式,强调团队合作、用户参与和快速响应变化。敏捷开发方法包括Scrum、XP、Lean等,适用于需求不稳定、开发周期较短的项目

DevOps
DevOps是一种将开发和运维流程整合在一起的开发模式,强调自动化和持续交付。DevOps适用于需要频繁部署和更新的项目

三者对比

持续集成
持续集成 (Continuous integration,简称 CI) 指的是,频繁地(一天多次)将代码集成到主干
它的好处主要有两个:
- 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
- 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,**代码集成到主干之前,必须通过自动化测试**。只要有一个测试用例失败,就不能集成。
Martin Fowler 说过,”持续集成并不能消除 Bug,而是让它们非常容易发现和改正。”
与持续集成相关的,还有两个概念,分别是持续交付和持续部署
持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段
持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的
持续部署
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,**自动部署**到生产环境
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段
持续部署的前提是能自动化完成测试、构建、部署等步骤
CI/CD流程
为了保证团队开发人员提交代码的质量,减轻软件发布时的压力;持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

实现流程:
- 开发人员持续将功能代码集成到公共功能集成分支,如: develop
- 当功能积攒到一定节点,需要进行线上项目升级,需要基于持续集成软件进行一键发布;
- 持续集成工具先对develop | master分支代码进行拉取更新,然后对最新功能代码进行清理、编译、测试、打包、打镜像、部署等动作;
- 如果构建失败,则发送邮件提醒代码提交人员或管理员;
要实现上面流程,咱们需要了解一款支持持续集成的软件:Jenkins