DevOps|青训营笔记

88 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

课程里关于敏捷开发和DevOps的内容一闪而过,没什么详细介绍,因此查阅资料在此稍作补充。

主要开发流程:

需求 考虑客户具体需求,明确软件产品所需、所能达到的目标

设计 根据需求考虑如何去实现需要的产品功能

编程 将前期设计开发转换成计算机可运行的程序

测试 对获得的产品进行用例测试,验证其是否达到目标、运行时是否稳定等的过程

维护 维持上线软件运行稳定,对软件产品进行二次升级等

总之,软件开发上线流程就是一个开发——测试——运维的过程。

而开发模式的发展是瀑布式开发——敏捷开发——DecOps的过程。

瀑布式开发(传统的软件开发模式):等一个阶段所有工作完成之后,再进入下一个阶段。在三个阶段中,开发、测试、运维工程师各司其职,一方做好了就交给下一个。这种方法最常见,但是很明显三者之间各干各的,且不论三者之间思维都不一样(容易打起来),客户的需求很可能不是一成不变的,万恶的甲方稍微改改需求,在这种一步一迈的方式下就得推倒重来,效率太低。

敏捷开发:在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目各自开发各自测试,在部署阶段集成上线使用。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目。把瀑布式开发的大步向前改成一路小跑,很显然这对快速变化的需求尤其有效,被划分出的小项目更容易针对需求进行修改,其他部分则可以正常运行。

虽然敏捷开发大幅提升了软件开发的效率和应对需求变化的能力,但优势仅限于开发环节。被项目反复修改的摁在地上的运维工程师可谓痛苦不堪(笑)

DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA) 部门之间的沟通、协作与整合。——定义来自维基百科

DevOps包含development和operations(Dev+Ops),是开发和运营维护的总称。运维人员会在项目开发期间就介入到开发过程中,根据开发人员使用的系统架构和技术路线制定适当的运维方案。

总结下,比较直白的理解就是,瀑布式开发=开发测试运维各做各的,敏捷开发=开发+测试联合->运维,DevOps=开发测试运维混在一起彼此了解。