DevOps

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

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

20221123859 DevOps知识图谱

DevOps 的价值:

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

人、流程、平台

软件开发的困难

软件发展的三个阶段

个体软件过程(PSP)

典型的用户期望

质量策略

基本流程

基本原理

过程度量

为什么要度量

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

质量路径

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

有效的评审

敏捷软件开发

精益思想

DevOps成熟度模型

软件架构演化

单体架构

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

分层架构

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

面向服务架构

消息总线与服务编排引擎

微服务架构

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

挑战:

云原生与容器

现代应用的十二范式

批注 2020-05-07 144500

云原生

可快速可靠交付软件 微服务 DevOps

持续交付

使用敏捷开发来实现加快发布速度

容器

将不同特点的应用打包成一个标准化的应用

容器编排与调度

分布式应用由多个容器实例组成 需要一种高效的方法来管理容器集群

容器与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)是指帮助其他团队清除障碍,赋能团队主要干的