公司Spotify 位置全球 行业娱乐

挑战

这个音频流媒体平台于2008年推出,目前在全球的月活跃用户已超过2亿。工程、基础设施和运营总监Jai Chakrabarti说:“我们的目标是赋予创造者权力,并为所有消费者提供真正沉浸式的聆听体验,就像我们今天拥有的那样——希望未来也能拥有这样的消费者。”作为微服务和Docker的早期采用者,Spotify已经将运行在其vm船队上的微服务容器化,并使用了一个自产的容器编排系统赫利俄斯.他说,到2017年底,情况变得很清楚,“用一个小团队来开发这些功能不如采用一个更大的社区支持的功能有效率。”

解决方案

Chakrabarti说:“我们看到了围绕Kubernetes成长起来的了不起的社区,我们想成为其中的一部分。”Kubernetes比Helios功能更丰富。此外,“我们希望从增加的速度和降低的成本中获益,并在最佳实践和工具方面与业内其他公司保持一致。”与此同时,该团队希望在繁荣的Kubernetes社区贡献自己的专业知识和影响力。Chakrabarti说:“Kubernetes非常适合作为Helios的补充,现在可以作为Helios的替代品。”

影响

该团队在2018年中花了很多,解决了迁移所需的核心技术问题,即年内开始,这是2019年的大焦点。“我们的一小部分舰队已被迁移到Kubernetes,以及我们”的一些事情从我们的内部团队中听到的是,他们有不必关注手动容量供应和更多时间来关注提供Spotify的功能,“Chakrabarti说。目前在Kubernetes上运行的最大服务每秒大约需要大约1000万个请求作为综合服务和从自动播放的优势,说网站可靠性工程师James Wen。此外,他补充道,“之前,团队必须等待一个小时才能创建一个新的服务并获得运营主人在生产中运行它,但是通过kubernetes,他们可以根据秒和几分钟的顺序进行。”此外,随着Kubernetes的Bin包装和多租赁能力,CPU利用率平均改善了两到三倍。

Spotify的工程、基础设施和运营总监贾伊•查克拉巴蒂(Jai Chakrabarti)表示:“我们的目标是授权音乐创作者,让我们现在拥有的所有消费者都能获得真正沉浸式的聆听体验——希望未来也能如此。”自从2008年音频流媒体平台推出以来,它已经在全球拥有超过2亿的月活跃用户,而Chakrabarti的团队的目标是巩固Spotify的基础设施,以支持所有这些未来的消费者。

Spotify的早期采用者,Spotify自2014年以来,Spotify的Containized MicroService遍布其VMS队伍。该公司使用了一个名为Helios的开源,本地集装店编排系统,并于2016-17完成了从前提数据中心到谷歌的迁移云。支持这些决定,“我们有一个关于自治团队的文化,超过200个自主工程队伍,他们正在努力在不同的馅饼上工作,他们需要能够迅速迭代,”Chakrabarti说。“所以为我们拥有开发人员速度工具,让小队快速移动真的很重要。”

但到2017年底,情况变得很清楚,“有一个小团队在工作赫利俄斯特性只是不如采用一些更大的社区支持的东西那么有效,”Chakrabarti说。“我们看到了围绕Kubernetes成长起来的了不起的社区,我们想成为其中的一部分。我们希望从增加的速度和降低的成本中获益,同时也希望在最佳实践和工具方面与业内其他公司保持一致。”与此同时,该团队希望在繁荣的Kubernetes社区贡献自己的专业知识和影响力。

另一个好处是:“Kubernetes非常适合作为Helios的补充,现在作为Helios的替代品,所以我们可以让它与Helios一起运行,以降低风险,”Chakrabarti说。“在迁移过程中,服务可以在两个平台上运行,所以我们不必把所有鸡蛋放在一个篮子里,直到我们能够在各种负载环境和压力环境下验证Kubernetes。”

该团队在2018年的大部分时间都在解决迁移所需的核心技术问题。“我们能够使用很多Kubernetes API和Kubernetes的可扩展功能,以支持和接口我们的传统基础架构,因此集成简单且简单,”网站可靠性工程师James Wen说。

迁移开始于那年迟到,2019年加速了。“我们的重点是真正的无国籍服务,一旦我们解决了我们最后的剩余技术阻拦者,那就是我们希望上升将来自的地方,”Chakrabarti说。“对于有状态服务,我们需要做更多的工作。”

到目前为止,含有超过150个服务的Spotify的船队的小百分比已被迁移到Kubernetes。“我们从客户那里听到了他们的客户少需要专注于手动容量供应,更多的时间专注于提供Spotify的功能,”Chakrabarti说。温家宝说,当前在Kubernetes上运行的最大服务占据了每秒1000万百万多百万百万百万多次要求,并且在自动播放中得到了极大的服务和福利。此外,Wen补充道,“之前,团队必须等待一个小时创建一个新的服务,并获得运营主机在生产中运行,但是通过Kubernetes,他们可以根据秒和分钟的顺序进行。”此外,随着Kubernetes的Bin包装和多租赁能力,CPU利用率平均改善了两到三倍。

Chakrabarti指出,Spotify关注的所有四个顶级指标——交货时间、部署频率、解决问题的时间和运营负荷——“都受到了Kubernetes的影响。”

在Kubernetes的早期出现的一个成功的故事是一个名为Slingshot的工具,它在Kubernetes上建立了一个Spotify团队。“通过拉拉请求,它创造了一个临时分期环境,在24小时后自我毁灭,”Chakrabarti说。“这一切都是由kubernetes促进的,所以这就是如何令人兴奋的例子,一旦这项技术出来并准备使用,人们就开始建立在它之上并制作自己的解决方案,即使我们可能已经设想它的初始目的。“

Spotify也开始使用grpc.使者就像Kubernetes那样,它取代了现有的自主研发的解决方案。基础设施和运营部门软件工程师Dave Zolotusky说:“我们创造东西是因为我们当时的规模,而且没有其他的解决方案存在。”“但后来社区赶上了我们,甚至在这种规模的工具上也超过了我们。”

这两种技术都处于采用的早期阶段,但已经“我们有理由相信Grpc在早期开发期间通过帮助架构管理,API设计,奇怪的向后兼容性问题,事物的许多问题,GRPC在早期发展中会产生更激烈的影响这样,“Zolotusky说。“所以我们在很大程度上倾向于GRPC来帮助我们在那个空间。”

随着团队继续填补Spotify的云原生堆栈跟踪是下一个-它使用CNCF风景作为一个有用的指南。Zolotusky说:“我们关注需要解决的问题,如果有一堆项目,我们会对它们进行同等的评估,但作为CNCF项目肯定有价值。”

Spotify到目前为止的经验与Kubernetes一起出局。“社区非常有助于让我们通过所有技术更快,更容易地工作,”佐洛斯基说。“与我们想要的任何人联系,令人惊讶地容易得到联系,以获得任何我们使用的事情的专业知识。它帮助我们验证了我们正在做的所有事情。”