确认架构规划完整性的八个关注点

简介: 【1月更文挑战第19天】

通过架构规划中的确认环节来控制风险与保障交付,就是在这个环节的核心关注点。具体而言,规划确认包含八个部分。

1、定稿架构规划文档

在定稿的过程中,你可能会和不同团队、企业外部专家产生诸多交互。这个时候你就需要与执行者确定规划内容。因为之前的收集主要是作为规划的输入,而不是执行者的承诺。所以你就需要把输入转成一个可行且有约束力的规划。


架构师的角色有点像律师。除了最小化交付风险外,还要确保所有参与者有能力且有意愿履行他们的责任。怎么确保呢?答案是为参与者拟定一个合同。


这是一个用来提升交付确定性的切实有效的工具。规划确认过程中的每一个交付项,比如用例文档、必保任务、领域模型、API 设计、消息和数据流、整体交付节奏和完整性验证等,都指向同一个目的,即提升交付的确定性。这也是架构规划的实质。


2、组织用例文档

用例文档是关于交付内容的最简洁的描述。它的作用是描述架构活动中某个团队或者小组要为某个用户角色,在某个场景中,创造出某种价值。


需要格外注意的是,无论是写用例,还是用一张图来表示用例,都需要避免堆积。在一个架构活动中,不论是十个人还是上百人参与,最顶层的用例最多也不能超过十个。


对用例的描述除了要尽量简洁外,还要将其整理成一个文档。这样的话,几乎所有人都能通过阅读这些用例来获得更为宏观的视角。而具体的每个场景的细节描述和需求文档,可以通过链接记录到另外的文档中。


3、确认必保任务的交付节奏

在架构规划的环节,我们还需要重新梳理一遍在任务边界划分中,做出来的具体的任务描述。并且要确保这些必保任务录入到了 Jira 之类工具中。借助这个工具,我们需要收集所有必保任务,并确认任务分配和交付排期。最终,我们需要通过这个工具来跟踪所有必保任务的交付情况。 需要注意的是,这些必保任务也要和用例形成关联关系。


4、确认领域模型

同样,在这个阶段之前,你准备的领域模型也是一组输入。那么在规划确认这个环节,你就需要完成定稿。这是一个统一语义的过程,整个架构活动只能有一个问题域模型。虽然不同的执行者可以帮你梳理领域模型,但是你必须把整个领域模型整理到同一个语义环境中。这是对于架构活动中要解决的问题的准确描述。另外,你必须让最终的执行者来确认领域模型。因为之前帮你起草领域模型的,不一定是最终的执行者。


5、确认 API

有了用例文档、必保任务和领域模型,接下来就可以请各个团队完成 API 设计了。如果架构活动中主要使用的是 RESTful 框架,那么 Swagger 就是一个非常好的选项。


相比 Wiki,Swagger 的优点是:

  1. 有约束性。我们刚才把架构师在这个环节的角色看作律师,那么我们就要看看执行方能提供什么样的服务。
  2. 易读易用。对于大多数程序员来说,读代码要比读文档更便宜。
  3. 有 Copyright 和 Ownership。研发人员非常在意自己的口碑,一般比较资深的研发都会在 API 的定义上面下很大的功夫。不像 Wiki,很容易变成一个 Group 文档。
  4. 有投入度。连 Swagger 都不想写或者写不出来的人,估计你未来也很难撬得动他,甚至也用不上这样的人。所以在 Swagger 上的投入,能让你提早发现资源和能力上的问题。
  5. 规范性好,很容易在团队中标准化掉。
  6. 可测试性好,容易验证其完整性。
  7. 长期回报大。仅架构活动本身,对定义者本人的价值就很大,可以帮助他想清楚问题。而对于依赖这个 API 的人来说,价值就更大了。他可以及早做 Mock 测试,及早给出反馈意见,避免在很晚的时候才发现集成问题。长期来看,还可以让整个团队形成好的设计习惯,从而提升整体的 API 质量。这是个典型的有复利的编程模式。


