挑战
Sling TV 于 2015 年由 DISH Network 推出,从一开始就经历了巨大的客户增长。仅仅一年后,“我们的一些传统系统就经历了一些成长的烦恼,并试图找到合适的架构来支持我们的未来,”Sling TV 的云原生和大数据布道者 Brad Linder 说道。该公司面临着特殊的挑战:“我们将直播电视通过互联网分发到我们无法控制的用户设备上,”Linder 说道。“在很多方面,我们都在狂野西部工作:互联网就是它将要成为的样子,如果客户的服务由于某种原因不起作用,他们并不关心原因。他们只希望事情能正常运作。这些是我们必须尝试解决的等式变量。我们真的必须尝试在网络规模上实现可选性和良好的客户体验。”
解决方案
Linder 坚信“云原生架构和模式确实为我们满足这类客户群的需求提供了很大的灵活性”,他与 Rancher Labs 合作,围绕 Kubernetes 构建了 Sling TV 的下一代平台。“我们需要实现一种混合云战略,包括多个公有云和一个内部部署的 VMware 多数据中心环境,以满足业务在某个时间点的需求,因此获得这种抽象是一个真正的目标,”他说道。“这就是我们选择 Kubernetes 的最大原因之一。”该团队在 Sling TV 的两个内部数据中心推出了其首批 Kubernetes 应用程序。启用 AWS 作为数据中心选项的工作正在进行中,预计将于 2018 年底完成。该团队添加了 Prometheus 用于监控,Jaeger 用于跟踪,与公司现有的工具集一起工作:Zenoss、New Relic 和 ELK。
影响
“我们正在接近这样一个阶段,我们可以一键部署整个数据中心——计算、网络、Kubernetes、日志记录、监控和所有应用程序,”Linder 说道。“我们真正实现了一种基于平台思维的方法,允许应用程序使用通用工具。使用通用工具和 CI/CD 流程,新应用程序可以在大约一个小时内完成上线。这方面的收益是巨大的。以前,至少需要几天时间才能为新应用程序的部署做好准备。这还没有考虑到我们运营人员管理这个新应用程序的培训。在时间和成本上节省了两个或三个数量级,而且在运营上,它让我们有机会让一个由才华横溢的运营工程师组成的核心团队来管理通用基础设施和工具,使我们的应用程序能够在网络规模上可用。”
当然,从提供商的角度来看,这会带来一系列特殊的挑战。“我们将直播电视通过互联网分发到我们无法控制的用户设备上,”Sling TV 的云原生和大数据布道者 Brad Linder 说道。“在很多方面,我们都在狂野西部工作:互联网就是它将要成为的样子,如果客户的服务由于某种原因不起作用,他们并不关心原因。他们只希望事情能正常运作。这些是我们必须尝试解决的等式变量。我们真的必须尝试实现可选性,而且我们必须在网络规模上实现。”
事实上,Sling TV 自 2015 年由 DISH Network 推出以来,客户数量就出现了大幅增长。仅仅一年后,“我们的一些传统系统就经历了一些成长的烦恼,并试图找到合适的架构来支持我们的未来,”Linder 说道。Linder 的任务是为“个性化的客户体验”构建一个下一代网络规模平台,在过去的一年里,他一直在为 Sling TV 引入 Kubernetes。
Linder 坚信“云原生架构和模式确实为我们满足客户需求提供了很大的灵活性”,他与 Rancher Labs 合作,围绕 Kubernetes 构建了该平台。“他们真的帮助我们了解了如何使用 Kubernetes,”他说道。“我们需要灵活性来实现我们的用例,而不仅仅是一个简单的编排器。以一种不会让我们受制于供应商的方式来支持我们的未来也是我们战略的关键部分。我认为这是 Rancher 价值主张的一部分。”
他选择 Kubernetes 的一个重要原因是获得一定程度的抽象,使公司能够“实现一种混合云战略,包括多个公有云和一个内部部署的 VMware 多数据中心环境,以满足业务需求,”他说道。另一个因素是 Kubernetes 生态系统在过去几年中的成熟程度。“我们花费了大量的时间和精力来使日志记录、监控和警报达到生产就绪状态,以便让我们能够洞察应用程序的健康状况,”Linder 说道。该团队添加了 Prometheus 用于监控,Jaeger 用于跟踪,与公司现有的工具集一起工作:Zenoss、New Relic 和 ELK。
Linder 表示,由于强调通用工具,“我们正在接近这样一个阶段,我们可以一键部署整个数据中心——计算、网络、Kubernetes、日志记录、监控和所有应用程序。我们真正实现了一种基于平台思维的方法,允许应用程序使用通用工具和服务。使用通用工具和 CI/CD 流程,新应用程序可以在大约一个小时内完成上线。这方面的收益是巨大的。以前,至少需要几天时间才能为新应用程序的部署做好准备。这还没有考虑到我们运营人员管理这个新应用程序的培训。在时间和成本上节省了两个或三个数量级,而且在运营上,它让我们有机会让一个由才华横溢的运营工程师组成的核心团队来管理通用基础设施和工具,使我们的应用程序能够在网络规模上可用。”
该团队在 2018 年第一季度初在其两个内部数据中心推出了首批 Kubernetes 应用程序,并开始启用 AWS 作为数据中心选项。该公司计划未来扩展到其他公有云。
第一个投入生产的应用程序是一个基于 WebSocket 的后端通知服务。“它允许后端更改触发消息给我们在现场的客户端,而无需轮询,”Linder 说道。“我们正在谈论的是这个应用程序非常大量的消息。如果没有像 Kubernetes 这样的东西来进行扩展和缩减,以及仅仅支持整体工作负载,这是很难做到的。我几乎可以大胆地说,如果没有云原生模式和 Kubernetes 提供的灵活性,我们现在构建的这些应用程序中的大多数都是不可能实现的。”
Linder 负责监督三个团队共同构建下一代平台:平台工程团队、企业中间件服务团队以及大数据和分析团队。“我们真的试图将所有东西整合在一起,以便客户端应用程序能够与云原生中间件层交互。该中间件层必须在平台上运行,使用平台服务,然后由人工智能代理监控日志和事件,以确保一切顺利运行,”Linder 说道。
最后,他补充说,这项工作是关于“试图将 Kubernetes 与人工智能结合起来,以实现真正有效的网络规模”。“我们希望人工智能代理和大数据平台使用来自应用程序、Kubernetes、基础设施、后端服务和环境变化的实际日志和事件来做出决策,比如‘嘿,我们需要为这项服务提供更多容量,所以请添加更多节点。’从平台的角度来看,如果你真正在做网络规模的事情,而你没有使用人工智能和大数据,在我看来,你将在你自己的重压下崩溃。这不是是否会发生的问题,而是什么时候会发生的问题。如果你处于‘数百万用户’的环境中,这种崩溃将是灾难性的。我们正在朝着这个目标努力,并且在此过程中学到了很多东西。”
对于 Sling TV 来说,转向云原生正是他们所需要的。“我们必须能够对矩阵中的变化和问题做出反应,”Linder 说道。“这是我们为客户提供高质量服务的基础。构建智能平台、工具和使用这些服务的现场客户端必须成为所有这一切的一部分。在我看来,这是云原生意义的很大一部分。它正在利用这些分布式、可能不可靠的实体,并实现他们期望的强大客户体验。”