网络DevOps平台规划、设计与实践:基于企业架构(EA)和领域建模(DDD)的方法
上QQ阅读APP看书,第一时间看更新

1.1.3 网络DevOps的构成

回顾整个IT行业的发展历程,新思想和新技术的发展总是同标准化的模型与框架相伴相生的。当某个技术逐渐成熟时,就需要一套模型和框架来帮助人们快速跟上节奏,找准方向,从而实现大规模推广并健康发展。网络DevOps,自然也应该建立和统一其框架模型。

网络DevOps框架分为平台、人和机制三部分,同时也是网络DevOps的三大组成要素。

图1-1 网络DevOps框架的三大组成要素

1.网络Devops平台

网络Devops平台是网络DevOps的落地物理形态,是其核心。网络DevOps本质上就是一种智能管控模式,这种模式最终会以一种物理的形态——网络DevOps平台——一个贯穿了网络DevOps理念的网络管控平台来实现落地。

网络DevOps平台的目的是帮助网络工程师实现网络运营活动的线上化,为网络运营和网络服务等各种应用的编排、管理、运行、运营提供承载。

网络DevOps平台也是对研发效能进行管控的手段,是保障各种管控机制落地的工具。研发工程管理中涉及的发布、测试、质量内控、安全等都要通过这个平台进行约束和效果体现。

网络DevOps平台还是人员能力转型和融合的助手。不管是网络运营向研发的转型,或是研发向网络运营的拓展,都可以借助平台的沉淀、开放和共享能力来实现。

网络DevOps平台既要实现网络DevOps的基本目标,即快速满足业务需求并持续改进运营能力,又要规避和解决以往建设与运营不同形态管控平台中所遇到的问题,因此它的规划、设计、开发和部署乃至运营,都和以往的网络管控平台建设有很多不同,在设计方法、技术架构、人员能力、开发模式和运营模式上都有新的要求。

因此,在网络DevOps平台的规划设计中引入中台的概念和方法、引入DDD的理论和实践、在开发中引入敏捷的方法、在运营中注重治理的能力非常重要。

在后面的章节中,会逐一介绍这些方法,以及运用这些方法所开展的一些具体实践。

2.角色的协作与联动

人是网络DevOps的主体,负责网络DevOps的规划、设计、开发、运营等一系列实施活动,并从网络DevOps中受益。要将人的能动性和价值发挥到最大,就必须有一系列的岗位和角色来支撑。

在网络DevOps的目标下,简单的网络工程师+平台研发的角色模式已经不能满足要求,网络DevOps建设和运营过程中的角色包括业务架构师、系统架构师、产品经理、应用开发人员、平台开发人员、测试人员等,这些角色以及相应的技能要求,与既有的传统单体系统开发模式存在不小的差异。

只有每个角色都充分发挥其作用,并以项目的形式充分协作和联动起来,才能将平台的价值最大化,将机制真正落实生效。

(1)架构师

架构师包括两类,业务架构师和系统架构师。业务架构师负责从企业战略的角度,设计网络运营的业务架构,并与产品、技术人员一起推导出相应的应用、技术架构;系统架构师负责从系统复杂度的角度,分析网络DevOps平台的复杂度,最终确定需要采取的架构策略和技术选型,并完成技术中台的设计。

(2)产品经理

产品经理负责网络DevOps平台产品层面的规划与设计。产品经理将来自业务及网络运营的需求进行抽象和提炼,转换成应用架构设计,同时负责网络DevOps平台中业务中台、数据中台的设计和平台治理能力的设计,并协助应用开发工程师实现应用的规划和落地。

产品经理同时负责平台对外商用服务能力(产品)的规划和设计。

(3)平台研发工程师

平台研发工程师(后文简称平台研发)负责网络运营管控平台的开发,负责技术架构的设计和开发落地,负责网络DevOps平台中业务中台、数据中台、技术中台的开发实现和平台治理能力的开发,并协助应用开发实现应用的开发、部署、测试和验收。

在网络DevOps中,平台研发工程师往往也兼职平台运营的工作,即负责网络DevOps平台的治理和日常运营,包括各类服务与运行指标的分析、平台优化和异常问题(含平台级和应用级)的诊断、定位、处理与反馈跟踪等。

(4)应用开发工程师

应用开发工程师(后文简称应用开发)负责网络DevOps上基础应用和其他复杂应用的开发与发布;并负责应用全生命周期的管理,如授权、审批等。

应用开发工程师还承担着网络运营的工作,属于传统的网工工作范畴:负责基础网络(包括IP网、传输、移动接入网、移动承载网、overlay网络等)的规划、运维、资源管理等基础运营工作。这些工作将更多地通过网络DevOps平台投产后的应用来实现和完成。

(5)测试工程师

测试工程师负责网络DevOps平台上业务平台、数据中台、技术中台相关功能模块的单元测试、集成测试,负责应用发布前的单元测试、集成测试和灰度测试,也负责安全方面的相关测试。

(6)客户(网络所承载的业务)

业务即网络承载上承载的主流应用,如云、支付、微信等。对互联网大厂,业务一般指一个BU(Business Unit)或者BG(Business Group);对网络运营商,业务一般指所有承载在其上的重要政企客户,如阿里、腾讯等。

业务既是网络承载的客户,也有可能是网络DevOps平台本身的客户,因为通过合理的产品设计,网络DevOps平台可以向业务客户开放部分服务或者能力。

3.保障约束机制

机制用于保障网络DevOps文化和理念的正确执行,用于保障平台和应用运行的安全与稳定,用于保障不同角色间的顺畅合作。

任何新技术、新模式的落地,除了项目组成员的主动探索以外,更离不开各种制度、流程、组织架构的规范与保障,否则会在实际的实施或者运行中慢慢偏离最初的设想,更严重的,会因为一些问题持续得不到解决而夭折。

平台建成以后,必须高度重视平台的持续运营。网络DevOps是一个运营平台,用于保障生产活动安全、稳定、敏捷、持续地进行,保障技术价值得以高效地流动。因此,若平台自身不能持续运营,也就无法从根本上保障生产活动的各个参与团队和不同环节间的良性运转,网络DevOps对业务的吸引力也必然会逐渐丧失。

因此,从需求的管理到应用的验收上线,从工作流的管控到价值流自身的可视化和反馈等,都需要从组织到制度等一系列配套机制来支撑实现。

流程或者机制的保障,不是靠线下的“重”流程来实现的,而是需要通过技术、通过平台能力来提供。机制只是方式,平台才是手段。虽然听起来有点绕口,但其本质就是用平台自身能力来保障平台自身的持续运营。