DevOps

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

瀑布模式 -> 敏捷模式 -> DevOps模式

20221123859 DevOps知识图谱

DevOps 的价值:

  1. 改善企业的软件交付过程,实现高质量和高效率的交付
  2. 改善企业内部的工程师文化,激发活力与创造

人、流程、平台

软件开发的困难

软件发展的三个阶段

个体软件过程(PSP)

典型的用户期望

质量策略

基本流程

基本原理

过程度量

为什么要度量

体现决策者对要实现目标的关切程度 高质量的开发是计划出来的

质量路径

评审手段消除缺陷比测试消除效率更高

有效的评审

敏捷软件开发

精益思想

DevOps成熟度模型

软件架构演化

单体架构

全部功能被集成在一起作为一个单一的单元

分层架构

每一层有特定的职责,上层只能直接访问下层

面向服务架构

消息总线与服务编排引擎

微服务架构

围绕业务能力构建的可独立开发部署的小型单元,使用远程调用进行通信

挑战:

XaaS

什么 即 服务

SaaS 中心化的软件的分发方式,通过网络使用软件 IaaS 虚拟化硬件资源给用户 PaaS 提供给开发者使用

批注 2020-05-08 195722

IT服务标准

工具链

持续交付

批注 2020-05-08 202538

团队拓扑

  1. 业务流团队(Stream-aligned Team) 工作可能是一个产品或服务,也可能是一组特性、一个用户旅程或一个用户画像
  2. 赋能团队(Enabling Team) 由特定技术领域或产品领域的专家组成,对于技术问题开展调研,尝试不同的方案,寻找最佳实践
  3. 复杂子系统团队(Complicated-Subsystem Team) 业务逻辑十分复杂或者需要十分专业的领域知识,由该领域的专家组成一个固定的团队,来维护这个复杂的模块
  4. 平台团队(Platform Team)负责解决底层问题,让业务流团队可以更专注于业务开发

团队交互模式

  1. 协作(Collaboration)是指一个团队与另一个团队紧密合作
  2. 服务(X-as-a-Service)是指使用或提供某种服务,而尽量减少协作
  3. 促进(Facilitating)是指帮助其他团队清除障碍,赋能团队主要干的

GitOps

DevOps 文化中的工程实践

FinOps

Finance + DevOps,FinOps 是一种文化实践,它为企业组织提供了一种管理云成本的理论和方法

FinOps 框架