• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

如何构建“横跨全流程 的双态交付模型”?

2023-11-29发布
  • 0关注
粉丝:0人 关注:0人

(转载自2023年《数字化运维》“聚焦-跨越双态”栏目)

 

/王英伟 

由于工作关系,我接触到一些金融机构的运维部门。在交流的过程中,发现无论是高层领 导、还是具体的执行层, 大家都在谈论双态运维。 下面我们谈谈双态运维的含 义,及如何构建横跨全流程的双态模型 

双态运维, 包括稳态敏态两部分。 稳态方面, 究其原因, 由于金融机构 ToB产品及技术架构的特性,往往牵一发而动全身。例如,一个政策的变更,往往会导致 从app、支付系统、审计系统到最后核心交易系统整个链条发生变更,会牵涉到跨部门、 多团队的协作;另一方面,由于涉及到经济交易,合规、风控等往往要严格得多,就必然 需要保障系统与产品的高可靠及稳定性。 

敏态方面,由于互联网产品的冲击,要求运维部门必须快速支撑业务发展,更快地响应市 场变化,积极促进新产品布局及商业模式验证。 

一、    双态模型概念历史由来

1 技术发展三大阶段 

首先从技术发展历史的角度,来看看双态运维模式产生的基础。纵观近几十年的技术发展,大致可以分成三个阶段。 

l  信息化时代:上世纪九十年代前后,软件开发模式以瀑布模式为主,技术架构则是单体架构模式,至于部署模式则以裸机为主,PC放在数据中心,如需扩容则以纵向扩容为主。此时的应用大多是ToB模式,直接部署在操作系统层,所以此时的运维发布流程则以稳态为主,此时的应用强调安全、稳定,基础设施多采用集中式部署和高端服务器。

l  互联网+时代:到了本世纪初,尤其是敏捷宣言发布以后,软件开发模式转变为敏捷开发,各种敏捷开发框架比如ScrumKanban等逐一发布。此时的技术架构也发展到了多层架构,其中以SOAESB等技术框架为代表。与此同时,虚拟化技术也有了进一步的发展,其中以虚拟机的出现为代表,更加适应了多层架构的部署模式,而集群扩容则以横向扩容为主。

l  数字化时代:到了2015年前后,随着DevOps概念的产生与发展,软件开发模式也发展到了开发运维一体化的阶段,主要强调打破开发、运维之间的界限,让两种角色在同一个团队中更好的交流协作。此时的技术架构,则以微服务模式为主,一个应用会有几十个、甚至几百个服务在后台进行支撑。而虚拟化技术则发展到了容器时代,一个虚拟机中可以部署十几个、甚至几十个服务。后台资源则以公有云、私有云的形式,通过自助服务进行扩充。 

由此可见,双态运维也是随着软件开发模式、技术架构、虚拟化等技术的发展,逐步发展而来的。归根结底,技术是为业务服务的,必须保证业务价值的最大化。下面以金融行业为例,阐述如何把双态运维扩展成横跨全流程的双态交付模型

二、    三线融合,构建“横跨全流程的双态交付模型”

针对软件企业而言,为了完成产品的设计、开发、上市,内部存在着三条线。

l  第一条是管理价值流(如图2所示),主要以业务需求为流动单元,以流程审批、需求管理为主,承载的系统多是OA、工作流程审批、需求管理系统等,从项目管理的角度来规范软件开发相关活动。

2 管理价值流

l  第二条是构建价值流(如图3所示),主要以实现业务需求的功能代码为流动单元,其中包括代码仓库、编译构建、制品仓库、自动化测试、安全扫描、持续部署等系统,从工程的维度,管理代码从提交到上线部署的相关活动。

3 构建价值流

l  第三条是发布价值流(如图4所示),主要以发布包为流动单元,管理不同的资源、环境、事件、服务、问题及变更等内容,以ITILITSM等系统为主,从发布运营的维度,来管理部署之后的相关活动。

4 发布价值流

在金融、能源、生产制造类的企业中,这三条线分别由不同的部门管理使用,比如管理价值流一般由业务、需求、项目管理部门或者人员在使用,构建价值流一般由开发、测试人员在维护使用,发布价值流一般由运维、基础设施团队在维护使用。但企业是一个整体,如何让这三条线更加流畅的协作,以适应业务发展形式的方式,提供有力的支撑,一直是困扰企业多年的问题。

就整个企业架构而言,上层的管理价值流融合了企业内部各个角色,而底层的构建价值流、发布价值流,则承载着各个阶段的管控措施。流程与工具相互结合,才能最终支撑业务价值的交付。

三、    如何构建支持“横跨全流程的双态交付模型“的管理、发布价值流


在项目管理领域,双态模型包括稳态、敏态两种模式的开发流程。对于两种模式的产品,其特点对比如表1所示。

1 项目管理两种模式特点对比

而在运维侧,也存在着稳态与敏态业务,他们的特点如表2所示。

2 运维两种业务特点对比 

