公司 Sling TV 地点 Englewood, Colorado 行业 流媒体电视

挑战

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)协同工作。

影响

Linder 表示:“我们正逐步实现一键部署整个数据中心——包括计算、网络、Kubernetes、日志记录、监控以及所有应用程序。” “我们真正实现了一种基于平台思维的方法,允许应用程序使用通用工具。一个新应用程序可以在大约一个小时内使用通用工具和 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)协同工作。

Linder 说,随着对通用工具的强调,“我们正逐步实现一键部署整个数据中心——包括计算、网络、Kubernetes、日志记录、监控以及所有应用程序。” “我们真正实现了一种基于平台思维的方法,允许应用程序使用通用工具和服务。一个新应用程序可以在大约一个小时内使用通用工具和 CI/CD 流程完成接入。这方面的收益是巨大的。在此之前,一个新的应用程序需要至少几天时间才能完成部署的准备工作。这还不包括对我们的运维人员进行培训以管理这个新应用程序所需的时间。这节省了时间成本,提高了两到三个数量级,并且在运维方面,它使我们有机会让一个核心的、才华横溢的运维工程师团队来管理通用基础设施和工具,从而使我们的应用程序能够以 Web 规模提供服务。”

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

第一个投入生产的应用程序是基于 web socket 的后端通知服务。Linder 说:“它允许后端变更触发消息发送到我们的现场客户端,而无需轮询。” “这个应用程序处理的消息量非常大。如果没有像 Kubernetes 这样的工具能够进行伸缩,以及支持整体工作负载,这是很难做到的。我几乎可以大胆地说,如果没有云原生模式和 Kubernetes 提供的灵活性,我们现在正在构建的大部分应用程序是不可能实现的。”

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

他补充说,这项工作的最终目标是“将 Kubernetes 与人工智能结合,实现‘开箱即用’的 Web 规模”。“我们希望人工智能代理和大数据平台能够利用应用程序、Kubernetes、基础设施、后端服务以及环境变化产生的实际日志和事件来做出决策,比如‘我们需要更多这个服务的容量,请增加节点。’” 在我看来,从平台角度来看,如果你真的在做 Web 规模的事情,但没有使用人工智能和大数据,你最终会因自身的重压而崩溃。问题不在于“是否”,而在于“何时”。如果你处于一个拥有“数百万用户”的环境,那么这种崩溃将是灾难性的。我们正在朝着这个目标前进,并在这一过程中学到了很多。

对于 Sling TV 来说,转向云原生正是他们所需要的。Linder 说:“我们必须能够对系统中的变化和异常做出反应。” “这是我们为客户提供高质量服务的基础。构建智能平台、工具以及使用这些服务的现场客户端,必须是这一切的一部分。在我看来,这正是云原生的核心所在。它是指将这些分布式、潜在不可靠的实体,转化为一种他们所期望的健壮的客户体验。”