# CI/CD 概述
现代软件开发的需求加上部署到不同基础设施的复杂性使得创建应用程序成为一个繁琐的过程。当应用程序出现规模性增长,开发团队人员变得更分散时,快速且不断地生产和发布软件的流程将会变得更加困难。
为了解决这些问题,开发团队开始探索新的策略来使他们的构建、测试和发布流程自动化,以帮助其更快地部署新的生产。这就是持续交付和持续集成发展的由来。
CI 是指持续集成,CD 是指持续交付和持续部署。
- 持续集成(CI)
持续集成(Continuous Integration)是一个让开发人员将工作集成到共享分支中的过程,从而增强了协作开发。频繁的集成有助于解决隔离,减少每次提交的大小,以降低合并冲突的可能性。
为了鼓励 CI 实践,一个强大的工具生态已经构建起来。这些系统集成了 VCS 库,当检测到更改时,可以自动运行构建脚本并且测试套件。集成测试确保不同组件功能可以在一个组内兼容,使得团队可以尽早发现兼容性的bug。因此,持续集成所生产的构建是经过充分测试的,并且是完全可靠的。
- 持续交付和持续部署
持续交付(Continuous Delivery)和持续部署(Continuous Deployment)是在构建持续集成的基础之上的两种策略。
持续交付是持续集成的扩展,它将构建从集成测试套件部署到预生产环境。这使得它可以直接在类生产环境中评估每个构建,因此开发人员可以在无需增加任何工作量的情况下,验证 bug 修复或者测试新特性。一旦部署到 staging 环境中,就可能需要进行额外的手动和自动测试。
持续部署则更进一步。一旦构建在 staging 环境中通过了自动测试,持续部署系统将会自动将它部署到生产服务器上。换言之,每个通过测试的构建都是实时的,可供用户及早反馈。这使得团队可以不断发布新特性和修复 bug,并以其测试流程提供的保证为后盾。
- CI/CD 流程
- CI/CD 的优势
快速反馈回路
增加可见度
简化故障排除
软件质量更高
集成问题更少
有更多的时间专注于开发
# 前端工程化相关的工具
# 前端工程化的意义
简化流程
提高效率
保证质量
# 前端工程化的目标
自动化编译
前端模块化
定位静态资源
前端开发组件化
自动化部署测试配合版本库
自动化性能优化(前端架构开发下)