写点什么

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:007203

评论

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

借助大模型能力,晓多科技智能客服的效率与服务双提升

新消费日报

选择户外LED显示屏的4个理由

Dylan

互联网 广告 信息 LED LED显示屏

AI 应用实战营 - 作业 六 - SD ComfyUI

德拉古蒂洛维奇

聊聊文档解析测评里的表格指标

合合技术团队

人工智能 测评 表格识别 文档解析

会话控制定义以及主要目的简单介绍

行云管家

堡垒机 IT运维 会话控制

2024可信数据库发展大会:TDengine CEO 陶建辉谈“做难而正确的事情”

TDengine

「空投」对于项目来说是好是坏?

TechubNews

得物AB实验平台数据驱动决策实践

得物技术

大数据 架构 统计学 企业号2024年7月PK榜

人工智能:重塑语言翻译的未来

天津汇柏科技有限公司

人工智能 语言翻译

Tensor 索引的使用指南及学习心得

百度Geek说

企业号2024年7月PK榜 Tensor 索引

供应链场景使用ClickHouse最佳实践

京东科技开发者

Code Review:提升代码质量与团队能力的利器

京东科技开发者

性能测试场景设计

测试人

软件测试

性能测试场景设计

霍格沃兹测试开发学社

新进展!deepin M1 项目更新至 deepin V23 RC2版本

nn-30

Linux 开源 操作系统 国产操作系统 deepin

华为云DTSE助力悦知技术架构升级、打破业务瓶颈

华为云开发者联盟

云计算 云原生 华为云开发者联盟 企业号2024年7月PK榜

优化京东JD商品详情API使用:提升商品信息获取效率的策略与实践

技术冰糖葫芦

API 编排 API 文档 API 协议

【论文速读】| 涟漪下的漩涡:对启用RAG的应用程序的实证研究

云起无垠

直播预告|持续颠覆,永不止步,飞渡科技2024产品发布会即将震撼来袭,敬请期待

新消费日报

结合LangChain实现网页数据爬取

霍格沃兹测试开发学社

Code Review:提升代码质量与团队能力的利器

京东科技开发者

分享 | 建设全渠道反欺诈平台 持续提升交易风险管控能力

芯盾时代

金融 反欺诈 风控系统 风险检测

结合LangChain实现网页数据爬取

测试人

软件测试

【等保知识】等级保护三级系统几年测评一次?法律依据是什么?

行云管家

网络安全 等保 等级保护

一个故事理解消息队列-上

老张

系统架构 消息队列 基础架构 稳定性保障

电商商品信息获取的利器:阿里巴巴搜索API返回值

技术冰糖葫芦

API API 文档 API 协议

华为云应用平台AppStage运维中心,华为全球业务的加速器

华为云开发者联盟

运维 华为云 华为云开发者联盟 企业号2024年7月PK榜

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