《DevOps权威指南》电子试读版-第一章-DevOps基础

2022-01-09 14:27:53 浏览数 (1)

1.1  DevOps基础

1.1.1  DevOps的概念

evOps(development和operations的组合词)是一组过程、方法与系统的统称,用于促进软件开发(应用程序或软件工程)部门、技术运营部门和质量保障(Quality Assurance,QA)部门的相互沟通、协作与整合,如图1-1所示。软件行业从业人员日渐认识到:为了按时交付软件产品或服务,软件开发人员和运营人员必须紧密合作,必须重视软件开发人员和运维人员的沟通,并通过自动化流程使得软件的构建、测试和发布更加快捷、可靠。

图1-1

近年来,DevOps在不同业态、不同领域和不同规模的企业落地,取得了较好的实践效果。对于企业的精益运营和IT精益运行,DevOps的原生理念已经不能满足需求,颠覆式的发展和变革应运而生。提升组织级的效能和质量成为DevOps发展阶段中能力输出的新方向。因此,DevOps的发展除原生地促进部门沟通以外,将应用的全生命周期管理提升到一个新的高度。同时,相对应的文化协同和流程驱动也随着数据的衍生能力向前推进,实现了技术运营和价值交付的高度协同目标。

对于企业级用户,什么是DevOps、DevOps的核心目标是什么、应该具备什么能力这3个问题必须解释清楚,因为这关系着企业级实践和落地。作者曾与业内多个相关组织的成员和个人进行过讨论,尽管得到的反馈不同,但核心价值是确定的,就是如何通过DevOps实现最终的价值交付和输出。

1.1.2  DevOps与企业和IT组织的关系

1.DevOps和企业的关系

企业的发展需要具备相应的目标,而企业的发展目标一般通过经济效益来评价。经济效益包括产能、营业额、利润率和投资回报率。企业的发展目标可以分解为以下4个方面进行讲解。

(1)企业对社会的贡献目标。对于不同类型和业态的企业,企业对社会的贡献目标体现在企业的产品效应和产品效益上。

(2)企业的市场目标。它决定了企业能否生存。提高企业产品的创新水平和企业产品的快速上线能力,以及产品的市场占有率是达成企业的市场目标的重要手段。

(3)企业的开发目标。这是企业提高生产力水平的重要目标。它通过扩大企业规模,增加固定资产、流动资金,提高生产能力,增加品种、产量和销售量,提高企业人均生产力,以及提高自动化程度来实现。

(4)企业的利益目标。在经营过程中,企业通过“降本增效”达到企业的利益目标的最大化。“降本增效”可以通过企业自身的产品调整和内部管理调整来实现,调整的依据是内外部的数据分析和支撑。

DevOps在企业发展过程中的定位更偏向于为企业“锦上添花”,而不是让企业“绝处逢生”。在进行企业级DevOps落地的过程中,管理者要注意,无论企业是在经历业态转型、数字化转型,还是品牌经营转型,均需要利用先进的信息技术来提升自身的管理水平,增加企业的竞争力,这是DevOps提供的价值和能力。

对于企业的核心价值输出,DevOps的作用是“催化剂”,这一点和企业的发展目标是不相悖的。因此,无论DevOps的落地成功与否,都不能让企业发生“质”的变化,但可以给企业带来商业上的成功。

2.DevOps和IT组织的关系

IT组织是DevOps企业级实践的载体。对于企业,其日常经营离不开IT组织的配合和支撑。一般来说,IT组织是企业实现可持续经营不可或缺的一部分,它拥有的属性包括信息化和数字化。在企业的日常经营活动中,IT组织需要具备以下两种核心能力。

(1)以企业的战略目标为导向,通过信息化和数字化的手段对企业战略进行支撑。

(2)在信息化总体规划的指导下,建设信息化和数字化的基础设施、应用系统,为企业经营提供技术保障。

IT组织和DevOps的“纠葛”来源于IT组织的自我革新。在大多数企业中,IT组织的压力分为内部压力和外部压力。内部压力主要来自内部管理和协调,外部压力主要来自业务部门的服务需求。当外部压力需要通过内部管理来释放时,DevOps的原生能力并不能覆盖所有。现今,越来越多的企业将目光投向DevOps,除利用DevOps提升效能,维持高标准和高效率的能力输出以外,还要保证外部压力释放的合理性。国内一些大型互联网企业在这方面的实践中取得了较好的效果。

随着规模和能力的变化,IT组织从“单兵模式”发展到“集团军模式”,于是出现了职责的分工和工作流的衔接,这就是我们通常所说的IT组织的能力子域,如交付链路的项目管理、需求管理、产品管理、架构管理、开发管理、测试管理、运维管理和安全管理等。在交付链路上,能力子域是以单个节点的形式存在的,在衔接配合的同时也存在职责以外的目标矛盾。

因此,在IT组织的内部,DevOps要实现IT服务流程的贯通,解决各能力子域的矛盾。这是对DevOps原生能力的一种拓展。这里的重点在于跨部门和跨团队的线上协作,通过DevOps理念,实现交付流水线的信息传递。举个例子,在用传统的方法进行系统上线部署时,可能需要一个冗长的说明文档,而在用DevOps的方法进行系统上线部署时,通过标准运行环境的选择、环境的设置、部署流程的编排,实现自动化部署。另外,对于这样的部署方法,操作人员可以理解,机器能够执行,部署的过程也可以被追踪和审计。

化解能力子域的矛盾是基础,连通应用全生命周期管理和价值交付是进阶。举个例子,从项目立项、需求整理、架构设计、代码开发、集成构建、代码测试、持续部署、代码配置和上线监控的工具集成,到形成工具链的一体化连通和输出方式,最终实现IT组织能力的变现。

IT组织需要通过DevOps的能力实现“科技输出”和“技术运营”,这有两个特点,一是IT组织具备业务属性,DevOps能够生产价值;二是IT组织不具备业务属性,DevOps能够贡献价值。

1.1.3  DevOps究竟是什么

DevOps究竟是什么?从表面上来看,DevOps是指“开发和运维一体化”,这也是DevOps的原生能力,即通过工具辅助开发人员完成运维人员的部分工作,减少成本。但在我们深入理解了DevOps与企业和IT组织的关系后,就会发现,DevOps其实是一种方法,即面向组织的效能和质量管理方法论。在交付链路能力子域,DevOps消除了隔阂;在项目和需求子域,DevOps实现了精准的过程控制和风险管理;在软件研发和测试子域,DevOps帮助研发和测试团队在保证质量的前提下提高交付效率;在运维子域,DevOps提高了产品发布的效率和线上质量反馈的速度。

同时,利用交付链路的工具让数据落地,通过度量来管理过程,通过反馈来回检优化,最终实现组织级的效能和质量的提升。

0 人点赞