ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:54.32KB ,
资源ID:3537880      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3537880.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(研发运营一体化能力成熟度模型应用设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

研发运营一体化能力成熟度模型应用设计.docx

1、研发运营一体化能力成熟度模型应用设计研发运营一体化(DevOps)能力成熟度模型第 5 部分:应用设计The capability maturity model of DevOpsPart 5: Application Design前 言研发运营一体化是指在IT软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部署 和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无缝 集成。帮助企业提升IT效能,在保证稳定的同时,快速交付高质量的软件及服务,灵活应对快速变化的 业务需求和市场环境。本标准是“研发运营一体化(DevOps)能力成熟度模型”系列标准的

2、第 5 部分 应用设计,该系列标准的结构和名称如下:第1部分:总体架构第2部分:敏捷开发第3部分:持续交付第4部分:技术运营第5部分:应用设计第6部分:风险管理第7部分:组织结构研发运营一体化(DevOps)能力成熟度模型 第 5 部分:应用设计1范围本标准规定了研发运营一体化(DevOps)能力成熟度模型中应用设计能力的成熟度要求。 本标准适用于:a)具备 IT 软件研发、交付、运营能力的组织实施 IT 软件开发和服务过程的能力进行评价和指导;b)可供其他相关行业或组织进行参考;c)可作为第三方权威评估机构衡量软件开发交付成熟度的标准依据。2规范性引用文件下列文件对于本文件的应用是必不可少的

3、。凡是注日期的引用文件,仅所注日期的版本适用于本文 件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。1YD/T1171-2001IP网络技术要求网络性能参数与指标2YD/T1823-2008IPTV业务系统总体技术要求33 术语YD/T1489-2006数字蜂窝移动通信网移动流媒体业务总体技术要求下列术语和定义适用于本文件。3.1软件架构 Software Architecture软件架构是计算系统的软件架构是解释该系统所需的结构体的集合,其中包括软件元素,元素之间的相 互关系和二者各自的属性。3.2应用程序 Application指研发团队生产的可基于运行时环境运行的

4、软件包。3.3运行时环境 Runtime Environment运行时环境指应用程序进入运行态的软件环境,包括操作系统、中间件、计算机程序设计语言编译 器、计算机程序设计语言解释器、环境变量、SDK 等非研发团队的应用程序产出。3.4软件包 Software Package通过计算机程序设计语言编写并生成的可运行计算机的代码集合。4缩略语下列缩略语适用于本文件。DevOps a portmanteau of development and operations 一组过程、方法与系统的统称JSON JavaScript Object Notation JS 对象标记HTTP HyperText

5、Transfer Protocol 超文本传输协议MTTF Mean Time To Failure 平均失效前时间MTTR Mean Time Between Failures 平均恢复前时间RPC Remote Procedure Call 远程过程调用TCP Transmission Control Protocol 传输控制协议XML eXtensible Markup Language 可扩展标记语言5应用设计DevOps技术能力包括开发技术、测试技术、运维技术等能力,其中开发技术中最核心的是应用设计 相关技术,应用设计的分级技术要求包括:应用接口、应用性能、应用扩展和故障处理,如表

6、1所示。表1 应用设计分级技术要求应用设计应用接口应用性能应用扩展故障处理传输协议实际性能水平扩展日志数据协议可用性垂直扩展监控内容协议故障追踪接口治理故障修复5.1应用接口是指软件系统不同组成部分衔接的约定。5.1.1接口规范是指通过接口标准化制定统一的规范和处理方式,降低接口的复杂度,减少接口对接的工作量,从 而提升应用交付的速度和效率。5.1.1.1传输协议指应用系统间传输数据所用的协议,例如TCP、HTTP、RPC等。5.1.1.2数据协议指应用系统间传输的数据所采用的格式,例如 JSON、XML、私有协议等。5.1.1.3内容管理指应用系统间传输的数据内容有统一的标准管理,例如JSO

