架构孪生:架构的数字化形态???
admin
2024-02-22 12:22:28
0

架构孪生是一种旨在精确反映架构设计、实现与运行态等的虚拟模型,以数字化的形式对软件的架构、代码模型、分层、实现技术等的进行动态的呈现。

PS:我们本无意于创造一个新的概念,只是在探索如何更好的度量架构的过程中,发现借用于已有的成熟模式,可以让这件事情变得更简单。

治理架构时,我们(ArchGuard 开发团队)一直推荐三态治理的方式,即设计态、实现态和运行态,以全面 + 数字化的方式来思考问题。在过去版本的 ArchGuard 中 ,我们一直致力于实现态的治理,通过对代码的静态分析,结合规则和 Linter 来识别和治理问题;而在 Feakin 中,探索的是如何构建设计架构 DSL 与实现的双向绑定,以此来进一步减少架构中的设计问题。那么,现在探索来到了运行态,我们又应该如何将它与现有的设计态和运行态相结合呢?所以,构建架构的数字化形式,便是我们所考虑的一种方案之一。

也因此,我们在这篇文章里分享一下,我们尚在验证、还不成熟的思考。

引子 1:生命周期中的反馈回路

我们做架构设计审查、代码度量等的目的是:掌握现有系统的设计与实现,以有序引导架构演进的方向。所以,我们围绕于生命周期的设计态实现态运行态,以持续架构设计的反馈回路,即由输出端的变化来调整输入端。所以,我们围绕于三态:

  • 设计态:目标架构。通过 DSL(领域特定语言) + 架构工作台来构建 。

  • 开发态:实现架构。关注于:可视化 + 自定义分析 + 架构治理。

  • 运行态:运行架构。结合 APM 工具,构建完整的分析链。

我们应该预期这样一些反馈回路:

  • 设计 DSL 与开发态的代码实现绑定。可以反应原来的设计 DSL 是否原理,代码实现是否能与原先设计一致?如果不能那么问题出在哪里?

  • 设计态的服务蓝图与开发态的服务地图(ArchGuard 静态分析)、运行态的调用链路相绑定。可以反应与外部系统的设计和交互是否合理?是否符合当初的预期?

  • ……

而在构建反馈回路的要点是:对于架构进行量化。

引子 2:架构能准确描述吗?

量化架构是一件困难的事,难度不在于代码和架构的模型本身。如果只从标准的架构定义来说,在先前的文章《如何为代码建模?》、《为“架构”再建个模:如何用代码描述软件架构?》介绍了代码的模型和架构的模型。但是,但是,我们都知道架构师是有无限的责任边界的,你要考虑所有不可能考虑到的底层问题,代码规范、数据库规范、异常处理机制等等。

既然如此,架构师的架构边界在哪里?如果我们的职责超脱了狭义的架构本身,那么我们描述架构的方式是否应该改变?

所以,我们需要寻找 “动态” (适用于不同组织)的架构模型,以及 “动态” 的治理模型。那么,答案是:

  • 架构的数字孪生

  • 架构适应度函数

足够的自定义模型的空间可以让问题变得简单起来。

架构孪生:数字化架构的虚拟模型

回到我们参考于数字孪生的架构孪生定义上:

架构孪生是一种旨在精确反映架构设计、实现与运行态等的虚拟模型,以数字化的形式对软件的架构、代码模型、分层、实现技术等的进行动态的呈现。还能允许在每个阶段模拟新代码和设计带来的变化,以持续优化架构。

由此,架构模型是可持续建设和运营中使用的架构孪生策略的关键组成部分。只是呢,为了实现这样的技术,我们需要面对几个挑战:

  • 架构模型因子

  • 生命周期跟踪与反馈

  • 虚拟化演进路径

除此,还有一个非常有意思的问题依旧在考虑中:模拟态。如何针对于新的需求,动态模拟软件的架构演进,以发现潜在的架构瓶颈?

值得一提的是,模型的可视化是数字孪生的一个难题。而在架构侧,Codecity 是一个非常不错的可视化解决方案。

架构模型因子

如何描述架构模型呢?只需要寻找我们所需要的架构因子,便能构成我们的架构模型,再将其虚拟化。

在构建数字孪生时,我们会给研究对象(例如,风力涡轮机)配备与重要功能方面相关的各种传感器。同样的在构建架构孪生时,我们也需要一系列的 "传感器" 来测量研究对象的各种属性。对照之下,我们也可以定义三种形态的 "传感器" :

  • 设计时 - 架构描述性 “传感器”:描述性传感器用于描述架构的功能、特性和行为。

  • 开发时 - 静态量化 “传感器”:静态量化传感器用于描述架构的实现技术。

  • 运行时 - 探针(probe):探针用于描述架构的运行时行为。

那么,接下来就是确定一一个详细的架构因子,并将他们组合在一起,构建出自己的适应度函数。在实现上,每一个架构因子可以对应于一个或者多个构建任务,这便是我们想构建 ArchGuard CodeDB 以支撑种类繁多的架构因子。

生命周期跟踪与反馈

