一、WHAT:人+流程+平台
DevOps:(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。可以把DevOps看作开发、技术运营和质量保障(QA)三者的交集。
同时增加项目管理的工具与流程,则可以帮助团队实现有节奏的高效性的产出。
二、WHY:为什么需要
1、响应迟缓:业务需求响应慢,错过最佳入场机会,丧失竞争优势。
2、不可持续:做一次实验成本高、时间长,业务创新试错机会少。
3、团队低效且低质:紧迫的时间限制下,动作变形,为赶时间交付半成品,不断在救火,导致只能压缩团队时间(尤其是测试时间)。
4、进度延期
5、需求变更频繁
6、开发混乱+职责不明确
7、发布问题多
PS:市面上没有适用于所有团队的标准流程和规范,但是基于新的思想和理念,可以实践出适合于我们自身团队的一套敏捷+DevOps的方式,是行之有效的解决方案。
三、HOW:怎么做
例如基于市面上成熟的工具平台来实现全生命周期管理,以tapd为例,同时还有云效等其他类似平台
1、项目管理:发布计划、需求、文档
2、开发管理:基于计划和需求创建迭代,任务,同时完成了人员分工和进度管理,整个过程中通过故事墙、燃尽图、甘特图等,可以清晰的看到任务完成情况、是否有偏差等,方便及时纠正
3、测试管理:测试计划、用例、缺陷管理
4、运维监控:服务器、网络、运行情况等监控
5、持续集成与交付:通过自动化工具,例如jenkins,自动持续构建、测试与发布
6、文档、WIKI:对整个过程的知识成功进行存档,同时也可以用于后续项目的借鉴参考