7、N数据应该包含哪些字段。表2 应用接口级别传输协议数据协议内容协议1各应用系统分别对外提供不同的传输协议,例如 A 系统提供 HTTP、B 系统提供二进制,C 系统提供 RPC各应用系统分别对外提供不同的数据协议,例如 A 系统对外提供 XML 数据,B 系统对外提供 JSON 数据各应用系统分别对外提供不同的内容协议,例如同样是JSON 格式,A 系统 Json 数据键命名风格是下划线,B 系统Json 数据键命名风格是驼峰式2各应用系统约定了统一的传输协议,例如指定采用 HTTP传输协议各应用系统约定了接口间传输的数据协议,例如指定数据协议为 XML各应用系统约定了接口间传输的内容协议,例

8、如 Json 的命名规范,最大长度等3各应用系统约定了统一的传输协议和协议规范,例如采用 HTTP 协议时,指定Content-Type 、Connection等 header 的配置各应用系统约定了统一的数据协议和数据规范,例如采用 XML 格式时,哪些信息用属性表示,哪些信息用元素表示各应用系统约定了接口间传输的内容协议规范,例如指定JSON 数据必须包含这些字段: requestID , caller ,source,time,response4提供了统一的接口开发库或者开发包,各应用系统统一使用开发库或者开发包来完成协议解析和处理提供了统一的数据编解码开发库或者开发包,各应用系统统一使

9、用开发库或者开发包提供了统一的内容编解码开发库或者开发包,各应用系统统一使用开发库或者开发包5提供了统一的开发框架,开发框架集成了协议处理,可以通过简单的方式就能够对外提供接口,例如通过SpringBoot 的RestController 注解方式提供接口提供了统一的开发框架,开发框架集成了协议处理,可以通过简单的方式就能够对外提供接口,例如通过 SpringBoot 的注解方式提供了统一的开发框架,开发框架集成了协议处理,可以通过简单的方式就能够对外 提 供 接 口 , 例 如SpringBoot 的注解方式5.1.2接口管理接口规范是指利用统一的接口规范约束各个系统按照统一的标准规范操作,

10、并对应用系统提供的 接口进行管理,主要内容包括接口查询和权限控制,如表 2 所示。5.1.2.1接口查询应用系统需要查询其它应用系统提供的接口,应确保接口符合规范。5.1.2.2权限控制应用系统对外提供的接口,需要进行权限控制,例如部分敏感数据的访问。表3 接口管理级别接口查询权限控制接口规范管理1各应用系统自己维护接口文档,通各应用系统对外提供的接口没有自行定义的格式的过邮件或者即时通信的方式传送接口文档权限控制能力接口规范,接口规范相对松散。2提供统一的接口查询平台,各个应用系统开发人员在这个平台上手工填写自己系统的接口信息各应用系统自己实现基本的访问控制权限有统一的接口规 范,但接口由标

11、准自由定义。例如: 无标准的 XML ,Json3提供统一的接口查询平台,各个应用系统开发人员可以从代码导出接口信息,然后发布在接口信息查询平台各应用系统自己实现了访问控制和细粒度的数据控制权限有统一的接口规 范,接口遵循相应的标准规范。例 如:wsdl,swagger.io4提供统一的接口查询平台,各个应用系统开发人员可以从代码导出接口信息,然后发布在接口信息查询平台各应用系统自己实现了访问控制和细粒度的数据控制权限a)有统一的接口规范,接口遵循相应的标准规范。b)接口规范由统一的基础设施中心化管理。例如:依照规范设立的集中式 APIGateway5提供统一的接口平台,各个应用系统可以自动注

12、册接口相关信息,接口平台可以自动测试接口是否符合规范要求。提供统一的接口权限管理平台,平台统一管理接口的访问控制权限和数据控制权限。a)有统一的接口规范,接口遵循相应的标准规范。b)接口规范由 API 按照标准的方式去中心化管理。例如: 依照规范设立的分布式服务网格(Service Mesh)5.2应用性能应有性能是对应用实际性能(Real Performance,与感知性能 Perceived performance 相对)和可用性(Availability)的度量,是衡量应用服务水平的重要指标。5.2.1实际性能实际性能是指用户实际体验的性能,例如在正常载荷或者最大载荷情况下平均响应时间。

