华为云DevOps系列之 —— 持续开发与集成(一)持续集成理念、方法及实践
【摘要】 华为云DevOps系列之 —— 持续开发与集成(一)持续集成理念、方法及实践
持续集成
1. 概念
- 持续集成是一种软件工作流程,是将所有软件工程师对于软件的工作副本持续整合到共用主线的一种举措
2. 基本原则
- 只维护一个源码仓库
- 自动化 build
- 让你的的 build 自行测试
- 每人每天都要向 mainline 提交代码
- 每次提交都应在集成计算机上重新构建 mainline
- 保持快速 build
- 在类生产环境中进行测试
- 让每个人都能轻易获得最新的可执行文件
- 每个人都能看到进度
- 自动化部署
- 构建失败之后不要提交新代码
- 提交前在本地,或者持续集成服务器,运行所有测试
- 提交测试通过后再继续工作
- 回家之前,构建必须处于成功状态
- 时刻准备着回滚到前一个版本
- 在回滚之前要规定一个修复时间
- 不要将失败的测试注释掉
- 为自己导致的问题负责
- 测试驱动的开发
3. 持续集成的价值
- 软件项目主要面临问题
- 没有一致的可部署软件
- 项目后期发现缺陷,难以修复
- 低品质的软件产品
- 项目缺少可见性
- 持续集成可实现价值
- 减少项目风险
- 减少重复过程
- 在任何时间任何地点生成可部署软件
- 增强项目可见性
- 对开发团队的软甲产品建立起更强大的信息
4. 持续集成的流程
5. 持续集成的主流工具
- 代码托管
- GitHub
- CodeHub
- gitee
- 编译构建
- APACHE ANT
- Maven
- Gradle Build Tool
- 集成测试
- Jenkins
- CodeShip
- TeamCity
6. 企业实践(Facebook)
- Facebook 先将变更经过一系列的自动化测试之后,从内部推送到 Facebook 员工(即图中C1),在此阶段发生的任何问题都会认为是工作阻塞,高优先级的去解决
- 金丝雀部署(图中C2),只将变更推送到生产环境的 2%的服务器,依靠连续的监测来发现问题,若一切顺利,这些变更将 100%地部署到生产环境中(即图中C3),否则,如果在任何时候出现问题,所有流量都会被回滚至之前的版本
金丝雀发布:实时流量逐渐从旧版本迁移到新版本直到更新生效
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯。同时,我在公众号中分享了精心整理的一些视频资料(包括 Python全栈教程、AI教程、前端、数据库等),大家回复相应关键词即可获取网盘视频链接,感谢大家的关注😊
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)