没想到HBO选择这项开源技术,满足《权力的游戏》播放峰值!

kaidiphp 2017-12-26

近日,HBO的工程师解释了他们面临的挑战以及他们决定和使用Kubernetes的过程,以帮助第七季的《权力的游戏》。

众所周知,《权力的游戏》是世界上最受欢迎的电视剧之一,观众既可以在HBO网络上观看,也可以通过HBO Go流媒体服务观看。对于保证《权力的游戏》这样的流行剧集的播放,以及帮助解决其中的一些技术上的挑战,HBO的开发人员选择了开源的Kubernetes容器编排平台。HBO的高级工程师表示:“我们从没有在一个容器内运行一个单一的服务,而是用Kubernetes托管所有的剧集。

没想到HBO选择这项开源技术,满足《权力的游戏》播放峰值!

Kubernetes是一个开源的容器编排系统,最初由Google开发。自2015年7月以来,Kubernetes一直作为云原生计算基金会(CNCF)的托管项目,并从很多用户和软件供应商的贡献中受益。

据悉,HBO Go流媒体服务是以node.js和go编程语言编写的不同API服务的网格。HBO的流媒体平台部署在AWS上,最初是使用EC2虚拟实例构建的,具有自动扩展功能。为了处理需求,原来的HBO Go架构还利用负载平衡来帮助分配流量。

每当新剧集上线,其流量就会激增,这是每周的挑战。在HBO工程师面临的各种挑战中,部署的资源利用不足是其中之一。HBO工程师表示,node.js代码往往只使用一个CPU核心。具有良好联网能力的AWS EC2实例往往基于双核CPU。因此,HBO在其部署中仅使用了部署的CPU容量的50%。

而在EC2上启动新实例的能力并不像HBO所需要的那么快,所以工程师不得不提供额外的容量来处理有时不可预知的流量模式。还需要过度配置ELB(弹性块存储)实例来帮助提供内容。

HBO工程师解释说:“我们没有充分利用我们CPU的能力,仅用了一半;但是我们的所有其他资源都用完了。”

为什么选择Kubernetes?HBO工程师针对Kubernetes,Mesos(Docker)Swarm和ECS(EC2弹性容器服务),做了认真的调查研究。HBO选择与Kubernetes合作的原因之一是该技术提供了改进的利用率和内省(introspection)功能。另外,HBO认为Kubernetes比其他选择更快更安全。

虽然HBO决定选择Kubernetes作为技术选择,但它也没有计划摆脱AWS,因为在2016年HBO做出决定的时候,云服务还没有没有自己的Kubernetes服务,不过最近已经发生了变化。比如,AWS刚于11月29日宣布,为Kubernetes(EKS)提供自己的弹性容器服务。HBO的工程师做了很多工作,以确保Kubernetes能够满足《权力的游戏》的生产部署需求。

HBO工程师表示,最终使用定制的Teraform模板来帮助管理和部署Kubernetes集群。Teraform是由HashiCorp开发的一个开源项目,帮助企业用代码管理基础设施部署。在网络方面,HBO选择使用开源的Flannel软件定义网络(SDN)技术,并创建了自定义安全组来帮助处理服务交付。

HBO工程师也强调,在第七季《权力的游戏》首映之前的三个月,技术团队很紧张,每周都进行一次大型的负载测试;同时Kubernetes的社区和讨论给了HBO技术团队很大的支撑!

相关推荐