DevOps笔记-01:软件交付面临的问题、软件工程的三个发展阶段、什么是DevOps?
目录
1、软件交付面临的问题
2、软件工程的三个发展阶段
3、什么是DevOps?
4、总结
1、目前软件交付面临的问题
(1)跨部门沟通成本高:团队间沟通和协作的重要性一点也不亚于写代码、写文档、做测试之类的常规工作。
(2)不能快速持续交付高质量软件
2、软件工程经历的三个重要发展阶段
阶段一:瀑布开发模式
理念:以一种工程管理的方式来定义每个阶段(需求、开发、测试、运维),以及相应的交付产物和交付标准,通过一种重流程,重管控,按照计划一步步推进整个项目的交付。
弊端:软件开发初期就试图确定项目的目标、范围以及实现方式,但是这个时候往往是我们对用户和市场环境信息了解最少的时候,这个时候做出来的决策往往有很大的不确定性。前期投入大量资源,难以达到预期效果,导致软件交付延期。
阶段二:敏捷开发模式
理念:1)将一个大的目标不断拆解,把它变成一个个可交付的小目标,然后以不断迭代,小步快跑的方式持续开发;2)将测试工作从研发末端提前到整个开发活动中,对开发交付的内容进行持续验证,保证每次可交付的都是一个可用的功能集合。
弊端:不论开发和测试变的都快,软件交付的最后一道门(运维)决定了软件上线的时间。运维一句“现在没到发布窗口”让多少新开发的功能倒在了上线的门槛上。
阶段三:DevOps开发模式
DevOps 最开始想要打破的就是开发和运维之间的对立和隔阂;之后发现在整个软件交付过程中,不仅只有开发和运维,业务也是重要的一环,这样诞生了BizDevOps;再后来安全也介入整个软件开发过程,在每个过程中注入安全反馈机制,来帮助团队在第一时间应对安全风险,这样诞生了DevSecOps。
3、什么是DevOps?
DevOps(开发 Development 与运维 Operations 的组合词)是一种文化、一场运动或实践,强调在自动化软件交付流程及基础设施变更过程中,软件开发人员与其他信息技术(IT)专业人员彼此之间的协作与沟通。它旨在建立一种文化与环境,使构建、测试、软件发布得以快速、频繁以及更加稳定地进行。
DevOps 是通过平台(Platform)、流程(Process)和人(People)的有机整合,以 C(协作)A(自动化)L(精益)M(度量)S(共享)文化为指引,旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。(这个定义来至石雪峰老师)
PS:DevOps 就是大家统一搞一套标准,谁都认识,谁都认可;标准统一了,事情就好办了,也就是让大家认同价值交付是共赢的事情。寻找志同道合的一帮人,达成共识,实现目标,研发,测试,运维的所做所为,这很DevOps。
4、总结
软件研发交付能力和业务需求快速多变之间的矛盾,正是软件研发过程面临的问题。要解决这个问题可以通过:
(1)引入全栈工程师
全栈工程师可以避免职能和组织划分带来的沟通成本,很多小企业开始推崇全栈工程师(全干工程师)。
(2)通过平台来解决
全栈工程师不适用职能、组织划分明确的大公司,一般通过平台来解决上面问题,而DevOp正式这种理念。平台和流程的自动化可以保证效率的提高,推动这一反馈闭环形成的还是人,但是建立有效的流程和机制是非常重要的手段,这会潜移默化的影响人的行为,行为建立习惯,习惯构建文化。软件开发过程的改进,除了依赖于技术进步,还依赖于流程、理念、文化等全方位的改进。
总结
以上是生活随笔为你收集整理的DevOps笔记-01:软件交付面临的问题、软件工程的三个发展阶段、什么是DevOps?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: shell实例第23讲:每天定时备份ng
- 下一篇: DevOps笔记-02:DevOps与微