2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

文心一言 VS 讯飞星火 VS chatgpt (195)-- 算法导论14.3 3题

福大大架构师每日一题

福大大架构师每日一题

打破信息孤岛,聚道云软件连接器助力企业实现高效管理

聚道云软件连接器

案例分享

代码手术刀-自定义你的代码重构工具

京东科技开发者

深度神经网络中的BNN和DNN:基于存内计算的原理、实现与能量效率

申公豹

存内计算

「AI Party」喊你来!百度Create大会4月16-17日在深圳举办

飞桨PaddlePaddle

百度 AI 开发者大会

华为云软件开发生产线CodeArts开发者实践8件套——开发者的进阶宝典!

软件开发 华为云

【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现

码界西柚

性能优化 架构设计 高性能网关 亿级数据 2024年第三十三篇文章

代码手术刀-自定义你的代码重构工具

京东零售技术

Java 源码分析 后端 代码重构

听GPT 讲Rust Tokio源代码(2)

fliter

亿级流量高并发春晚互动前端技术揭秘

京东科技开发者

对话苏光牛:国内数据库市场已进入关键转折点,2024年或是分水岭

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

iOS平台如何实现毫秒级延迟的RTMP|RTSP播放器

音视频牛哥

IOS RTSP播放器 IOS RTMP播放器 RTSP播放器 RTMP播放器 RTMP player

一起畅玩!幻兽帕鲁服务器华为云搭建教程(Windows 平台)

YG科技

Wireshark使用技巧

小齐写代码

科蓝软件启动鲲鹏原生应用开发合作

彭飞

一文详解静态图和动态图中的自动求导机制

百度Geek说

Python 深度学习 自动求导 autodiff

2023年12月文章一览

codists

codists

快速上手极狐GitLab设计管理功能

极狐GitLab

国内唯一!通义灵码入选全球智能编码助手使用率 TOP 榜单

阿里巴巴云原生

阿里云 云原生 通义灵码

听GPT 讲Rust Tokio源代码(3)

fliter

阿里集团基于Fluid+JindoCache加速大模型训练的实践

阿里技术

阿里 大模型 Fluid JindoCache

解密JavaChassis3:易扩展的多种注册中心支持

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

流批一体化数据加工处理之记录过滤

大河

低代码,流行的软件开发方式

互联网工科生

软件开发 低代码 JNPF

2024年1月文章一览

codists

基于 SRAM 的存内计算助力实现节能 AI

申公豹

存内计算

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