HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Spotify 如何可视化系统架构图

  • 2022-08-07
  • 本文字数:1178 字

    阅读完需:约 4 分钟

Spotify如何可视化系统架构图

Spotify 的工程师最近分享了他们在公司内部是如何标准化架构图的。他们定义了一种叫作Spotify软件模型的标准系统模型,并采用C4模型来可视化它。这一组合创造了一种可在整个组织中使用的公共语言,有助于沟通、辅助决策,并为 Spotify 的软件开发提供支持。


Spotify 高级工程师 Renato Kalman 和工程师 Johan Wallin 解释了创建这个框架的动机:


架构图是软件设计的基本要素,也是软件开发中沟通和协作的基本工具。在 Spotify,我们拥有一个非常复杂的应用程序网络,数百个团队开发的数千个相互关联的软件系统组成了这个复杂的网络,所以我们需要一种简单的方法来可视化这些复杂的连接。从技术上说,我们可能可以用一个大型的图表来捕获所有的系统,但它会非常难以理解和查看。为了做出好的设计决策,并以可持续的方式开发我们的软件,我们需要一些可以在不同的抽象级别上观察架构的工具。


Spotify 的工程师将软件组件的元数据保存在一个软件目录中。为了支持标准的架构图,他们创建了 Spotify 系统模型,它包含了一组核心实体和抽象,Spotify 工程师可以使用这些实体和抽象来合成有关软件健康状况、所有权和依赖关系的数据。Kalman 和 Wallin 说:“我们相信,一门有关软件和资源的公共语言有助于促进沟通和协作,这对于我们这种规模的公司取得成功至关重要。”


C4 模型是一种轻量级图形符号技术,用于建模软件系统的架构,由 Simon Brown 创建。它将系统分解为容器和组件。在 Spotify,工程师们采用了 C4 模型符号及其最佳实践。不过,他们用 Spotify 系统模型取代了上下文、容器和组件的抽象层。



C4 模型,来源:https://c4model.com/


Spotify 使用Backstage存储软件目录元数据。Backstage 是一个开源平台,用于构建开发者门户网站。这个项目由 Spotify 推动,是 CNCF 的一个孵化器项目。他们利用 Backstage 的可扩展性创建了一个叫作 Architecture 的插件,这个插件可以根据存储在 Backstage 中的 Spotify 系统模型元数据生成 C4 图表。Kalman 和 Wallin 说:“在 Backstage 中存储系统模型元数据对于组件发现、理解软件组件之间的生命周期、所有权和关系,以及自动生成软件可视化图都非常有帮助。”


Spotify 系统模型由几个核心实体组成,包括表示软件组件之间边界的 API、表示单个软件块的组件,以及运行时操作组件所需的基础设施资源。


核心实体之间的关系,来源:https://engineering.atspotify.com/2022/07/software-visualization-challenge-accepted/


随着目录数量的增长,这些组件变得越来越难以理解、审查和相互关联。因此,他们引入了额外的抽象,有助于理解更广泛的软件生态系统。系统是协作执行某些功能的实体的集合,而领域是与部分业务相关的实体和系统的集合。



领域、系统与核心实体的关系,来源:https://engineering.atspotify.com/2022/07/software-visualization-challenge-accepted


原文链接

The Spotify System Model: Automated Architecture Visualization at Spotify


2022-08-07 08:006942

评论

发布
暂无评论
发现更多内容

鸿蒙学堂·创新实训营再度启航深圳,中国移动、国家电网等40余家企业参与

最新动态

uniapp打包的ipa上架到appstore的傻瓜式教程

雪奈椰子

基于低代码平台搭建应用程序

树上有只程序猿

软件开发 低代码 JNPF

CAKE OF FORTUNE(蛋糕矿工)BSC链系统开发

l8l259l3365

uni-app 打包ios上架app store流程

一文弄懂竞品分析 - 竞品分析是什么| 从哪些方面分析 | 竞品分析报告怎么写?

彭宏豪95

效率工具 产品经理 在线白板 竞品分析 SWOT

E往无前 | 海量数据ES 扩展难?腾讯云大数据ES 扩展百万级分片也“So Easy~”

腾讯云大数据

ES

特斯拉开源 Roadster 文件随便用;微软 Copilot AI 技术开放或不对大陆开放丨 RTE 开发者日报 Vol.92

声网

数字化供应链助力电子产业高质量发展,华秋2023电子设计与制造技术研讨会成功举办!

华秋电子

PCB设计

几种常见的排序算法总结

不在线第一只蜗牛

算法 排序算法 教程分享

springboot集成工作流实例分享(源码)

金陵老街

北京同仁堂签署鸿蒙生态合作协议,加速推进鸿蒙原生应用开发

最新动态

电竞游戏主播直播系统平台,在市场该如何变现?

软件开发-梦幻运营部

Presto+Alluxio数据平台实战

数新网络官方账号

大数据

uniapp打包的ipa上架到appstore的傻瓜式教程

雪奈椰子

如何调用电商API接口获取相关商品的推荐列表?

技术冰糖葫芦

API API 文档

拒绝连锡!3种偷锡焊盘轻松拿捏

华秋电子

PCBA

只需3分钟!组织架构图如何简单快速制作

职场工具箱

组织架构图

大型企业资金管理常见6个难题,用友Fast by BIP“快速”破解

用友BIP

资金管理

After Effects 2024 for Mac(AE2024视频特效)v24.0.3中文版

mac

苹果mac Windows软件 视频处理软件 After Effects 2024 AE2024

C/C++ 开发SCM服务管理组件

不在线第一只蜗牛

c 开发语言 c++、

体育数据服务商提供API接口,有哪些赛事数据

软件开发-梦幻运营部

IDC最新报告,增速减缓+AI增势,阿里云视频云中国市场第一

阿里云视频云

云计算 视频云

【网易云商】构建高效 SaaS 系统的技术要点与最佳实践

网易云信

SaaS 平台

如何使用电商平台API接口?

技术冰糖葫芦

API API Gateway API 文档

低代码平台提升软件开发效率

互联网工科生

软件开发 低代码 JNPF

保姆级连接FusionInsight MRS kerberos Hive

数新网络官方账号

Java hive 华为云 Dbeaver

SRM采购招投标一体化系统(源码)

金陵老街

招投标 SRM系统 采购系统 供应商管理系统

跃见书单 | 一文带你读懂《人工智能简史》

码上跃见

AIGC #人工智能

登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?

Zilliz

azure Milvus Zilliz zillizcloud

CART算法解密:从原理到Python实现

快乐非自愿限量之名

Python 算法 PyTorch

Spotify如何可视化系统架构图_架构_Eran Stiller_InfoQ精选文章