202101阅读笔记
2021年1月16日 15:44:29
202101阅读笔记
一、DevOps的“定义”
维基百科:
DevOps(开发Development与运维Operations的组合词)是一种文化、一场运动或实践,强 调在自动化软件交付流程及基础设施变更过程中,软件开发人员与其他信息技术(IT)专业人 员彼此之间的协作与沟通。它
旨在建立一种文化与环境,使构建、测试、软件发布得以快速、频繁以及更加稳定地进行。
- DevOps平台 ≠ 自动化运维平台 ≠ 或持续交付平台。
- 软件开发的第三次革命。
- DevOps已经突破了单一领域,成为软件交付整体的方法论。
1、历史缘由
DevOps: 关注开发
和运维
两种角色。
瀑布流开发模式:
![](/2021/01/16/202101%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/2021-01-16-16-14-56.png)
缺点: 随着市场环境和用户需求变化的不断加速,这种按部就班的方式有一个严重的潜在问题。软件开发活动需要在项目一开始就确定项目目标、范围以及实现方式,而这个时间点往往是我们对用户和市场环境信息解最少的时候,这样做出来的决策往往带有很大的不确定性,很容易导致项目范围不断变更,计划不断延期,交付上线时间不断推后,最后的结果是,即便我们投入了大量资源,却难以达到预期的效果。
NOTE:
早期了解少,贸然做决策,需求会变化,范围变化,计划延期。
敏捷式开发模式:
![](/2021/01/16/202101%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/2021-01-16-16-20-46.png)
将一个大的目标不断拆解,把它变成一个个可交付的小目标,然后通过不断迭代,以小步快跑的方式持续开发。
敏捷之所以更快,根本原因在于持续迭代和验证节省了大量不必要的浪费和返工 敏捷之所以更快,根本原因在于持续迭代和验证节省了大量不必要的浪费和返工。
敏捷源于开发实践,敏捷的应用使得开发
和测试
团队抱团取暖。
缺点: 无论开发了多少“天才”的功能,如果没有经过运维环节的部署上线,并最终发布给真实用户,那么这些功能其实并没有什么用。
NOTE:
开发和测试团队发现,不管研发的速度变得多快,在软件交付的另一端,始终有一群人在冷冰冰地看 着他们,一句“现在没到发布窗口”让多少新开发的功能倒在了上线的门槛上。
DevOps模式:
![](/2021/01/16/202101%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/2021-01-16-16-26-10.png)
DevOps却反其道而行之,它试图通过体系化的研发实践导入
、软件架构的整体革新
、组织管理理念的不断升级
和企业文化
的影响塑造,来帮助企业改善整个软件交付过程,在实现高吞吐量的
同时保证服务的总体稳定性,从而真正实现又快又好的软件交付目标.
初衷: DevOps最开始想要打破的就是开发和运维之间的对立
和隔阂
。
NOTE: 以往的模式下开发只管开发完成多少需求,运维只管保证系统的稳定性、可用性和安全性。需求的变更,开发的新功能缺陷,容易导致生产事故,导致运维背锅。因此,会形成互相伤害。
发展:
BizDevOps: 从一开始想要促进开发和运维的协作,团队慢慢发现,其实在整个软件交付过程中,不仅只有 其实在整个软件交付过程中,不仅只有开发和运维,业务也是重要的一环 开发和运维,业务也是重要的一环。
DevSecOps: 是介入到整个软件开发过程中,在每个过程中注入安全反馈机制,来帮助团队 在第一时间应对安全风险。
AIOps: 更多的还是Ops领域的一种探索,解决的还是Ops所面对的问题
这样的例子比比皆是,包括职能部门、战略部门等,都纷纷加入其中,使得DevOps由最开始的 点,扩展为线,再到面,不断发展壮大。
2、最终”定义”
DevOps 是通过平台(Platform Platform)、流程(Process Process)和人(People People)的有机整合。
以C (协作) A (自动化)L (精益)M (度量)S (共享)文化为指引。
旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。
二、DevOps的必要性
1、企业数字化转型,软件日益重要
数字化转型->软件日益重要->软件质量和交付效率问题
流传已久的名言: 每一家公司都将成为软件公司 每一家公司都将成为软件公司。
批注: 也许这是大势所趋。到达一定的阶段自然会转型。
软件慢慢从企业内部的支撑系统和成本中心,变成了企业服务的直接载体和利润中 软件慢慢从企业内部的支撑系统和成本中心,变成了企业服务的直接载体和利润中
心 心。企业通过软件降低运营成本,提升服务水平,而用户在获得便利的同时,也加强了同企业之
间的联系。
批注: 某些公司的决策层依然有问题,依旧还是成本中心。
我们所身处的是一个VUCA VUCA的时代,VUCA是指易变性 (Volatility)、不确定性(Uncertainty)、复杂性(Complexity)和模糊性(Ambiguity),它代 表了这个时代的典型特征。
国家智库的某位领导的话: “工业革命消灭了绝大多数的手工业群体,却催生了程序员这个现存 工业革命消灭了绝大多数的手工业群体,却催生了程序员这个现存 最大的手工业群体 最大的手工业群体”。
结论: 软件交付的效率和质量成了当今企业的核心价值和核心竞争力软件交付的效率和质量成了当今企业的核心价值和核心竞争力。
数字化转型->软件日益重要->软件质量和交付效率问题->DevOps
NOTE:
DevOps的价值: 高效的软件交付方式、激发团队的创造力(因为DevOps本身也包含了改善软件从业人员的生存状态,提升他们的幸福水平本身也包含了改善软件从业人员的生存状态,提升他们的幸福水平的理念。)
实施DevOps,一方面可以通过种种流程优化
和自动化能力
,改善软件开发团队的工作节奏,另一方面,也可以让大家关注同一个目标,彼此信任,高效协作,调动员工的积极性和创新能力,从而让整个团队进入一种积极创造价值的状态,而这所带来的影响远非建设一两个工具平台可比拟的。
三、DevOps文化Or工具
DevOps工具
一切软件交付过程中的手动环节,都是未来可以尝试进行优化的方向 一切软件交付过程中的手动环节,都是未来可以尝试进行优化的方向。
DevOps文化
由此可见,在不同的文化制度下,相同的人发挥出来的生产力也会有天壤之别。
要先改变行为,再通过行为来改变文化。而改变行为最关键的,就是要建立一种有效的机制。就像我一直强调的那样,机制就是人们愿意做,而且做了有好处的事情。
要将规则内建于工具之中,并通过工具来指导 需要将规则内建于工具之中,并通过工具来指导践。—-> 行为改变 —-> DevOps文化生根发芽。
DevOps的3个支柱
![](/2021/01/16/202101%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/2021-01-16-17-34-11.png)
- 人+流程=文化
- 流程 + 平台 = 工具
- 平台 + 人 = 培训赋能
NOTE:
平台上固化的每一种流程,其实都是可以用来解决实际问题的工具。
平台的最大意义,就是承载企业内部的标准化流程 而平台的最大意义,就是承载企业内部的标准化流程。平台的定义:
1.可扩展,纵向扩展或横向扩展(不一定必须要很自由)
2.横向扩展,聚合多个工具或服务,助力某一大类工作的所有工作诉求,解决一个更大问题域 的问题。
3.纵向扩展,从单体工具或服务,往多租户的工具或服务演变,提供配置化的定制能力
DevOps 由人+流程+平台工具构成一个有机整体,其中最主要的还是人。推动需要一个说得上 话的人,推进需要一群志同道合的人,实现则是服务一帮人。把人搞定了,什么都好搞了。
四、DevOps实施路线图
2021年1月20日 10:24:21
安晓辉 《工作之余如何高效学习》 摘记
有效学习的六个步骤:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!