13、通过两个 指标进行度量,如下:a)应用在一定载荷(Load,例如请求数/秒、事务数/秒、页面数/秒)情况下对最终用户请求的 响应时间;b)应用在一定载荷情况下计算资源消费情况,包括CPU、内存、IO、网络带宽等。通过计算资源 消费情况判断计算资源是否支持指定的载荷,或者建立资源消费情况基线,在应用生命周期中 追踪应用性能变化。5.2.2可用性可用性是指在要求的外部资源得到保证的前提下,产品在规定的条件下和规定的时刻或时间区间 内处于可执行规定功能状态的能力。它是产品可靠性、可维护性和维护保障性的综合反映。可用性一般 通过冗余和故障转移的方式获得。5.2.2.1 系统可用性是指系统服务不中断运行

14、时间占实际运行时间的比例。5.2.2.1.1 系统可用性指标系统可用性指标定义为:MTTF/(MTTF+MTTR) * 100% ,其相关的两个指标定义如下: MTTF: mean time to failure,平均失效前时间,也就是平均正常运行的时间。MTTR: mean time to restoration, 平均恢复前时间,也就是平均故障时间。表4 应用性能级别实际性能可用性1a)各模块独自处理性能问题,采用不同的性能方案,性能结果是被动获得;b)性能指标散布在日志中,采用手工方式计算性能指标。a)应用没有进行冗余设计,不支持高可用;b)故障问题没有设计统一的故障恢复方案;2a)对于

15、典型的性能问题进行了个性化设计,解决局部性能问题;b)对部分性能指标进行度量;c)部分性能指标采用个性化方式可视化;a)应用部分子系统(例如应用服务器、数据库、web 服务器等)或者IT 设施(网络、存储、主机等)进行冗余和故障转移设计,支持部分高可用;b)对于部分可用性故障问题有故障恢复方案;3a)站在最终用户的视角,对应用进行系统化性能设计;b)支持对性能进行全方位度量,从端到端性能到系统各层性能;a)应用子系统和 IT 设施有系统化的冗余和故障转移设计,整个系统全面支持高可用;b)应用子系统和 IT 设施的设计完整c)支持性能指标实时采集;d)设计或者采用第三方工具对性能进行可视化,并支

16、持性能问题追溯;的故障恢复方案,人工可按照恢复方案进行故障恢复;c)设计应用子系统和 IT 设施可用性检查(健康检查)方案;d)设计或者采用第三方工具对可用性可视化;4a)设计或外购统一性能管理支持平台,支持性能管理循环;b)建立性能管理制度化机制,平台支持制度化性能设计流程,支持性能度量、分析、追溯、定位、响应、评估性能管理循环;c)平台支持性能问题预警;a)建立高可用管理支持平台,统一支持应用子系统和 IT 设施的可用性监控和预警;b)建立高可用制度化机制,高可用管理支持平台可用性管理机制实施;c)支持自动化故障恢复过程;d)支持制度化进行灾备演习,确保故障恢复方案有效,缩短故障恢复时间;

17、5a)支持实时性能指标自动分析能力, 对于一些常见性问题能够进行问题自动定位;b)对于一些常见的自动定位问题能够进行智能处理(例如扩容等);c)支持制度化评估性能管理机制和平台,支持卓越性能管理;a)支持实时可用性自动分析,支持常见问题自动定位;b)自动定位的常规问题执行故障自动恢复;c)制度化评估可用性管理机制和平台,支持高可用卓越管理;5.3应用扩展应用程序在达到最大负载时,能够支持以下方式进行扩展,以保证系统稳定运行。如表 5 所示。应用扩展性是应对高并发的重要手段,扩展包括三个维度,如下:a)X 轴 是否支持水平扩张(容量扩展),应用可以复制多个实例,共同提供服务;b)Y 轴 是否支持

18、垂直扩展(服务资源),将应用的不同模块部署在不同的进程中;c)Z 轴 是否支持数据扩展(数据存储),将数据分散在多个存储单元中;应用系统的容量需求会随着业务的发展而增加,容量扩展与应用架构相关,当应用架构具备容量扩 展的能力,才能完成容量扩展操作。表5 应用扩展级别水平扩展垂直扩展1a)系统容量不支持水平扩展。b)扩展时系统性能受影响。a)应用没有进行切分,采用一个巨石架构,所有功能归集在一个发布包中;b)应用内部没有或者进行了简单的逻辑分层。c)部署不可回滚,或者回滚后需要人工进行数据修复d)单个子系统部署耗时 30 分钟以上。2a)系统容量支持水平扩展,能够根据业务的需要通过手工的方式扩展