通过对比我们可以看出,只有从产品、项目立项开始,就确定好它的管理、发布模式,在研发侧打通整个平台模块之间的功能,形成联动效果,把发布价值流中的反馈、告警信息转化为新的需求,进行流转,才能从根本上真正支持横跨全流程的双态交付模型 

四、    如何构建支持横跨全流程的双态交付模型的流水线

以金融行业为例,其核心系统大多属于稳态模式(此处包括管理价值流、构建价值流、发布价值流三个领域),无论是开发模式,还是上线部署模式,大多以季度或者半年为发版周期。而金融行业的移动端应用或者ToC的业务,属于敏态模式(此处也包括管理价值流、构建价值流、发布价值流三个领域),其开发、上线大多以4~6周为发版周期。

3 稳态产品流水线类型

为了支撑不同的项目形态,持续集成流水线也需要分成不同的种类,进行交付。比如对于稳态类型的项目,我们一般会分阶段用不同的流水线进行支持,比如预构建、集成构建、版本验证与发布流水线等。而对于敏态项目,一般会使用一条流水线贯穿整个阶段。 

以某金融机构为例,对于稳态项目类型(如图5所示),分为自主开发、定制化、预研流程和平台开发四种流程,那么对应不同类型的项目,就需要几种流水线进行不同组合,来配合发布上线。基础设施侧,也需要通过稳态流程进行支撑。

5 某金融机构稳态产品管理流程 


而对于敏态项目类型(如图6所示),由于发布周期较短,客户对交互设计、更新频率等内容容错率较低,所以大多数产品,都是使用一条流水线,发布到预生产环境。其中如果出现Bug,则整条流水线停止运行,等待问题解决或者回滚。SITUAT、生产环境出现的问题,也转换成新的需求,通过需求流程进行解决。基础设施侧,则需要通过容器化的技术手段,进行发布支撑。

6 某金融机构敏态产品管理流程

对于持续集成平台,尤其是要支持变化频发的敏态项目,必须具备流程的编排能力。即用户可以自行定义软件交付过程的每个步骤,以及各个步骤之间的先后执行顺序。在流水线设计阶段,按照stagesstagestep这样的三层模式(此处以jenkins file脚本为例)进行流程的设计组装。

综上所述,从持续集成角度而言,也需要区分不同的产品、项目类型,使用不同的流水线类型(一条还是多条)、流水线模式(固定模式还是自主服务模式)进行支撑。 

五、   如何构建支持横跨全流程的双态交付模型的管理、发布价值流

7 流水线产品自助服务示意图

 

如图7所示,针对传统行业,相对缺乏全栈工程师,所以只能要求各岗位角色各司其职,比较顺畅地共同交付业务功能。对于产品经理、项目管理人员,采用ScrumKanban等敏捷框架,加快产品和开发团队的交流协作。对于运维团队而言,只要负责维护基础设施,设计、搭建好流水线模板。对于开发团队而言,只是流水线的使用者,在不同的阶段,对流水线模板进行简单的配置即可使用,一旦流水线出现不能解决的问题,立即通知运维团队进行修复。只有这样做到管用分离,才能以双态的方式,构建横跨全流程的双态交付模型

六、    如何构建支持横跨全流程的双态交付模型的效能洞察

从研发数据度量的维度而言,在传统企业,很多度量数据和度量指标,分散在不同的工具或者系统里面。比如需求过程管理数据存储在项目管理系统中,代码提交评审信息存储在代码仓库中,流水线执行的过程信息存储在持续集成平台中,测试报告存储在测试服务系统中,系统监控、日志信息存储在运维平台中等等。

而对于开发过程中每种角色,管理者、产品经理、开发人员、测试人员、运维人员,每个角色的关注点不同,展现的指标数据也不同。但这些指标元数据之间,又存在前后的关联关系。所以对于构建横跨全流程的双态交付模型的效能洞察而言,将割裂的软件开发流程收敛到一个平台上,通过收集软件开发全流程的数据,并进行智能分析,从而让整个软件交付过程的全部信息对所有人都可视化。


比如项目管理、开发侧的元数据,则需要分阶段采集,进行统一存储展示,以研发数据链、驾驶舱的形式进行展现,而运维侧CMDB存储的运维的元数据,即可成为连接运维场景的数据桥梁,可供监控、告警等场景使用(如图8所示)。

8 效能洞察示例

七、    结束语

双态运维只是不同类型产品,在运维阶段不同部署模式的一种体现。在云原生技术飞速发展的时代,我们需要尽可能的打破工作领域的限制,以全局的视角,分析从需求提出到上线运营的整个链路,来构建基于横跨全流程的双态交付模型。以管理价值流、构建价值流、发布价值流为主线,分别从管理、工程、度量、团队成员工作职责等多维度相互配合,根据企业内部不同的产品类型,选择适合的交付模式,快速、稳定地为最终用户提供业务价值。

 

 

0个回复

该话题暂时没有网友回复过

回复

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作