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?相关推荐
- 持续交付 devops_使用DevOps开始加速软件交付
持续交付 devops 一次又一次,我们听说公司借助DevOps实现了快速加速. 公司正在以每天的部署量来吹捧成功,共享每天10.50甚至100个部署的新基准. 在更成熟的组织中,例如LinkedIn ...
- 【虚幻4/UE4】学习笔记01——软件介绍、安装及界面
因为工作需要,一个完全零基础的小白开始学习UE4的征途开始啦~ 一.什么是UE4 UE4是一套为游戏开发者设计和构建优先.模拟和可视化的集成工具. 简言之,做游戏的软件. 二.UE4的功能 实时逼真渲 ...
- 《企业软件交付:敏捷与高效管理精要》——1.6 结论
1.6 结论 企业软件交付面临的压力在不断增长.要削减成本,同时又要对业务承担更大的责任,这些都要求企业软件交付机构在他们提供的系统和维护中加快创新步伐.企业软件交付的成功,在很大程度上取决于机构是否 ...
- 01.软件项目管理与敏捷方法——敏捷项目生命周期详解笔记
01.软件项目管理与敏捷方法--敏捷项目生命周期详解笔记 00.与其说是船还不如说是熟练的航行技术保证了成功的航行.--George William Curtis 01.敏捷项目是一个按照敏捷宣言宗旨 ...
- k8s笔记14--初次体验 开源云原生软件交付平台zadig
k8s笔记14--初次体验 开源云原生软件交付平台zadig 1 介绍 2 部署&测试 2.1 部署 2.2 测试 3 注意事项 4 说明 1 介绍 Zadig 是 KodeRover 公司基 ...
- CI/CD笔记:《持续交付:发布可靠软件的系统方法》
<持续交付:发布可靠软件的系统方法> 前言 软件交付的问题 配置管理 持续集成 测试策略的实现 部署流水线解析 构建与部署的脚本化 提交阶段 自动化验收测试 非功能需求的测试 应用程序的部 ...
- The Devops Handbook 读书笔记01
今天看了一下序,了解了一下Devops这本书是干啥的? The purpose of the DevOps Handbook is to give you the theory, principles ...
- Docker学习笔记01
Docker学习笔记01 Docker学习 Docker的概述 Docker的安装 Docker的命令 镜像命令 容器命令 操作命令 ... Docker镜像 容器数据卷 DockerFile Doc ...
- 快速指南:在DevOps中实现持续交付
[编者的话]时至今日,以几乎相同的步调实现开发与交付已经成为一种必需.本份快速指南将帮助大家弄了解持续交付概念中的那些"良方"与"毒药". [烧脑式Kubern ...
最新文章
- UVa 11732 (Tire树) strcmp() Anyone?
- maven java archetype_使用Maven Archetype创建Java项目模板
- python hbase 报错by_【hbase】使用thrift with python 访问HBase
- 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器
- 国内是否可以安装alexa_Alexa可以听到您无法听到的命令,哪些黑客可以利用
- 分享一个理工男必学的撩妹姿势
- mysql dnslog_dnslog小技巧
- 综合演练 对象数组 对象的方法 我们9203班 0912
- mysql8.0. linux二进制_linux下安装mysql8.0(二进制方式)
- css3绘制环形_利用CSS简单地绘制一个操场
- django中的querydict对象_Django之MTV实战(2)
- Objective-C入门教程(摘录)
- react 设置背景图片 (等比例显示,不拉伸)
- 标准I/O缓冲:全缓冲、行缓冲、无缓冲
- 【WPF】命令 --《深入浅出WPF》
- 温度控制pid c语言程序,51单片机温度PID算法(C程序)
- 防腐投加器需要加盐吗_什么情况下需要往鱼缸里加盐?盐有什么作用?
- 【Python精彩案例】生成动态二维码
- java redis 实现pv uv_redis实战-记录PV与UV
- android 屏幕没反应了,手机屏幕失灵了怎么办?安卓手机屏幕失灵解决方法