19、容量,但扩展到一定容量后无法继续扩展。b)扩展时系统性能受影响。例如:负载均衡的业务系统可以扩展, 但扩展到一定程度后数据库成为瓶颈, 单独扩展业务系统容量无法提升系统容量。a)应用按照经验进行了简单拆分,将大应用分为若干独立的子系统,各个子系统独立部署。b)子系统职责定义清晰,子系统没有分层,控制循环依赖;c)单个子系统部署耗时不超过 30 分钟d)80%业务版本需要多个子系统联动升级,升级有先后顺序3系统容量支持水平扩展,能够根据业务的需要通过手工的方式按需扩展。a)由架构设计人员采用领域驱动设计方法对应用进行拆分,定义各个拆分的职责,各个拆分可以独立继续部署。b)架构设计人员采用领域驱动

20、定义应用切分分层及各层职责,各层之间严格控制调用关系(例如上层可以调用下层或者同层),控制依赖的复杂性。c)单个服务系统部署时间不超过 10 分钟。d)30%以下的业务版本需要多个服务系统联动升级。4a)系统容量支持水平扩展,系统能够自动的根据业务需要扩展容量。b)扩展时系统性能不受影响。a) 对应用架构的拆分定义明确的指标和评估方法, 有完整的指标收集方法和流程,并对拆分后的应用健壮性进行评估;例如:使用 Docker、虚拟机等b)对模块耦合性定义指标和评估方法,有完善的流程对指标数据进行评估。c)单个子系统部署耗时 5 分钟以内。d)10%以下的业务版本需要多个服务系统联动升级。5a)系统

21、具备动态容量管理能力,能够根据系统负载 1 分钟内自动扩容, 并且在容量过剩的时候根据一定的策略进行缩容。b)扩展时系统性能不受影响。例如:电商大促、秒杀等场景根据流量自动扩容a)依据指标对架构拆分情况进行评估,并提出实施架构改进措施;b)依据耦合性指标数据评价耦合性现状,有完善的流程和方法对耦合性进行控制。c)单个子系统部署耗时 1 分钟之内。d)没有业务版本需要多个服务系统联动升级。5.4故障处理故障处理(Troubleshooting)是指在系统失效、停止响应或出现异常时识别、规划和解决系统问题的 过程,帮助修理和恢复系统。在系统运行过程中,由于运行环境的变化、软件本身的缺陷等原因,可能

22、造成系统运行故障。在系统出现故障时,要求运维人员能够快速发现和解决故障,即快速的故障处理。故障处理过程循环包括五个步骤,即故障发现、故障追踪、故障解决方案设计、故障排除和故障记录。复杂系统往往由多个子系统构成,任何一个最终用户的操作可能涉及多个子系统之间复杂的协作,故障发现、追踪和排除是一个复杂的过程,快速故障处理需要应用设计提供基础故障处理能力。应用设计从以下几个方面支持故障处理过程,包括日志(记录故障现场)、监控(发现故障)、故障追踪(定位故障)和故障修复,如表 6 所示。5.4.1日志日志是指对系统运行过程的记录,分为开发日志和业务日志。开发日志是记录代码调用过程和状态, 例如 JAVA

23、 程序员一般用 log4j 工具输出开发日志。业务日志是对用户业务操作行为及结果的记录,一般需要设计独立的工具进行支持。业务系统拆分为多个子系统后,如果需要了解整个业务的运行情况,需要综合多个子系统的监控信 息,将多个子系统的监控信息关联起来才能得出业务整体的运行状态信息。通过监控标准化制定统一的监控规范、监控对象、监控数据,监控系统能够将多个子系统上的监控 信息关联起来形成业务整体监控信息。5.4.2监控应用设计需要支持将系统的运行情况实时展示监控信息。系统能够通过工具随时查看当前系统的 运行情况;以便系统运行出现故障时,研发、测试、运维人员等能够及时的获取整个系统的运行情况, 进行快速的故

