公司 纽约时报 地点 纽约,纽约州 行业 新闻媒体

挑战

几年前,该公司决定从其数据中心迁移出去,其在公有云上的首次部署规模较小,是在虚拟机上管理的不太重要的应用程序。“我们开始构建越来越多的工具,在某个时刻我们意识到,将亚马逊视为另一个数据中心的做法是错误的,”纽约时报工程执行总监 Deep Kapadia 说。Kapadia 被任命领导一个交付工程团队,该团队将“为云提供商提供给我们的抽象进行设计”。

解决方案

该团队决定使用 谷歌云平台 及其 Kubernetes 作为服务的解决方案 GKE.

影响

交付速度提高。一些基于虚拟机的传统部署需要 45 分钟;使用 Kubernetes,这个时间“只需要几秒钟到几分钟”,工程经理 Brian Balser 说。Li 补充说:“过去在每周计划中部署或必须与基础设施团队协调计划的团队,现在可以独立部署更新,并在需要时每天进行部署。”采用云原生计算基金会技术,可以实现跨工程人员的更统一的部署方法,并为公司提供可移植性。

纽约时报创办于 1851 年,被称为记录报纸,是数字先驱:其第一个网站于 1996 年上线,甚至早于谷歌的诞生。几年前,该公司决定从其私有数据中心迁移出去,其中包括位于曼哈顿昂贵房地产市场上的一个数据中心。最近,该公司通过采用云原生技术,再次迈向未来。

最初,基础设施团队“在亚马逊云中管理虚拟机,并在我们的数据中心中部署更关键的应用程序,并在 AWS 上部署不太重要的应用程序作为实验,”纽约时报工程执行总监 Deep Kapadia 说。“我们开始构建越来越多的工具,在某个时刻我们意识到,将亚马逊视为另一个数据中心的做法是错误的。”

为了充分利用云,Kapadia 被任命领导一个新的交付工程团队,该团队将“为云提供商提供给我们的抽象进行设计”。2016 年中期,他们开始关注 谷歌云平台 及其 Kubernetes 作为服务的解决方案 GKE.

团队成员、网站可靠性工程师 Tony Li 说,“当时,我们有一些内部工具试图为容器做 Kubernetes 所做的事情,但针对的是虚拟机。我们问,为什么我们要自己构建和维护这些工具?”

2017 年初,第一个生产应用程序——nytimes.com 移动主页——开始在 Kubernetes 上运行,仅服务 1% 的流量。如今,几乎 100% 的 nytimes.com 网站面向最终用户的应用程序都在 GCP 上运行,其中大部分都在 Kubernetes 上。

该团队发现,交付速度立即受到影响。“部署 Docker 镜像比启动虚拟机快得多,”工程经理 Brian Balser 说。一些基于虚拟机的传统部署需要 45 分钟;使用 Kubernetes,这个时间“只需要几秒钟到几分钟”。

计划是尽可能多地将应用程序,而不仅仅是网站,运行在 Kubernetes 上,并且在此基础上,朝着无服务器部署发展。例如,纽约时报的填字游戏应用程序是在 谷歌应用引擎 上构建的,它一直是该公司对无服务器进行实验的主要平台。“最难的部分是让工程师克服对他们需要做的事情很少的障碍,”首席技术官 Nick Rockwell 最近告诉 CTO Advisor。“我们的经验非常好。我们投入了大量精力在容器服务上部署应用程序,我非常兴奋地尝试将这些应用程序部署在应用引擎 Flex 和 AWS Fargate 上,看看感觉如何,因为这是一条很棒的迁移路径。”

当然,向云原生迁移也有一些例外。“我们还有印刷出版业务,”Kapadia 说。“其中很大一部分绝对不会走云原生路线,因为他们使用的是供应商软件,甚至使用的是打印纸质文件的专用机器。但即使是这些团队也在考虑应用引擎和 Kubernetes,如果他们可以的话。”

Kapadia 承认,对于一些工程师来说,存在陡峭的学习曲线,但“我认为,一旦你克服了最初的障碍,事情就会变得容易得多,而且实际上速度也会快得多。”

在纽约时报,他们确实做到了。随着团队开始相互分享各自的最佳实践,“我们不再是解决某些问题的瓶颈,”Kapadia 说。“大部分基础设施和系统都由一个集中式功能进行管理。我们已经将这种方式打破,部分原因是谷歌和亚马逊拥有允许我们做到这一点的工具。我们为团队提供其 Google Cloud Platform 项目的完全所有权,并为他们提供一套合理的默认值或标准。我们让他们知道,‘如果这对你来说已经足够好了,那就太好了!如果没有,那就来找我们,我们会想办法让它为你工作。’”

因此,“它真正让团队能够以前所未有的速度前进,”Kapadia 说。Li 补充说:“使用 GKE 意味着每个团队都可以获得自己的计算集群,减少他们需要关注的单个实例数量,因为开发人员可以将集群视为一个整体。由于请求资源和连接的票证流程已消除,开发人员只需调用 API 即可获得所需内容。过去在每周计划中部署或必须与基础设施团队协调计划的团队,现在可以独立部署更新,并在需要时每天进行部署。”

采用 Kubernetes 的另一个好处是:允许跨工程人员采用更统一的部署方法。“以前,很多团队都在构建自己的部署工具,”Balser 说。使用 Kubernetes 以及纽约时报使用的其他 CNCF 项目,包括 Fluentd 用于收集所有 AWS 服务器的日志,gRPC 用于其 发布管道,Prometheus 和 Envoy,“我们可以从这些技术的每一次进步中获益,而不是试图赶上。”

这些开源技术为公司提供了更高的可移植性。“CNCF 使我们能够遵循行业标准,”Kapadia 说。“它让我们可以考虑是否要从我们当前的服务提供商那里迁移。我们的大多数应用程序都连接到 Fluentd。如果我们希望将我们的日志提供商从提供商 A 切换到提供商 B,我们可以这样做。我们今天在 GCP 中运行 Kubernetes,但如果我们想在亚马逊或 Azure 中运行它,我们也可以考虑这样做。”

Li 将云原生计算基金会的项目称为“我们都可以仰望并追随的北极星”。在这一颗星的指引下,该团队展望未来的一年,将剩余的 40 个产品工程团队中的 50% 吸收进来,以从该技术中挖掘出更多价值。“现在,每个团队都在运行一个小型 Kubernetes 集群,但如果我们都能在一个更大的生态系统中生活,那就太好了,”Kapadia 说。“然后我们可以利用服务网格代理等功能的优势,这些代理实际上可以在微服务之间执行大量检测,或者进行服务到服务的编排。这些是我们希望在未来进行实验的新事物。”