一、DevOps
定义:
DevOps 是 "Development"(开发)和 "Operations"(运维)两个词的组合,代表了一种文化、运动或实践,其目的是缩短软件开发生命周期中的系统开发与系统运维之间的隔阂,从而实现更高效的软件交付和更高的软件质量。
核心概念:
自动化、持续集成、持续交付等。
目标:
通过改进和优化开发与运维团队的协作,来更快速、更频繁且更可靠地构建、测试和发布软件
二、CI (持续集成 Continuous Integration)
定义:
持续集成是一种软件开发实践,开发人员经常需要将代码集成到共享的主分支或代码库中,而每次集成要通过自动化的构建(包括编译、测试等步骤)来验证,从而尽早发现并定位错误。
关键要点:
经常性地向主分支提交代码
自动执行构建和测试,确保每次提交都不会破坏现有的功能
尽早发现并修复错误,使得维护成本降低
相关工具:DevTools、Jenkins等。
三、CD
CD 可以代表两个相关但略有不同的概念:持续交付(Continuous Delivery)和持续部署(Continuous Deployment)。尽管它们都是 CI(持续集成)的自然延伸,但它们在实施时有所不同。简而言之,持续交付确保你可以随时部署,而持续部署确保每次正确变更都能自动部署。
1.持续交付 (Continuous Delivery):
定义:
这是一种软件开发实践,确保软件总是处于可以部署到生产环境的状态。一旦通过了所有的 CI 流程,新的代码更改就可以被认为是准备好部署到生产的。但这一部署步骤通常还需要手动触发。
关键要点:
自动化测试与构建后,生成的构建产物(例如:jar, war, docker容器)准备好可以被手动部署到生产环境
确保软件始终处于可部署状态
短时间内频繁地进行小的发布,减少发布风险
<