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

评论

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

开源一夏 | 一文读懂Shiro登录认证全流程

六月的雨在InfoQ

开源 shiro realm 8月月更 Subject

数据湖架构及概念简介

阿里云大数据AI技术

大数据 阿里云 技术交流

数字藏品是什么?NFT系统开发。

开源直播系统源码

数字藏品 数字藏品开发 数字藏品系统 数字藏品软件

A tour of gRPC:09 - gRPC Interceptor 拦截器

BUG侦探

gRPC RPC protocolBuffer

出海有道,融云携手生态伙伴打造「出海百宝箱」

融云 RongCloud

即时通讯 产品升级

企业经营管理系统哪家好?功能十分全面的阿米巴经营管理系统

优秀

项目管理工具 企业经营管理

树莓派3b+ python3.5+opencv3.4.1下载安装及配置详解

Five

树莓派 OpenCV Python. 8月月更

CVE-2022-22965 漏洞分析

科技怪咖

华为云VSS漏洞扫描服务为你排除Apache log4j2隐患

科技怪咖

CVE-2022-22947 分析

科技怪咖

二进制SCA指纹提取黑科技: go语言逆向技术

科技怪咖

软件测试 | 测试开发 | 如何利用 xUnit 框架对测试用例进行维护?

测吧(北京)科技有限公司

软件测试

Hyperledger Cactus(一):架构初探

神奇视野

Windows下python组件hyperscan的编译与安装

科技怪咖

CVE-2021-3129 分析

科技怪咖

移动办公平台迎来定制潮,WorkPlus如何在钉钉和企微光环下 “出圈”?

BeeWorks

加密数字艺术背后你关心的几个问题

神奇视野

CWE 4.7中的新视图 -- 工业控制系统的安全漏洞类别

科技怪咖

长安链 p2p-Liquid 架构设计学习笔记

长安链

OpenSergo & CloudWeGo 共同保障微服务运行时流量稳定性

阿里巴巴云原生

阿里云 开源 微服务 云原生

基于 GitHub 的数据库 CI/CD 最佳实践

Bytebase

GitHub cicd Github Actions SQL审批

软件测试 | 测试开发 | 如何用Sonic云真机打王者

测吧(北京)科技有限公司

测试 scrcpy

安卓应用及鸿蒙应用安全检测指南

科技怪咖

基于 Serverless+OSS 分分钟实现图片秒变素描

阿里巴巴云原生

阿里云 Serverless 云原生 OSS

软件测试 | 测试开发 | HttpRunner初体验

测吧(北京)科技有限公司

HttpRunner

华为云数字资产链,构建新型数字经济价值

神奇视野

如何用VSS一键自动化扫描软件包/固件,快速排查安全风险

科技怪咖

极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!

极狐GitLab

DevOps gitlab 运维 API gitops

共识算法入门

神奇视野

LeaRun.Java工作流引擎 快速开发业务流程

力软低代码开发平台

软件测试 | 测试开发 | App自动化之dom结构和元素定位方式(包含滑动列表定位)

测吧(北京)科技有限公司

DOM 自动化测试

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