2020-DevOps导论-Lec8-Devops思考实践

Lec8-Devops思考实践

1. 软件工程

  1. 没有银弹:软件开发的宿命
    1. 复杂度:不同于建筑、汽车等产品,软件实体可能比任何由人类创造的其它实体都要复杂
    2. 一致性:不同于数学、物理等学科,软件工程所控制的很多复杂度是由大量因素组合影响的,来自于人为惯例和系统内外部影响,如合规、GDPR、CMMI等
    3. 可变性:由于软件是纯粹的思维产物,易于修改,用户经常会提出改进要求
    4. 不可见性:软件是无法可视化的,不仅限制了个人的设计过程,也阻碍了设计人员之间的交流

2. Devops

  1. 从根本上看,引入devops的目的是提升研发工程效率,具体而言,devops可以实现:
    1. 更高质量:DevOps通过基础设施的代码化、自动化、快速反馈,提高软件开发的质量
    2. 可预测性:DevOps大大降低了新版本的故障率,版本交付上线偏差更少
    3. 快速上线:DevOps通过持续交付持续部署将部署上线时间缩短了50%
    4. 可维护性:DevOps通过架构优化灰度部署等方式,可以快速回滚恢复系统
    5. 降低安全风险:DevOps可以将安全纳入软件交付生命周期降低安全风险
    6. 端到端协同:DevOps强化了围绕客户价值的跨团队、跨组织一体化协同
  2. 以终为始,Devops的目标是更快、更可靠、持续地交付更优的价值

2.1. 价值流分析

  1. 第一性原理思维:将价值交付实践无线逼近必要的PT累加时间
  2. 提效原理Fenix:组织管理由"分"到"合"演进,以获得系统整体效率最大化
    1. 协作的本质是在不同的主体之间进行快速、有效的信息共享,从而进一步协调各主体进行步调一致、有序的工作执行,实现整体上的一致性与顺畅性,协作是DevOps实践中效率提升的重要方向和内容之一。
    2. 在DevOps实践中,则更强调信息的跨阶段共享,面向产品的全生命周期
    3. 通过工具平台的驱动,实现对于"机与机的活动"全自动协作调度,对于"人与机的活动"简化协作调度,对于"人与人的活动"事件驱动协作调度,进而实现优化协作调度的效率,提升协作效果

2020-DevOps导论-Lec8-Devops思考实践
https://spricoder.github.io/2020/07/02/2020-Devops-introduction/2020-Devops-introduction-Lec8-Devops%E6%80%9D%E8%80%83%E5%AE%9E%E8%B7%B5/
作者
SpriCoder
发布于
2020年7月2日
许可协议