DevOps

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

20221123859 DevOps知识图谱

软件开发的困难

软件发展的三个阶段

个体软件过程(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)是指帮助其他团队清除障碍,赋能团队主要干的