Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
30 lines (15 sloc) 3.24 KB

DevOps 与 SRE 实战

DevOps 与 SRE 实战涵盖了笔者对于大型软件系统开发与运维工程中的偏交付、运维向的知识沉淀。

mindmap

分布式架构解决了互联网应用吞吐量的瓶颈;越来越成熟的分布式中间件也屏蔽了分布式系统的复杂度,提升了开发工程师的工作效率;自动化运维工具则提升了运维工程师的工作效率。但是,由于目标不同,在固有的将开发和运维划分为不同部门的组织结构中,部门之间的配合并不总是很默契的。开发部门的驱动力通常是频繁交付新特性,而运维部门则更关注服务的可靠性。两者目标的不匹配使得部门之间产生了鸿沟,从而降低了业务交付的速度与价值。

直到 DevOps 方法论出现,开发与运维之间的鸿沟才得以渐渐消失;通常,影响一个项目的三个因素分别是速度(时间)、可靠性和成本。开发需要有按时交付的速度,而运营需要有可靠性。DevOps 可以保证以低成本的方式实现速度和可靠性,帮助开发工程师和运维工程师在实现各自目标的前提下,向最终用户交付价值最大化、质量最高的成果的一系列基本原则。DevOps 在软件开发和交付流程中强调“在产品管理、软件开发以及运维之间进行沟通与协作”。DevOps 是一种使持续交付成为可能的理念,关注于所有人共同协作以改进开发效率方面的衡量(比如生产力),同时增加稳定性并降低平均故障修复时间。

DevOps 是一种公司文化的变迁,它代表了开发、运维和测试等环节之间的协作,因此多种工具可以组成一个完整的 DevOps 工具链。Chef 的创始人 Adam Jacob 将 DevOps 定义为一种文化和专业的运动。

DevOps 会涉及到各种模式,包括:持续改进、组织文化、学习曲线、持续交付、持续学习、持续协作和自动化:

  • 价值流,它指一个组织针对客户的需求所执行的各项交付活动的顺序。也就是指你如何把一个想法最终变现的过程。

  • 交付时间,它指价值流从开始到结束,全程转化的耗时。一般情况下,交付时间是指呈现到客户眼前所花费的时间。

  • 周期时间,它始于按照需求所开展的工作,终于准备好交付项目的时候。

  • 交付时间的掌控能力,意味着我们对 DevOps 的运用水平。

  • 部署交付时间,反映了我们在自动化方面的水平。

由此可见,组织应遵循 DevOps 的模式和实践方式,以减少交付的时间。他们完全可以从中选取诸如:放大反馈或加强持续学习文化等一个或多个适合自身的 DevOps 方法。GitOps 被认为是下一代的 DevOps,让运维工作变得与写代码的方式一样,将 Git 仓库作为运维工作的“the single source of truth”,这对于多云、混合云和多集群部署是非常有价值的。Git 所具备的版本管理能力让运维工作变得更加可溯与可控。总的说来,易用性解决的是软件开发效率、工程质量和人力成本问题。

You can’t perform that action at this time.