公司 Sling TV 地点 科罗拉多州恩格尔伍德 行业 流媒体电视

挑战

Sling TV 于 2015 年由 DISH Network 推出,从一开始就经历了巨大的客户增长。“仅仅一年后,我们就经历了一些遗留系统的成长之痛,并试图找到正确的架构来支持我们的未来,”Sling TV 的云原生与大数据布道者 Brad Linder 说。该公司面临着特殊的挑战:“我们获取直播电视,并通过互联网将其分发到我们无法控制的用户设备上,”Linder 说。“在很多方面,我们都在野外工作:互联网就是它应该的样子,如果客户的服务因任何原因无法工作,他们不会关心原因。他们只是希望事情能够正常运作。这些都是我们必须尝试解决的方程的变量。我们真的必须努力在 Web 规模上实现选择性和良好的客户体验。”

解决方案

在“云原生架构和模式确实为我们提供了很大的灵活性来满足此类客户群的需求”的信念的指导下,Linder 与 Rancher Labs 合作,围绕 Kubernetes 构建 Sling TV 的下一代平台。“我们将在某个时候需要启用混合云策略,包括多个公共云和一个本地 VMWare 多数据中心环境,以满足业务需求,因此获得这种抽象是一个真正的目标,”他说。“这是我们选择 Kubernetes 的最大原因之一。”该团队在 Sling TV 的两个内部数据中心启动了 Kubernetes 上的第一个应用程序。将 AWS 作为数据中心选项的推进工作正在进行中,预计将于 2018 年底之前可用。该团队添加了 Prometheus 用于监控和 Jaeger 用于追踪,与公司现有的工具集(Zenoss、New Relic 和 ELK)协同工作。

影响

“我们正在实现一键部署整个数据中心——计算、网络、Kubernetes、日志记录、监控和所有应用程序,”Linder 说。“我们真正启用了基于平台思维的方法,允许应用程序使用通用工具。使用通用工具和 CI/CD 流程,一个新应用程序可以在大约一小时内完成上线。这方面的收益巨大。之前,至少需要几天时间才能为新应用程序部署做好准备。这还不包括培训我们的运营人员来管理这个新应用程序。这在时间和成本上节省了两个或三个数量级,并且在运营上,它使我们有机会让一支由才华横溢的运营工程师组成的核心团队管理通用基础设施和工具,以使我们的应用程序在 Web 规模上可用。”

流媒体电视(如 Sling TV 提供的服务)的优点是,您可以随时随地使用任何设备观看。

当然,从提供商的角度来看,这带来了一系列的特殊挑战。“我们获取直播电视,并通过互联网将其分发到我们无法控制的用户设备上,”Sling TV 的云原生与大数据布道者 Brad Linder 说。“在很多方面,我们都在野外工作:互联网就是它应该的样子,如果客户的服务因任何原因无法工作,他们不会关心原因。他们只是希望事情能够正常运作。这些都是我们必须尝试解决的方程的变量。我们真的必须努力实现选择性,并且我们必须以 Web 规模来实现它。”

事实上,Sling TV 自 2015 年由 DISH Network 推出以来就经历了巨大的客户增长。“仅仅一年后,我们就经历了一些遗留系统的成长之痛,并试图找到正确的架构来支持我们的未来,”Linder 说。Linder 的任务是为“个性化客户体验”构建下一代 Web 规模平台,他过去一年一直致力于将 Kubernetes 引入 Sling TV。

在“云原生架构和模式确实为我们提供了很大的灵活性来满足客户需求”的信念的指导下,Linder 与 Rancher Labs 合作,围绕 Kubernetes 构建平台。“他们真的帮助我们理解了如何使用 Kubernetes,”他说。“我们需要灵活性来支持我们的用例,而不仅仅是一个简单的编排器。以不让我们陷入供应商锁定的方式实现我们的未来也是我们战略的关键部分。我认为这是 Rancher 价值主张的一部分。”

他选择 Kubernetes 的一个重要原因是获得了抽象级别,这将使公司能够“启用混合云策略,包括多个公共云和一个本地 VMWare 多数据中心环境,以满足业务需求,”他说。另一个因素是 Kubernetes 生态系统在过去几年中的成熟程度。“我们已经花费了大量的时间和精力来使日志记录、监控和警报做好生产准备,以便深入了解应用程序的健康状况,”Linder 说。该团队添加了 Prometheus 用于监控和 Jaeger 用于追踪,与公司现有的工具集(Zenoss、New Relic 和 ELK)协同工作。

在强调通用工具的情况下,“我们正在实现一键部署整个数据中心——计算、网络、Kubernetes、日志记录、监控和所有应用程序,”Linder 说。“我们真正启用了基于平台思维的方法,允许应用程序使用通用工具和服务。使用通用工具和 CI/CD 流程,一个新应用程序可以在大约一小时内完成上线。这方面的收益巨大。之前,至少需要几天时间才能为新应用程序部署做好准备。这还不包括培训我们的运营人员来管理这个新应用程序。这在时间和成本上节省了两个或三个数量级,并且在运营上,它使我们有机会让一支由才华横溢的运营工程师组成的核心团队管理通用基础设施和工具,以使我们的应用程序在 Web 规模上可用。”

该团队于 2018 年第一季度初在 Sling TV 的两个内部数据中心启动了 Kubernetes 上的第一个应用程序,并开始启用 AWS 作为数据中心选项。该公司计划未来扩展到其他公共云。

投入生产的第一个应用程序是一个基于 Web Socket 的后端通知服务。“它允许后端更改触发消息到我们在现场的客户端,而无需轮询,”Linder 说。“我们正在谈论这个应用程序的大量消息。如果没有 Kubernetes 之类的东西来扩展和缩减,以及支持整个工作负载,这是很难做到的。我几乎可以大胆地说,我们现在构建的大多数应用程序如果没有云原生模式和 Kubernetes 带来的灵活性,是不可能实现的。”

Linder 负责监督三个团队共同构建下一代平台:平台工程团队、企业中间件服务团队以及大数据和分析团队。“我们确实尝试将所有内容整合在一起,以便客户端应用程序能够与云原生中间件层进行交互。该中间件层必须在平台上运行,使用平台服务,然后由人工智能代理监控日志和事件,以保持一切平稳运行,”Linder 说。

最终,这项工作的目标是“尝试将 Kubernetes 与 AI 结合起来,以实现正常工作的 Web 规模,”他补充道。“我们希望人工智能代理和大数据平台使用来自应用程序、Kubernetes、基础设施、支持服务以及环境变化的实际日志和事件来做出决策,例如,‘嘿,我们需要更多容量来支持此服务,因此请添加更多节点。’从平台的角度来看,如果您真的在做 Web 规模的事情,而没有使用 AI 和大数据,那么在我看来,您将会被自己的重量压垮。这不是是否会发生的问题,而是何时发生的问题。如果您处于“数百万用户”的环境中,这种崩溃将是灾难性的。我们正在朝着这个目标迈进,并在此过程中学到了很多东西。”

对于 Sling TV 来说,迁移到云原生正是他们所需要的。“我们必须能够对矩阵中的变化和故障做出反应,”Linder 说。“这是我们为客户提供高质量服务的基础。构建智能平台、工具和在现场使用这些服务的客户端必须成为这一切的一部分。在我看来,这就是云原生的一大部分意义所在。它正在利用这些分布式、可能不可靠的实体,并实现客户期望的健壮的客户体验。”