当前位置: 首页 > 科技观察

DevOps知识框架体系与实践案例汇编

时间:2023-03-13 14:57:33 科技观察

注:本文是我在网上发布的DevOps知识库Ledge上的读书笔记汇编。Ledge(源自know-ledge,意为负载)知识平台是基于我们开展的一系列DevOps实践、敏捷实践、精益实践的知识体系。DevOps知识框架概览关于DevOps研发运维的融合,之前写过很多文章,包括基础知识、敏捷研发、持续集成与交付、流水线设计、DevOps与容器云的融合、开源工具集、DevOps能力成熟度模型等方面。对于DevOps,我在之前的文章中强调过,它是企业进行数字化转型、微服务架构转型、云原生解决方案实践的重点内容。但DevOps本身并不是配置管理、测试、构建、持续集成、发布等开源工具集的简单集成。更重要的是整个开发组织敏捷文化的提升。为什么发布这个框架?简单来说,在企业数字化转型的过程中,如何实施DevOps,首先要做好哪些基础技术积累,应该采用哪些开源工具,如何完善整个研发管理和开发流程,如何分工实施stepbystep等不清楚。因此,很多企业在实施DevOps时,只是个别的开发团队或项目在进行一些敏捷、持续集成的实践,很难将整个DevOps提升到组织层面,形成组织过程资产。这个知识框架主要包括发布者介绍的以下节点:DevOps工具元素周期表。帮助您选择适合数字时代的DevOps工具。DevOps设计工具。帮助您设计组织内的DevOps流程,涵盖流程、人员、工具、工件等。实例探究。从社区的知识库中,我们总结了传统企业转向DevOps的经验,并将其浓缩成易于使用的内容和材料。最佳实践。从海量的DevOps内容中,我们提炼出一系列最佳实践,以更好地帮助企业实施DevOps实践。模型和原则。根据我们的实践,我们提炼出其背后的模式和原则,以帮助个人和组织更好地理解DevOps文化。操作手册。中小型IT团队不可能仅凭实践和原则进行DevOps转型,因此我们准备了详细的操作手册,助您一步步前行。措施。KPI-Measure,Measure-KPI,KPI-Measure帮助您更好地衡量您的DevOps转型。报告。我们尝试从丰富的DevOps报告中提取有用的实践和工具。移动开发运营。我们认为移动应用的DevOps改进是大多数公司面临的挑战。工具。工具、工具、工具才是最好的生产力,工具比人的记忆更可靠。今天的重点是对目前发布的内容进行初步的分析和整理。DevOps流水线定制不同的企业在实施DevOps时可以根据企业的实际情况定制不同的流水线。注意,流水线设计最基础的部分是实现持续集成和持续部署能力,其中涉及到最基础的内容包括源代码和配置管理、编译构建、自动化部署等。敏捷研发和流程管理其实是包含在整个DevOps最佳实践中的,可见整个DevOps流水线涉及类Scrum敏捷研发工具之间的集成。集成的重点主要是组织、团队、产品、项目、项目版本、任务、缺陷。原来说的更多的是CI/CD,也就是持续集成和持续部署。在DevOps的实施中,更多的讲持续集成和持续交付。持续集成过程不包括最终生产环境面向客户的部署和交付过程,而持续交付是分开的。持续集成和持续交付的分离也带来了流水线设计上的差异。通过简单的流水线,即可在生产环境中编译构建、编排、测试验证、发布。持续集成和持续交付分离后,往往需要单独设计交付流水线。其次,当DevOps与容器云融合后,整个自动化部署流程发生了变化,即编译构建后,先制作镜像,推送到产品库,然后从镜像中提取镜像+配置信息用于部署的产品库。所以这个阶段也涉及到与容器云的集成,比如通用实现,Kubernetes接口集成等。完成基础敏捷研发+持续集成+容器云集成主线后。还剩下两个重点,一是测试和质量管理,二是后续监控运维。对于测试和质量管理,它包含了很多内容。从上面DevOps周期表橙红色部分,也可以看出这块占据了相当一部分的内容。具体如下:静态测试:代码规范检查、安全检查、漏洞扫描自动化测试:单元测试、接口测试、UI界面自动化测试测试本身就是一个系统工程,需要从测试场景分析、测试设计、测试执行、测试评估完整的生命周期。中间还需要管理测试用例脚本、测试数据等。从DevOps实现的角度来说,更多的是如何将整个测试过程自动化。通过将测试流程集成编排到整个DevOps流水线执行流程中,真正实现R&D和QA的自动化协同。Casestudy是一个很大的板块,但是实际上这个板块的内容比较薄弱,或者说有点乱。虽然给出了招商银行、中国银行、携程、阿里、华为、小米、美团相关的整体案例,但整体很单薄。介绍内容就不多说了,直接看案例介绍中链接的具体企业演讲PPT比较好。上图展示了一家大型银行DevOps转型的几个阶段。以下给出三种典型路径供参考:A.团队级敏捷:以小团队进行敏捷转型。当试点结束后,组织往往会继续扩大敏捷转型的范围,鼓励更多的团队加入敏捷阵营;B、产品级敏捷:基于整个产品的价值流进行敏捷转型。产品级敏捷旨在连接产品价值流的上下游,将相互依赖的团队整合到同一个敏捷框架中;C、业务级敏捷:在经历了团队级敏捷到产品级敏捷之后,产品从无到有,直到产品发布的整个过程都被纳入了敏捷范围。但这还不够,人力资源、行政、财务、营销、销售等一些配套部门也应该纳入敏捷转型的范围。在华为的大规模敏捷开发实践案例中,给出了14条DevOps大规模敏捷实施的最佳实践,也可以作为参考:实践1:组织架构与产品架构兼容;实践2:两个披萨团队,全功能团队,特殊操作;实践三:每周迭代,小步走,持续规划;实践四:服务自治,独立需求梳理、开发、部署;练习5:边听边听,持续规划,价值排名;实践六:与客户协作敏捷、众创、对齐客户商业价值;实践七:架构解耦,服务/微服务;做法8:云基础设施下,猴军出没,抗性可高可用;做法九:兼顾效率和安全的软件仓库,高速下载,方便实用;实践10:自动化流水线,缩短上线时间,Built-InQuality;实践11:企业级仪表盘,基于数据科学决策;实践12:运维、监控、运维专家经验沉淀到系统;实践13:灰度发布、友测/公测、运维合作;实践14:VoC驱动、持续规划、数据分析、动态调整、纠错。在企业组织层面实现DevOps和大规模敏捷并不容易。从scrum敏捷方法论到SAFe大型敏捷框架,再到DevOps流程实践解决方案,整个敏捷方法论从开发团队延伸到整个企业,整个团队从几十人扩大到规模数百甚至数千人。这时候的需求就是组织架构设计、开发团队的划分、开发团队之间的协作以及整个持续集成过程等等。一个好的DevOps案例研究和最佳实践至少应该包括以下内容。问题及现状分析、关键需求通过DevOps实现的预期目标组织团队设计、研发流程设计开发框架选择及架构设计持续集成与持续交付最佳实践测试最佳实践自动化后监控运维最佳实践总结总体实施效果和效益分析总结DevOps原理和模型数字技术(信息技术)的本质目的是创造价值,其载体是软件,提供价值的是功能特性。越早发布功能,就能越快创造价值。采用逐渐增加特性特异性的增量开发方法,使我们能够在尽可能短的时间内开发出最小可行(MVP)产品。围绕它的良好技术实践使我们能够开发出运行良好且设计良好的软件。这个过程需要自上而下的行动。这篇文章的整体内容对我启发很大还是如何构建DevOps文化和学习型组织,其中还涉及到整个知识体系的构建、组织和团队人员能力模型和技能测评、架构金字塔。架构金字塔是将软件架构按照不同的粒度进行分组。通过分组的细分,我们可以更好的有针对性地管理和设计系统架构。一个软件系统由一系列的应用程序组成,一个应用程序又由一系列的模块组成,模块又由代码组成。例如,现代系统由一系列后端服务和客户端应用程序组成;拆解一个微服务是由一系列模块组成的。对于复杂的软件系统,需要分层分级,具体如下:系统级,即整个系统中各个部分之间的关??系,如如何与第三方系统进行通信、如何集成等。应用层,即单个应用的整体架构,以及它与系统中单个应用的关系。模块级,即应用程序内部的模块架构,如代码模块化、数据和状态管理等。代码级,即从代码级保证架构的实现。对于DevOps原理和模型的内容,总体感觉分类上还是有所欠缺,整体应该针对组织团队、研发流程、持续集成交付、测试管理等关键流程领域,给出可行的原理和模型。信通院发布的DevOps能力成熟度模型仍然可以作为重要的参考标准。该系列标准分为敏捷开发管理、持续交付、技术运维、应用设计、安全风险管理、组织架构、系统和工具等部分,涵盖从软件开发到运维的全生命周期,如图所示下图:整个评估模型I可以看到很多方面都被整合了。核心是以下三个方面:研发项目管理和敏捷研发方法论软件工程,特别是持续集成方法论IT控制和治理,包括对原有ITIL思想的整合。除了这三个方面,我们还有另外一个看到整个成熟度评估中很多评估需求的实现,希望大家采用微服务架构的思想,通过容器云实现持续集成和交付。这也是我们常说的。微服务和容器云是DevOps实践中的另一个关键要素。DevOps最佳实践实际上是案例研究和最佳实践本身的结合,很多案例就是最佳实践。DevOps实施通常涉及持续集成交付、自动化测试和敏捷研发等多个流程领域的最佳实践。当然,这些最佳实践的侧重点可能不同。但所有最佳实践仍围绕DevOps成熟度模型展开。比如你可以只讲自动化测试流程的最佳实践,讲解自动化测试流程如何与敏捷研发相结合,以及整个DevOps流水线的持续集成来实现整个流程的自动化。如果要分离最佳实践,应该包括:敏捷研发流程最佳实践持续集成和持续交付最佳实践(配置管理、流水线、工具链集成、产品库、灰度发布等)最佳实践微服务架构转型与DevOps集成最佳实践DevOps与容器云集成自动化运维与监控以上是最佳实践的一些重点内容。在DevOps实施手册的知识框架中,DevOps实施分为以下几个关键步骤:建立愿景和方向度量:组织和系统状态接入条件。了解您是否满足实施DevOps的入门标准。探索可能的选择。即MVP尝试MVP。DevOps流程和结果的快速展示。精细化DevOps实施回顾优化大规模DevOps落地前面提到DevOps实施本身可以分为几个阶段,从一开始简单实施持续集成,到后续的敏捷研发流程集成、容器云集成、持续交付能力提升等等.在重新思考DevOps的时候,其实DevOps的落地往往伴随着微服务架构的改造和优化,容器云的改造和落地等等。即最终实现的是一个完整的云原生技术平台和解决方案,而不是简单的DevOps持续集成和交付过程。从这个意义上讲,DevOps的实施实际上包括敏捷研发流程改进、持续集成与持续交付、微服务架构与开发标准规范体系、自动化测试、自动化运维等关键内容。但是,所有这些内容的实施还需要在前期对现状进行分析和评估,并进行差距分析。然后结合差距分析,给出了具体的实现演进路线设计。小结虽然目前的DevOps知识平台还不够完善,但仍然给出了从DevOps基础知识概念到能力框架、案例与最佳实践、实施路线指导等完整的知识架构框架。我个人建议应该围绕DevOps能力成熟度模型进一步建立和构建知识平台。并进一步总结梳理最佳实践中的一些案例。

猜你喜欢