公司:Northwestern Mutual 地点:威斯康星州密尔沃基 行业:保险和金融服务

挑战

Northwestern Mutual 客户端体验工程总监 Brad Williams 表示,2015 年春季,Northwestern Mutual 收购了一家金融科技初创公司 LearnVest,并决定“将 Northwestern Mutual 的领先产品和服务与 LearnVest 的数字体验和创新型财务规划平台相结合”。该公司现有的基础设施已针对本地网络上托管的批处理工作流程进行了优化;部署非常传统,侧重于遵循流程而不是提供部署敏捷性。Williams 说:“我们必须构建一个具有弹性可扩展性且响应速度更快的平台,以便我们能够快速将数据传输到客户端网站,从而为最终客户提供他们期望的体验。”

解决方案

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

影响

以前,基础设施部署可能需要数周时间;现在,只需几分钟即可完成。部署次数急剧增加,从每年约 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,尽管当时它还处于测试阶段。Northwestern Mutual 云原生工程师 Frank Greco Jr. 表示:“我们曾经争论过是应该自己构建一些东西,还是应该利用该产品并随之发展。Kubernetes 绝对是我们的正确选择。它为我们提供了基础框架,因此团队可以自主地构建和快速、频繁地交付。”

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

结果是惊人的。以前,基础设施部署可能需要两周时间;现在,只需几分钟即可完成。现在,随着对基础设施自动化和自助服务的关注,“如果您愿意,可以在同一天将应用程序投入生产,”Pfremmer 说。

该过程过去非常繁琐,以至于次要错误版本会与功能版本捆绑在一起。借助 Kubernetes 实现的新精简系统,部署次数从每年约 24 次增加到 2017 年前 10 个月就超过 500 次。可用性也得到了提高:过去,每个星期天早上都有一个六小时的提交控制窗口,以及其他一般维护时间段,在此期间可能会发生中断。Pfremmer 指出:“现在没有计划内的停机窗口。”

Northwestern Mutual 构建了该 API 管理工具(称为 Kanali),并在 2017 年夏季开源。该团队之所以承担该项目,是因为这是他们正在构建的关键功能,并且之前的解决方案以“与我们正在做的其他所有事情都不同的反云原生方式”工作,Greco 说。现在,API 管理只是部署到 Kubernetes 的另一个容器,以及一个单独的 Jaeger 部署。

现在,使用 Kubernetes 部署平台的工程师还可以在生产中获得可见性和自主性的额外好处。以前,一个集中式团队必须运行跟踪。“现在,开发人员拥有自主权,他们可以随时随地使用它。随着我们在其中的成熟,下游的仪器仪表越多,它就变得越有价值。”Greco 说。

但团队并没有就此止步。Greco 说:“在大型企业中,会有人使用 Kubernetes,但也会有人使用 WAS 和 .NET。”“您可能还没有达到整个堆栈都可以是云原生的程度。如果您能够采用 API 管理工具并使其成为云原生,但仍然可以代理到遗留系统,那该怎么办?使用不同的云原生、开源和 Kubernetes 原生组件,您可以做很多创新。”

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