24、障判断和处理。根据运维提供的监控规范、监控对象、监控指标,应用设计需要支持运维系统能将分散在多个子系 统上运行情况实时的展现出来,并关联起来形成整体监控信息,保证系统可监控。5.4.3故障追踪故障追踪是指应用设计能够支持对实时监控或其它方式获得的问题进行调用链分析,定位故障根 源,为故障处理提供依据。例如,对于复杂的分布式系统,一个客户请求涉及来自多个机器的多个进程 的多个服务协作,故障的定位是一个复杂过程。5.4.4故障修复故障修复是指应用设计支持自动修复常见的故障,例如流量突增、硬件损坏、网络拥塞等,当故障 发生时,系统除了进行告警外,还能够自动采取一定应对措施及时处理,降低故障影响范围和

25、程度,减 少故障影响时长。对于一些不常见的故障,支持人工故障修复。在故障处理完成之后,还需要记录故障, 以便后期进行故障分析和积累故障管理知识。表6 故障处理级别日志监控故障追踪故障修复1a)各应用模块/ 层采用不同的规范和格式输出开发日志;b)开发日志存储在各个运行环境中;c)日志记录随意, 缺乏完整性;开发和运维分离,开发独立完成监控设计。系统是黑盒状态,运行状态无法获取,出现问题仅靠运维人员经验猜测或者看源代码推断。系统无故障处理能力,出现故障后需要人工处理。系 统的 错误 信息 会打 印日志a)模块/ 层并制定并实施了开发日志规范;b)开发日志完整记录程序调用过程;a)制定了架构层面标

26、准化监控的规范b)各系统按照规范独立实现监控功能依靠人工方式进行日志分析。系统提供故障处理能力,但需要人工触发操作,例如手工降级、手工倒换、手工切换冷备机房。3a) 开发日志记录统一追溯标示,开发日志支持调用链分析;a)运维人员在应用设计前, 提供完善的监控规范、监控对象和监控指标;b)运维人员全程参与应用设计;a)有专门的故障追踪工具;b)系统的关键信息能够通过日志查看;当出现硬件级别的故障时,系统能够在 5 分钟内自动恢复业务。常见手段如主备、集群b)有统一开发日志存储环境集中日志实时存储;c)设计专门业务日志系统,系统支持业务日志收集;c) 按照监控规范要求进行完整的监控设计;c) 单个

27、子系统提供输入输出相关的监控,图形化展示,例如:吞吐量、响应时间、错误码分布。a) 支持端到端开发支持监控系统能够基于不同系统的监控信息,构建全链路、全业务监控。此项能力关注的是监控信息关联和展示a)单个子系统提供处理流程相关的监控,图形化展示,例如:输入(请求量)、输出(响应时间)、处理步骤(访问数据库的性能)等;b)多个子系统的监控信息能够关联起来形成整个业务系统的监控全景。当出现机房级别的故障时(机房断电、机房被攻击、流量突发等),系统能够在 5 分钟内自动自动恢复业务。常见手段如同城双活、限流。日志记录;b) 开发日志与业务4日志能相互贯通;c) 业务日志支持敏感业务审计;监控系统能够

28、基于全a)整个业务系统的监控能够进行自动预警;b)多个业务子系统能够针对具体的请求进行细粒度的监控,监控信息能够关联起来,形成业务请求全链路监控。例如微服务系统里面的全链路跟踪。当出现地理位置级别的故障时,系统能够在 5 分钟内自动恢复业务。常见手段如异地多活。建立制度化日志评审链路、全业务监控进5机制,定期对日志质量进行评估,提高日行自动化预警、故障定位。此项能力关注志有效性。的是监控信息分析和诊断附 录 A(规范性附录) 五级度量指标定义级别英文中文定义1级Initial Level初始级在组织局部范围内开始尝试DevOps活动并获得初期效果2级Foundation Level基础级在组织较大范围内推行DevOps实践并获得局部效率提升3级Comprehensive Level全面级在组织内全面推行DevOps实践并贯穿软件全生命周期获得整体效率提升4级Excellent Level优秀级在组织内全面落地DevOps并可按需交付用户价值达到整体效率最优化5级Fabulous Level卓越级在组织内全面形成持续改进的文化并不断驱动DevOps在更大范围内取得成功

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1