软件架构中的经典思想及网络枢纽制胜

软件架构中的经典思想及网络枢纽制胜,第1张

软件架构中的经典思想及网络枢纽制胜

灵活性和成本与效率的两难问题是软件架构中的核心问题,一个著名的案例体现为数据库领域的One Size Does’t Fits All现象。

通用系统往往采取的是提供SQL等灵活的编程接口的方式,按需从基础的算子开始计算。这类似自然科学特别是物理学的还原论,灵活性强但成本高、效率低。

为特定场景都定制特定系统,或根据预先设定的计算模式进行预计算,运行效率高,但不灵活。对于定制系统来说还存在研发成本高的问题。

模块化的思想是提取各系统可重用的模块,降低系统的研发成本,支持通过组合实现灵活性。服务化及微服务的思想是模块化思想在分布式环境下的自然映射。中台化的思想是聚焦于组织的核心能力,通过核心能力的灵活组合提供灵活性。中台思想是软件体系结构的模块化思想在业务过程中的自然映射。

我几年前提出的正交组合的设计思想是模块化的一种子类型。正交组合思想是将系统划分为多个面,并为每个面研发少量的几个解决方案,并实现面与面之间解决方案的正交组合,从而让系统的能力达到各个面解决方案的笛卡尔积。例如:

  • 在云计算系统中可将系统划分为虚拟化、集群编排、中间件、监控等几个面。虚拟化层研发KVM、容器、Firecracker等方案,集群编排层研发OpenStack、Kubernetes等方案、中间件层研发RDS、Redis、Mongo等方案,监控层研发哨兵、Prometheus等方案,这就可以比较方便的支持基于KVM做虚拟化、用Openstack编排的RDS或基于容器做虚拟化、用Kubernetes编排的Redis等灵活的解决方案。

  • 在大数据系统中可将系统划分为存储、数据格式、计算引擎、编程接口等几个面。存储层支持HDFS和S3,数据格式层支持ORC、Parquet、JSON,计算引擎层支持MR、Spark、Impala,编程接口支持HiveQL、Spark SQL等。

  • 在分布式事务系统中实现分布式事务引擎与数据库、消息队列和微服务框架的灵活组合。

软件分层的思想是正交组合思想的一种子类型,一般是上下相邻两层之间的正交组合。

六边形架构可视为正交组合思想的一种局部体现,仅考虑模块的对外关系,未涉及整体架构。

全局优化方法是提取多个计算之间重复的计算过程,只计算一次。

*** 作系统的思想是构建一个软件架构中的双边市场,并占据此双边的中心位置,从而难以替代,获得巨大的商业利益。

面向低投入、高产出的目标,上述所有思想中最有价值的部分都可以归结为网络枢纽制胜的思想,核心方法是将系统或者计算打散,打散之后自然就形成了基础计算单元构成的计算网络,然后定位这一网络的枢纽节点,聚焦资源投入这些枢纽节点。例如:

  • *** 作系统的价值来自于他在“资源 / 设备”和“应用 / 中间件”这一双边市场网络中的枢纽位置。

  • 中台的价值来自于他在后台和前台之间的枢纽位置。

  • 全局优化的价值来自于多个计算构成的网络中存在枢纽节点。

  • 正交组合式设计中最有价值的是处于枢纽位置的系统,如支持多种格式和多种编程结构的计算引擎、支持多种消息队列、数据库和微服务框架的分布式事务引擎。

  • iCloud的价值来自于他在iPhone、iPad、Mac中的枢纽位置,令人很难离开Apple体系。

这一思想在业务战略中的价值也是类似的,如平台的商业价值来自于其在双边市场中的枢纽位置,围绕旗舰业务拓展比过度多元化好做也是因为这样会形成枢纽。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5696555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存