第一章 DevOps概述
什么是软件开发
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
软件开发是一项包括需求捕捉,需求分析,实现和测试的系统工程
软件开发有哪些困难?
软件开发的本质困难
复杂性
不可见性
可变性
一致性
The Mythical Man-Month 人月神话Frederick P.Brooks.J:
对本质难题的进一步分析
三个本质难题因项目而异
四大本质难题相互促进
本质难题的变化带动软件方法(过程)演变
软件项目管理和软件过程管理

软件发展三大阶段
软硬件一体化阶段(50年代~70
年代)
软件完全依附于硬件
软件作坊
软件成为独立的产品(70年代~90年代)
网络化和服务化(90年代中期迄今)
软件完全依附于硬件
软件应用典型特征
软件支持硬件完成计算任务
功能单一
复杂度有限
几乎不需要需求变更
·软件开发典型特征
◆硬件太贵
◆团队以硬件工程师和数学家为主

软件作坊
·软件应用典型特征
功能简单
规模小
·软件开发典型特征
很多非专业领域的人员涌入软件开发领域
高级程序语言出现
质疑权威文化盛行
典型软件过程和实践
“Code and fix”
软件成为独立产品
软件应用特征
摆脱了硬件束缚(OS)
功能强大
规模和复杂度剧增
个人电脑出现 –> 普通人成为软件用户
·需求多变
·兼容性要求
来自市场的压力
典型软件过程和实践
·方法之一:形式化方法
·方法之二:结构化程序设计和瀑布模型
网络化和服务化
·软件应用特征
◆功能更复杂,规模更大用户数量急剧增加(这会带来什么问题?)
◆快速演化和需求不确定
◆分发方式的变化(SaaS)
典型软件过程和实践
迭代式:大型软件系统的开发过程也是一个逐步学习和交流的过程,软件系统的交付不是一次完成,|而是通过多个迭代周期,逐步来完成交付。
更深化的网络化和服务化
软件应用典型特征
随处可见(pervasive)
用户需求多样性进一步凸显
软件产品和服务的地位变化
错综复杂的部署环境
近乎苛刻的用户期望
多:功能丰富
快:快速使用,及时更新
好:稳定,可靠
省:用户的获得成本低,最好免费
·软件开发典型特征
◆空前强大的开发和部署环境——XaaS
·IaaS
·PaaS
·SaaS,FaaS,etc.
盛行开源和共享文化
盛行敏捷
软件工程的潜在支撑力量获得了长足进步(AI,
Bigdata,Cloud,etc.)
典型软件过程和实践—DevOps
·方法论基础是敏捷软件开发、精益思想以及看板
Kanban方法。
·以领域驱动设计为指导的微服务架构方式
大量虚拟化技术的使用
·一切皆服务XaaS(Xas a Service)的理念指导
·构建了强大的工具链,支持高水平自动化
The Three Ways-The First Way
·概念
充分理解工作流(开发-运维客户)
流量最大化(小批量、缩小任务间隔、缺陷控制)
不断为了整体目标的实现而优化工作流
·部分关键实践和方法
持续构建、集成以及交付;
按需创建环境;
限制半成品(WIP);
构建支持顺利变更的安全系统;看板(任务可视化)

The Three Ways-The Second Way
概念
价值流(开发-运维-客户)的快速持续反馈
避免问题再次发生
(或者快速发现和修复)
从源头上保证质量
部分关键实践和方法
适时停止生产线
持续改进
构建自动化测试套件,确保代码随时可部署
Dev和Ops共享目标和pain
远程监测手段(自动化)

The Three Ways-The Third Way
概念
◆创建培育良好的文化(不断尝试、重复和练习)
部分关键实践和方法
◆营造勇于创新、敢于冒险以及高度信任的企业文化
确保至少20%资源投入在非功能需求上
不断鼓励和强化改进

