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

挑战

Sling TV 于 2015 年由 DISH Network 推出,从一开始就经历了巨大的客户增长。仅仅一年后,“我们开始遇到一些旧系统的增长痛点,并试图找到合适的架构来支持我们的未来,”Sling TV 的云原生和大型数据布道者 Brad Linder 说。该公司面临着特殊的挑战:“我们将直播电视通过互联网分发到我们无法控制的用户设备上,”Linder 说。“在很多方面,我们都是在蛮荒之地工作:互联网就是互联网,如果客户的服务由于任何原因无法正常工作,他们并不关心原因。他们只希望一切正常。这些都是我们必须努力解决的问题。我们真的必须努力在 Web 规模上实现选择性和良好的客户体验。”

解决方案

Linder 相信“云原生架构和模式确实能为我们提供很大的灵活性,可以满足这种客户群体的需求”,他与 Rancher Labs 合作,以 Kubernetes 为基础构建 Sling TV 的下一代平台。“我们将在某个时候需要实现混合云战略,包括多个公有云和本地 VMWare 多数据中心环境,以满足业务需求,因此,获得这种抽象是我们的一个真正目标,”他说。“这是我们选择 Kubernetes 的最大原因之一。”该团队在其两个内部数据中心将第一个应用程序部署到 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 年第一季度初在其两个内部数据中心将第一个应用程序部署到 Kubernetes 上,并开始将 AWS 作为数据中心选项。该公司计划在未来扩展到其他公有云。

第一个投入生产的应用程序是基于 Web 套接字的后端通知服务。“它允许后端更改触发消息传递到我们现场的客户端,而无需轮询,”Linder 说。“我们谈论的是使用这个应用程序进行非常大容量的消息传递。如果没有像 Kubernetes 这样的工具来进行扩展和缩减,以及支持整体工作负载,那么这将非常难办。我甚至可以大胆地说,我们现在构建的大多数应用程序如果没有云原生模式和 Kubernetes 提供的灵活性,将无法实现。”

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

他补充说,最终,这项工作是关于“尝试将 Kubernetes 与 AI 结合,以实现真正可用的 Web 规模”。“我们希望人工代理和大型数据平台使用来自应用程序、Kubernetes、基础设施、支持服务和环境更改的实际日志和事件来做出决策,例如,“嘿,我们需要为这项服务增加更多容量,请添加更多节点”。从平台的角度来看,如果您真正进行 Web 规模的运营,并且没有使用 AI 和大型数据,在我看来,您最终将因自身的重量而崩溃。这不是是否会发生的问题,而是何时会发生的问题。如果您处于“数百万用户”的环境中,这种崩溃将是灾难性的。我们正在努力实现这个目标,并且在这一过程中学到了很多东西。”

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