跳到内容
GitHub企业

Spotify开发人员通过无缝协作、持续集成和GitHub Enterprise每月与2.17亿听众见面。

位置
瑞典斯德哥尔摩
全球客户
2.17亿
问题

Spotify为2.17亿活跃用户提供流媒体音乐服务,必须不断提供新的创新功能,才能在竞争中保持领先地位。

解决方案

GitHub Enterprise使Spotify能够通过内部源代码和开放源代码项目利用创新,并快速无缝地提交代码。

产品

你可能还记得,在路上听你最喜欢的音乐意味着调谐收音机、同步MP3播放器或调整跳过的便携式CD播放器。当世界上有这么多音乐随处可见时,人们很容易忘记这段短暂的过去,只需搜索一下,轻轻一点就可以找到。音乐、有声读物、播客等可以在每个平台和全球传播。流媒体行业令人难以置信的进步背后是数十年来在互联网访问、文件格式、算法等方面取得的技术成就。

在过去的10年里,Spotify与这些成就同步增长,活跃用户达到2.17亿。从一家瑞典初创公司到最大的音乐流媒体服务之一,该公司现在是综合用户体验的标杆。听众在移动中从iOS或Android进行收听。在他们的办公桌上,他们可以通过浏览器或Mac、Windows或Linux上的应用程序进行收听。在家里,他们可以连接到智能设备:扬声器、虚拟助理、声道等等。无论用户在哪里收听,Spotify的软件都必须无缝运行,世界各地办公室的所有员工也是如此。

在日益拥挤的流媒体行业中,产品差异化和用户体验是关键。随着功能的不断增加,Spotify的开发团队需要进行协作,以确保从客户端到后端基础设施的一切都能很好地协同工作。而且,对于一个以用户为中心的品牌来说,在推动定期更新的过程中,任何事情都不能中断,这一点至关重要。产品经理Laurent Ploix致力于实现工具、流程和系统,使开发人员(及其代码)能够顺利运行。

Ploix的团队和Spotify的开发人员使用GitHub Enterprise Server进行内部源代码项目和协作。他们还使用GitHub企业云构建,以安全地开放代码,与外部合作伙伴合作,并参与开源社区。随着开源接近团队的流程,他们能够向更大的开发人员社区学习。

Spotify在开源领域的经验是第一手的。它是该公司一些最受欢迎功能的基础。为了支持推荐驱动的“Discover Weekly”播放列表,团队构建并维护了基于Apache Beam的开源项目Scio。该技术使他们能够为数亿用户计算建议,并在数千台机器上并行运行复杂的处理作业。Scio是Spotify运营的重要组成部分——尽管如此,它还是开源的,因为团队相信这种模式。成千上万的贡献者意味着成千上万的想法,更大的思想多样性,以及最终更强大的想法。

为了给专有项目带来开源创新,Spotify使用了innersource。Innersource允许开发人员像开源一样运行内部项目:公开工作、相互学习以及在整个公司内重用代码。Ploix解释道:“我们鼓励人们为他人的代码做出贡献。任何人都可以做出贡献,而不是提交JIRA罚单并等待回复。”

Spotify:录音工作室

Ploix将共享所有权视为实现更高质量和更快交付的途径。他说:“你需要开放和所有权。”。“当开发人员拥有代码时,他们不会为其他人更改代码,也不会专门为其工作。这意味着他们对代码有强烈的感受。他们关心质量,并为此感到自豪。”对于希望做出贡献的Spotify开发人员,Ploix说,“欢迎提出请求。有人可能会找到比我更好的解决方案。”

最终,在Spotify拥有项目的团队承担的角色类似于一些开源维护者。他们接收并分类新的错误、想法和代码。他们还可能负责取消甚至归档他们的项目。根据Ploix的说法,“毫无疑问,他们是维护者。由于拥有强大的所有权,我们避免了代码堆积在没有人知道它是否被使用的地方。”

我们专注于减少信息过载。开发人员可以从CI中获得太多信息,但他们需要的不仅仅是通过或失败状态,才能做出明智的决策。我们希望开发人员确切地了解更改如何影响代码库。

持续集成(CI)是Spotify生态系统的核心焦点。与许多组织一样,Spotify依赖CI作为内部流程,以减少每个功能集成所需的时间和精力,并成功交付适合随时发布的产品版本。他说:“从商业发展的角度来看,CI很重要。”。

为了确保他们遵循开发的最佳实践——快速迭代和增量迭代——团队构建的CI系统与GitHub Enterprise集成,并为开发人员提供他们所需的准确信息。Spotify高级工程师马库斯·福赛尔·斯塔尔(Marcus Forsell Stahre)表示:“我们的构建生成了大量数据,有时很难找到相关反馈。我们与GitHub的集成使我们能够在推送请求中显示出来,并缩短反馈环。”。

Spotify:产品

这就是定制工具和webhook的用武之地,但Ploix认为有空间通过GitHub API进一步简化他们的审查过程。他解释道:“API有潜力改变开发人员的体验。我们使用许多机器人程序来深入了解拉取请求会产生的影响,但它往往会污染对话。我们希望让这些信息更容易接受和执行。这正是Checks API的作用所在。”

对于Ploix来说,流程总是可以改进的,即使是小的改进也会对Spotify运营规模的质量产生重大影响。该团队有大量机器在运行CI的构建和测试。Ploix指出,该团队每天都在使用这些系统进行大量构建。随着更多的开发人员做出更多的更改,这个数字只会越来越大。

Spotify:吉他

当Spotify开发人员需要帮助时,他们会求助于GitHub企业支持团队。“我们总是比较从供应商那里获得的支持类型,”Ploix解释道。“我们很快收到GitHub的回复,了解了正在发生的事情,我们对此感到非常满意。”Spotify团队还定期与GitHub解决方案工程师会面,以获得更深入的支持,从API使用问题到更大的战略问题。

随着公司的发展,快速、彻底的支持变得更加重要,开发人员招聘也在加快。即使在快速发展的团队中,Ploix也发现大多数开发人员都知道GitHub。他指出,“人们知道什么是拉式请求,因为这是他们如何为开源项目做出贡献。我们有许多开发人员精通GitHub,无论是在个人开发方面,还是在以前的角色方面。有了GitHup Enterprise,没有人需要重新学习。”

普洛伊克斯认为,新员工和经验丰富的员工都可以从使用他们知道并理解的版本控制系统中受益。他还赞赏团队能够自由地派生(或复制)现有项目,并在不接触原始源代码的情况下进行工作。他说:“GitHub提供的沙盒环境允许我们的开发人员尝试新的想法。他们不必担心破坏任何基本的东西。这种创造性受到鼓励,它有助于使Spotify客户端成为今天的样子。”

有兴趣带来GitHub企业到您的组织?

启动您的免费试用GitHub企业 对于30天并增加团队的协作。试用期满后,每个用户每月21美元。

好奇其他计划?来自GitHub

你的故事是什么?

开始在GitHub上与您的团队合作

想自己使用GitHub吗?
查看我们的个人计划