第一章 DevOps概述的更多相关文章
- 第一章 数据库概述、MySQL的安装和配置
第一章 数据库概述.MySQL的安装和配置 1.为什么要使用数据库 最早是纸质文件来存储数据 缺点:不易保存,占用空间大 计算机出现以后,采用软件来进行保存(excel) 缺点:容易损坏 文件 ...
- Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考
第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...
- [OpenGL红宝书]第一章 OpenGL概述
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...
- 数据结构(Java语言描述)-第一章:概述
第一章 概述 1.0 序言 自己为啥要学数据结构嘞,我觉得主要有以下三个原因: 前段时间在看并发编程时,发现aqs,corrunthashmap等底层都用到了数据结构,主要的有队列,还有链表,学习数据 ...
- C#本质论读书笔记:第一章 C#概述|第二章 数据类型
第一章 1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置. 第二章 2.1 预定义类型或基本类 ...
- Struts2框架学习第一章——Struts2概述
本章要点 — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 — Struts 1的基本结构及其存在的问题 — We ...
- 第一章 JQuery概述
1.JQuery的作用:访问和操作DOM元素控制页面样式对页面事件进行处理扩展新的JQuery插件与Ajax技术完美结合注:JQuery能完成的效果js都能完成,但是JQuery的开发效率更高,代码更 ...
- C# 本质论 第一章 C#概述
学习新语言最好的办法就是动手写代码. 库(或称为类库)的文件扩展名是.dll,其中dll代表"动态链接库(Dynamic Link Library)". 不要在标识符中使用单词缩写 ...
- Java第一章----Java概述+环境搭建
写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...
随机推荐
- 1W字|40 图|硬核 ES 实战
前言 上篇我们讲到了 Elasticsearch 全文检索的原理<别只会搜日志了,求你懂点检索原理吧>,通过在本地搭建一套 ES 服务,以多个案例来分析了 ES 的原理以及基础使用.这次我 ...
- 一个诡异的MySQL查询超时问题,居然隐藏着存在了两年的BUG
这一周线上碰到一个诡异的BUG. 线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功. 通过日志发现,从凌晨5:26分开始到5:56任务执行了三次,三 ...
- Day01_11_Java方法
Java - 方法 什么是java中的方法? - 方法就是一段代码片段,并且这段代码可以完成某个特定的功能.动作.是可以被重复的使用. - 方法就是类的一个动作. - 方法在C语言中也叫做函数 或 f ...
- k8s 创建私有docker仓库 登陆授权令牌的Secret
参考https://kubernetes.io/zh/docs/tasks/configure-pod-container/pull-image-private-registry/ Kubernete ...
- Java获取多线程执行结果方式的归纳与总结
在日常的项目开发中,我们会经常遇到通过多线程执行程序并需要返回执行结果的场景,下面我们就对获取多线程返回结果的几种方式进行一下归纳,并进行简要的分析与总结. 一.Thread.join 在一些简单的应 ...
- 一键打造vim ide 支持python golang shell等高级特性
1.vim-for-devops github: https://github.com/yxxhero/vim_for_devops 利用vim插件打造支持python.shell.golang的id ...
- 【SpringBoot】SpringBoot 处理后端返回的小数(全局配置 + 定制化配置)
一.抛出问题: 现在的项目中,存在这样的几个问题: 问题一.数据库存的数据类型是BigDecimal,或者代码中计算需要返回BigDecimal的值,由于BigDecimal返回给前端可能存在精度丢失 ...
- 病毒木马查杀实战第023篇:MBR病毒之引导区的解析
前言 引导型病毒指寄生在磁盘引导区或主引导区的计算机病毒.这种病毒利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中入侵系统,驻留内存,监视系统运行,伺机传染和破坏.按照引导 ...
- Python脚本与Metasploit交互进行自动永恒之蓝攻击
我们首先利用 findTarget() 函数找到目标网段或目标主机中开放了445端口的主机,然后利用 confickerExploit() 函数将攻击代码写入 configure.rc 配置文件中,最 ...
- Jenkins反序列化漏洞复现
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: 持 ...