6、确认消息和数据流

在确认好 API 之后,接下来就要去确认消息和数据的流转了。也就是某个角色在某个时间能为某个使用方提供某些消息和数据。消息,是除了 API 调用外服务间最常见的通讯机制,甚至可以说是过分常见了。事实上我一直在怀疑,过去大多数利用消息解耦的场景,在今天的计算能力之下,到底还是不是一个好的设计模式。


这是个常规工作,没太大的技术难度,难的是保障资源投入、模型质量和数据质量。所以如果在这个阶段就及早规划,会省去后续很多麻烦。


7、确认强依赖任务的交付节奏

虽然通过依赖解耦和 Swagger 的应用,能让你并行处理一些工作。但是真正的集成,以及对异常情况的处理,还是需要完成强依赖任务后才能进行。所以确认强依赖任务的交付节奏,是你这个架构师、项目经理和执行者在各个用例层级上都要进行的任务。


8、确认整个架构规划的完整性

整个架构规划的完整性确认,需要测试和相关团队核心人员的介入,从而确保核心场景的核心用例能被现有的功能所覆盖。同时也要确认 API、消息、数据是完整和兼容的,整体集成风险是可控的。在这个环节,一般不太关注边界条件的梳理,主要是担心会把过多的注意力分散在较小,甚至是比较难的异常情况梳理上,而在核心场景和强依赖任务的梳理上投入得不够。


规划确认环节的王道,就是通过精细规划来控制风险,保障全面启动前交付风险的最小化。


相关文章
|
2月前
|
域名解析 弹性计算 云计算
【深度好文】中小企业上云,为什么做好网络架构规划很重要!
本文通过一位小微软件公司技术负责人的实际体验为始,引发了对大量小微企业上云架构实践的研究。 发现中小企业上云时,往往聚焦于业务测试和服务尽快上线,很难有精力投入在云上技术架构的规划和设计中。所以,大家云上的架构五花八门,很多架构缺乏长远规划,极可能给业务未来发展埋下隐患。 基于此,我们沉淀了一套《应用上云经典托管架构》,强调了上云架构规划对于业务的重要性,并带领大家理解了方案中的网络规划和架构设计全过程。 作为从事企业上云IT部门,或者初创事业的个人开发者们,都可以参考和了解。
|
3月前
|
存储 XML 数据管理
数据架构规划与设计
数据库在数据管理方面具有管理方便、存储占用空间小、检索速度快、修改效率高和安全性好等优点。
49 1
|
6月前
|
存储 监控 关系型数据库
关系型数据库设计集群架构节点规划
【5月更文挑战第6天】在实际项目中,可能还需要考虑其他因素,如安全性、合规性、成本等。因此,在进行关系型数据库设计集群架构节点规划时,建议与经验丰富的数据库管理员和架构师合作,以确保项目的成功实施和稳定运行。
61 4
关系型数据库设计集群架构节点规划
|
6月前
|
监控 Java 数据库
揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)
揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)
100 0
|
11月前
|
安全 网络架构
对转发路由器TR在企业云上网络架构规划中的使用体验测评
对转发路由器TR在企业云上网络架构规划中的使用体验测评
491 3
|
机器学习/深度学习 算法
【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构
【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构
144 0
|
机器学习/深度学习 Kubernetes API
「容器架构」 K8s 集群如何规划工作节点的大小?
「容器架构」 K8s 集群如何规划工作节点的大小?
|
架构师 前端开发 安全
|
消息中间件 Cloud Native Java
【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
713 1
【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
|
消息中间件 Cloud Native RocketMQ
带你读《企业级云原生白皮书项目实战》——6.3.4 未来规划
带你读《企业级云原生白皮书项目实战》——6.3.4 未来规划
104 0
下一篇
无影云桌面