公司 Northwestern Mutual 地点 Milwaukee, WI 行业 保险和金融服务

挑战

Northwestern Mutual 客户体验工程总监 Brad Williams 表示,2015 年春季,Northwestern Mutual 收购了一家金融科技初创公司 LearnVest,并决定将“Northwestern Mutual 的领先产品和服务与 LearnVest 的数字体验和创新型财务规划平台相结合”。该公司现有的基础设施经过优化,适用于托管在本地网络上的批处理工作流;部署方式非常传统,侧重于遵循流程而非提供部署敏捷性。Williams 说:“我们必须构建一个既具有弹性伸缩能力,又更加响应迅速的平台,以便我们可以快速地将数据传送到客户网站,让我们的最终客户获得他们所期望的体验。”

解决方案

平台团队制定了利用公有云 (AWS)、Docker 容器以及 Kubernetes 进行编排的计划。Northwestern Mutual 云原生工程师 Frank Greco Jr. 说:“Kubernetes 为我们提供了基础框架,使团队在构建内容时能够非常自主,并能非常快速、频繁地交付。”该团队还构建并开源了 Kanali,这是一个 Kubernetes 原生的 API 管理工具,使用了 OpenTracing、Jaeger 和 gRPC。

影响

以前,基础设施部署可能需要数周时间;现在,只需几分钟即可完成。部署次数显著增加,从每年约 24 次增加到仅 2017 年前 10 个月就超过 500 次。可用性也得到了提升:以前,每周日早上都有一个六小时的提交控制窗口,以及其他常规维护时段,在此期间可能会发生中断。Northwestern Mutual 应用平台团队经理 Bryan Pfremmer 表示:“现在我们取消了计划中的中断窗口。”Kanali 对盈亏产生了影响。Pfremmer 说,该公司之前使用的供应商 API 管理产品需要 23 台服务器,“专门用于 API 管理”。“现在它已完全集成到现有技术栈中,并在 Kubernetes 上作为另一个部署运行。这还仅仅是一个环境。加上我们原有的三个环境和测试环境,这将带来实实在在的成本节省。”

160 多年来,Northwestern Mutual 部分通过高度重视风险管理,保持了其行业领先地位。

多年来,该公司在技术管理方面采取了类似的方法,最近进行了一场数字化转型,以推进公司的数字化战略——这包括在云原生领域引发了不小的关注。

Northwestern Mutual 客户体验工程总监 Brad Williams 表示,2015 年春季,这家保险和金融服务公司收购了一家金融科技初创公司 LearnVest,并决定将“Northwestern Mutual 的领先产品和服务与 LearnVest 的数字体验和创新型财务规划平台相结合”。该公司现有的基础设施经过优化,适用于托管在本地数据中心上的批处理工作流;部署方式非常传统,且涉及许多容易出错的手动步骤。

Williams 说,为了让公司的 450 万客户获得他们所期望的数字体验,“我们必须构建一个既具有弹性伸缩能力,又更加响应迅速的平台,以便我们可以快速地将数据传送到客户网站。我们基本上是说,‘你要构建一个你认为有必要支持新一代面向现代化系统的系统。’这就是我们摒弃所有传统旧系统的原因。”

Williams 和平台团队的其他成员决定,第一步是开始从私有数据中心迁移到 AWS。考虑到新的微服务架构,并拥有实施对组织最有利方案的自由,他们开始使用 Docker 容器。在研究了各种容器编排选项后,他们选择了 Kubernetes,尽管当时它仍处于 Beta 阶段。Northwestern Mutual 云原生工程师 Frank Greco Jr. 表示:“当时有一些争论,是应该自己构建一些东西,还是直接利用那个产品并随之发展。”“Kubernetes 对我们来说绝对是正确的选择。它为我们提供了基础框架,使团队在构建内容时能够非常自主,并能非常快速、频繁地交付。”

作为早期采用者,团队不得不使用大量 Ansible 脚本来启动集群。Northwestern Mutual 应用平台团队经理 Bryan Pfremmer 解释说:“鉴于我们业务的性质,我们有很多严格的安全要求。”“我们发现自己运行的是一种很少有人尝试过的配置。”客户体验组是第一个使用新平台的;如今,该公司 1500 名工程师中有几百人在使用它,并且更多人渴望加入进来。

结果是显著的。以前,基础设施部署可能需要两周时间;现在,只需几分钟即可完成。现在专注于基础设施自动化和自助服务,Pfremmer 说:“如果你愿意,当天就可以将应用程序带到生产环境。”

以前的流程非常繁琐,次要的 Bug 发布会与功能发布捆绑在一起。借助 Kubernetes 实现的新简化系统,部署次数从每年约 24 次增加到仅 2017 年前 10 个月就超过 500 次。可用性也得到了改进:以前,每周日早上都有一个六小时的提交控制窗口,以及其他常规维护时段,在此期间可能会发生中断。Pfremmer 指出:“现在没有计划中的中断窗口了。”

Northwestern Mutual 构建了这款名为 Kanali 的 API 管理工具,并于 2017 年夏季将其开源。Greco 说,团队承担这个项目是因为它是他们正在构建的关键能力,而且之前的解决方案以一种“与我们所做的一切都不同、反云原生”的方式运行。现在,API 管理只是部署到 Kubernetes 的另一个容器,并伴随一个独立的 Jaeger 部署。

现在,使用 Kubernetes 部署平台的工程师获得了额外的优势:生产环境的可见性——以及自主权。以前,一个中心化团队必须运行跟踪。Greco 说:“现在,开发者拥有自主权,他们可以随时随地、以他们想要的任何方式使用它。随着我们在这方面的成熟,下游的仪器化越多,它就变得越有价值。”

但团队并未止步于此。Greco 说:“在大型企业中,会有人使用 Kubernetes,但也会有人使用 WAS 和 .NET。你可能无法让你的整个技术栈都实现云原生化。如果你可以采用你的 API 管理工具并将其云原生化,但仍然代理到传统系统,那会怎么样?利用云原生、开源和 Kubernetes 原生的不同组件,你可以做一些非常有创意的的事情。”

随着团队不断改进其技术栈并分享 Kubernetes 的最佳实践,他们认为 Northwestern Mutual 作为一家技术优先公司的声誉也在不断提升。Pfremmer 说:“没人会想到一家 160 多年历史的公司会如此深入地涉足云和基础设施技术栈。”他们希望这意味着他们能够吸引新的技术人才。“我们正在努力让人们了解我们正在做的事情,这样我们就能找到那些会说‘哇,这太有趣了。我想加入!’的人。”