如我们在引子 1 所描述,我们应该跟踪于生命周期中的架构因子,并根据已有的模式和规则为构建反馈回路。

  • 可视化架构模型。类似于 Codecity

  • 内建规则以提供反馈。

  • 构建专家系统。

从孪生的角度来讲,难点是相似的:提供反馈与告警机制。

虚拟化演进路径

在这一部分,我们想的是解决一个问题:如何体现你的架构未来会有问题?

我们经常听别人说到:“你的架构不具备可伸缩性”,那么如何通过孪生来体现呢?既然,只有带有回路反馈的全生命跟踪,才是真正的全生命周期概念。那么,在拿到足够的数据时,我们是不是能模拟架构的未来演进。诸如于,根据历史的变化趋势,能否发现未来的瓶颈点?

譬如说,将模拟函数施加到系统之上,看出可视化模型的变化,进而构建基于现有系统的反馈,借此调整系统的设计。

其它

假设,我们将系统看作是一个个的生命体,那么理论上通过参数化,可以构建一个类 “康威生命游戏” ,便能监督系统的演进。对于 AI 写代码来说,我们只需要设定好输入和输出的,AI 应该帮我们写好程序。对于架构而言,我们只需要设定好架构,AI 理应生成对应的应用。

我们在构建 CodeDB,以承载更多的架构因子:https://github.com/archguard/codedb-poc,也欢迎一起探讨架构孪生的可能性。

相关内容

热门资讯

测血糖怕疼、嫌麻烦?这6个方法... “一天扎好几次手指,手指头都快成筛子了……” “每次测血糖之前都紧张半天,下不去手。” “上班忙、带...
洋河迎来价值重估时刻:从消费者... 5月12日,洋河股份举行2025年度网上业绩说明会。洋河股份董事长、总裁顾宇带领管理层集体出席。 这...
四大指数集体收跌,沪指失守42... 每经记者:杜波 记者|杜波 编辑|陈柯名杜恒峰校对|程鹏 14日,A股市场震荡调整,截至收盘,创业...
原创 5... 写在文章前的声明:在本文之前的说明:本文中所列的投资信息,只是一个对基金资产净值进行排行的客观描述,...
信立泰“心衰神药”遇挫,“药茅... 千亿梦想还在。 作者 | 孙梦圆 编辑丨于婞 来源 | 野马财经 因为“心衰神药”临床不及预期,“慢...
阿里终于看到回头钱了 出品|虎嗅商业消费组 作者|苗正卿 题图|视觉中国 阿里正在获得一批新的“小弟牌印钞机”。 多年前投...
伊利、蒙牛盯上新赛道!盒马等已... 本文自南都·湾财社。 采写 | 南都·湾财社记者 王静娟 中国水饮市场又一细分赛道被巨头盯上。 近日...
伯希和更名,三战港股ipo,“... 出品丨搜狐财经 作者丨柴鑫洋 编辑丨李文贤 被称作“始祖鸟平替”的户外品牌“伯希和”,它的母公司“奔...
视频直播丨维通利5月15日深交... 来源:全景财经 维通利新股发行上市仪式 维通利新股发行上市仪式将于2026年5月15日08:57-0...
余额宝破“1”!1万1天仅挣2... 闲钱理财收益再创新低! Wind数据显示,自5月5日天弘余额宝7日年化收益率跌破1%后,该货币基金的...
航运股逆市拉升,发电设备等跌幅... 【导读】上午A股三大指数震荡回调,航运股逆市拉升,工业气体、猪肉概念股上涨 中国基金报记者 张舟 5...
原创 1... 去年,微软有整整50万块AI芯片,就这么趴在仓库里睡了18个月。不是买不到,是没电用。与此同时,中国...
ETF收评:沪指失守4200点... 5月14日,A股市场整体震荡走弱,创业板指、深成指跌幅均超2%,沪指失守4200点关口。截至当日收盘...
一季度我国工程机械产品出口额同... 今年一季度,我国工程机械行业国际化步伐持续加快,海外业务比重显著提升,工程机械产品出口保持快速增长。...
原创 1... 合肥只排在第11名,杭州连重庆都不敌?这组新一线城市排名让人感到惊讶,因为这几个城市个个都是当地的明...
微软被曝考虑收购大模型创企,S... 智东西 编译 | 佳扬 编辑 | 云鹏 智东西5月14日消息,据路透社今日报道,微软正加速布局AI初...
开局就面临“地狱级”大考!沃什... 面对难啃的通胀,华尔街对沃什深表忧虑,投资者正摩拳擦掌,准备迎接美国国债收益率将更高的新常态。 中东...
马斯克中文发帖:我的儿子正在学... 5月14日上午,特斯拉首席执行官马斯克携幼子现身人民大会堂,孩子身着新中式上衣。 当天稍晚,马斯克在...
“童鞋界爱马仕”冒犯打工人?泰... 在各大交通枢纽铺满广告的童鞋品牌泰兰尼斯,却因一则广告引发了争议。 近日,泰兰尼斯一则“送礼就送稳跑...