公司 诺斯威特互助 地点 威斯康星州密尔沃基 行业 保险和金融服务

挑战

2015 年春季,诺斯威特互助收购了一家金融科技初创公司 LearnVest,并决定将“诺斯威特互助的领先产品和服务与 LearnVest 的数字体验和创新的财务规划平台融合在一起,”诺斯威特互助客户体验工程总监布拉德·威廉姆斯说。该公司的现有基础设施已针对在内部网络上托管的批处理工作流进行了优化;部署非常传统,专注于遵循流程而不是提供部署敏捷性。“我们必须构建一个弹性可扩展的平台,但也必须更加响应,这样我们才能快速将数据传送到客户网站,以便我们的最终客户获得他们期望的体验,”威廉姆斯说。

解决方案

平台团队制定了一个使用公共云 (AWS)、Docker 容器和 Kubernetes 进行编排的计划。“Kubernetes 为我们提供了这个基本框架,因此团队可以在其构建的内容方面非常自主,并且可以快速频繁地交付,”诺斯威特互助云原生工程师弗兰克·格雷科·小说道。该团队还构建并开源了 Kanali,这是一个 Kubernetes 原生的 API 管理工具,它使用 OpenTracing、Jaeger 和 gRPC。

影响

以前,基础设施部署可能需要数周时间;现在,它只需几分钟就能完成。部署数量大幅增加,从每年约 24 次增加到 2017 年前 10 个月超过 500 次。可用性也提高了:以前每个周日早上都会有一个六小时的控制窗口用于提交,以及其他一些一般维护期,在此期间可能会发生停机。“现在我们已经消除了计划的停机窗口,”诺斯威特互助应用程序平台团队经理布莱恩·普雷默说。Kanali 对公司底线产生了影响。公司以前使用的供应商 API 管理产品需要 23 台服务器,“专门用于 API 管理,”普雷默说。“现在它已完全集成到现有堆栈中,并作为 Kubernetes 上的另一个部署运行。这只是一个环境。在我们拥有的三个环境加上测试环境之间,这节省了大量资金。”

160 多年来,诺斯威特互助一直保持着其行业领导地位,部分原因是其一直高度重视风险管理。

多年来,该公司在管理其技术方面采用了类似的方法,并且最近经历了数字化转型,以推进公司的数字化战略,包括在云原生领域大张旗鼓。

2015 年春季,这家保险和金融服务公司收购了一家金融科技初创公司 LearnVest,并决定将“诺斯威特互助的领先产品和服务与 LearnVest 的数字体验和创新的财务规划平台融合在一起,”诺斯威特互助客户体验工程总监布拉德·威廉姆斯说。该公司的现有基础设施已针对在内部数据中心中托管的批处理工作流进行了优化;部署非常传统,并且需要许多容易出错的手动步骤。

威廉姆斯说,为了给该公司 450 万客户提供他们期望的数字体验,“我们必须构建一个弹性可扩展的平台,但也必须更加响应,这样我们才能快速将数据传送到客户网站。我们实际上说,‘你构建你认为支持新现代面向客户的平台所需的系统。’这就是我们与传统系统决裂的原因。”

威廉姆斯和平台团队的其他成员决定,第一步是从私有数据中心迁移到 AWS。他们牢记新的微服务架构,并且拥有实施对组织最有利事物的自由,因此他们开始使用 Docker 容器。在研究了各种容器编排选项之后,他们选择了 Kubernetes,尽管它当时还处于测试版。“我们是否应该自己构建一些东西,还是仅仅利用那个产品并随着它的发展而发展,这方面有一些争议,”诺斯威特互助云原生工程师弗兰克·格雷科·小说道。“Kubernetes 绝对是我们正确的选择。它为我们提供了这个基本框架,因此团队可以在其构建的内容方面非常自主,并且可以快速频繁地交付。”

作为早期采用者,该团队不得不使用 Ansible 脚本来启动集群。“鉴于我们业务的性质,我们有很多严格的安全要求,”诺斯威特互助应用程序平台团队经理布莱恩·普雷默解释道。“我们发现自己运行着一个很少有人尝试过的配置。”客户体验小组是第一个使用新平台的小组;如今,该公司的 1500 名工程师中约有数百人正在使用它,并且更多人渴望加入。

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

以前,该过程非常繁琐,以至于微小的错误修复版本将与功能版本捆绑在一起。借助 Kubernetes 实现的新简化系统,部署数量从每年约 24 次增加到 2017 年前 10 个月超过 500 次。可用性也得到了改善:以前每个周日早上都会有一个六小时的控制窗口用于提交,以及其他一些一般维护期,在此期间可能会发生停机。“现在没有计划的停机窗口,”普雷默指出。

诺斯威特互助构建了那个 API 管理工具,名为 Kanali,并在 2017 年夏季将其开源。该团队承担了该项目,因为它对他们正在构建的内容至关重要,并且之前的解决方案以“非云原生方式工作,与我们正在做的其他所有事情都不一样,”格雷科说。现在,API 管理只是另一个部署到 Kubernetes 的容器,以及一个独立的 Jaeger 部署。

现在,使用 Kubernetes 部署平台的工程师获得了生产环境中的可见性以及自主权的额外好处。以前,一个集中化的团队必须运行跟踪。“现在,开发人员拥有自主权,他们可以随时随地使用它。随着我们对其进行完善,下游进行的仪器化越多,它就越有价值。”格雷科说。

但该团队并没有止步于此。“在一个大型企业中,你将有使用 Kubernetes 的人,但也将有使用 WAS 和 .NET 的人,”格雷科说。“你可能还没有达到整个堆栈都可以是云原生的地步。如果你可以将你的 API 管理工具变成云原生,但仍然代理到传统系统,会怎么样?使用不同的云原生、开源和 Kubernetes 原生的组件,你可以做一些非常有创意的事情。”

随着该团队继续改进其堆栈并分享其 Kubernetes 最佳实践,它认为诺斯威特互助作为一家技术领先公司的声誉也在不断提升。“没有人会认为一家拥有 160 多年历史的公司会深入研究云和基础设施堆栈,”普雷默说。他们希望这意味着他们能够吸引新的人才。“我们正在努力让大家了解我们正在做的事情,以便找到那些觉得‘是的,这很有趣。我想来做!’的人。”