挑战
2015年春季,西北互助收购了一家金融科技初创公司LearnVest,并决定将“西北互助的领先产品和服务与LearnVest的数字体验和创新金融规划平台相结合”,西北互助客户体验工程总监Brad Williams表示。该公司现有的基础设施针对本地网络上的批处理工作流进行了优化;部署非常传统,侧重于遵循流程而不是提供部署敏捷性。“我们必须构建一个弹性可扩展的平台,并且响应速度更快,以便我们可以快速将数据传输到客户端网站,从而让我们的最终客户获得他们期望的体验,”Williams说。
解决方案
平台团队提出了一个使用公有云(AWS)、Docker容器和Kubernetes进行编排的计划。“Kubernetes为我们提供了一个基础框架,使团队可以非常自主地构建和快速频繁地交付,”西北互助云原生工程师Frank Greco Jr.说。该团队还构建并开源了Kanali,这是一个使用OpenTracing、Jaeger和gRPC的Kubernetes原生API管理工具。
影响
以前,基础设施部署可能需要数周时间;现在,只需几分钟即可完成。部署数量急剧增加,从每年大约24次增加到2017年前10个月的500多次。可用性也得到了提高:过去,每周日早上都有一个为期六小时的提交控制窗口,以及其他一般维护期,在此期间可能会发生中断。“现在我们已经消除了计划内的中断窗口,”西北互助应用平台团队经理Bryan Pfremmer说。Kanali对盈利产生了影响。该公司以前使用的供应商API管理产品需要23台服务器,“专门用于API管理”,Pfremmer说。“现在它都集成到现有堆栈中,并作为Kubernetes上的另一个部署运行。这仅仅是一个环境。我们拥有的三个加上测试环境,这节省了大量的硬性成本。”
多年来,该公司在管理其技术方面也采取了类似的方法,并且最近进行了数字化转型,以推进公司的数字化战略,包括在云原生领域引起广泛关注。
2015年春季,这家保险和金融服务公司收购了一家金融科技初创公司LearnVest,并决定将“西北互助的领先产品和服务与LearnVest的数字体验和创新金融规划平台相结合”,西北互助客户体验工程总监Brad Williams表示。该公司现有的基础设施针对本地数据中心托管的批处理工作流进行了优化;部署非常传统,并且存在许多容易出错的手动步骤。
为了给公司450万客户提供他们期望的数字体验,Williams说:“我们必须构建一个弹性可扩展的平台,并且响应速度更快,以便我们可以快速将数据传输到客户端网站。我们本质上是说,‘你构建你认为支持新的、面向现代的系统所必需的系统’。这就是我们脱离任何传统的原因。”
Williams和平台团队的其他成员认为,第一步是开始从私有数据中心迁移到AWS。考虑到新的微服务架构以及实现对组织最有益的架构的自由,他们开始使用Docker容器。在研究了各种容器编排选项后,他们选择了Kubernetes,即使它当时仍处于测试阶段。“当时有一些争论,我们是应该自己构建一些东西,还是仅仅利用该产品并与之一起发展,”西北互助云原生工程师Frank Greco Jr.说。“Kubernetes绝对是我们的正确选择。它为我们提供了一个基础框架,使团队可以自主地构建和快速频繁地交付。”
作为早期采用者,该团队必须使用大量的Ansible脚本来启动集群。“考虑到我们业务的性质,我们有很多严格的安全要求,”西北互助应用平台团队经理Bryan Pfremmer解释说。“我们发现自己运行的配置很少有人尝试过。”客户体验组是第一个使用新平台的;如今,该公司1500名工程师中有几百人正在使用它,并且有更多的人渴望加入。
结果是惊人的。以前,基础设施部署可能需要两周时间;现在,只需几分钟即可完成。现在,通过关注基础设施自动化和自助服务,“如果你愿意,你可以在同一天将应用程序投入生产,”Pfremmer说。
这个过程过去非常繁琐,以至于小的错误修复会与功能发布捆绑在一起。借助Kubernetes启用的新简化系统,部署数量从每年大约24次增加到2017年前10个月的500多次。可用性也得到了提高:过去,每周日早上都有一个为期六小时的提交控制窗口,以及其他一般维护期,在此期间可能会发生中断。“现在没有计划内的中断窗口,”Pfremmer指出。
西北互助构建了那个名为Kanali的API管理工具,并在2017年夏天将其开源。该团队承担这个项目是因为它是他们正在构建的关键功能,并且之前的解决方案以“反云原生方式工作,与我们正在做的其他一切都不同,”Greco说。现在,API管理只是与单独的Jaeger部署一起部署到Kubernetes的另一个容器。
现在,使用Kubernetes部署平台的工程师在生产中具有额外的可见性和自主性。以前,一个集中式团队必须运行跟踪。“现在,开发人员拥有自主权,他们可以随时随地使用它。随着我们在其中不断成熟,随着下游的工具化程度越高,它就变得越有价值。”Greco说。
但该团队并没有就此止步。“在大型企业中,你会有人使用Kubernetes,也会有人使用WAS和.NET,”Greco说。“你可能还没有达到整个堆栈都可以云原生的程度。如果你可以将API管理工具云原生化,但仍然可以代理到旧系统呢?使用不同的云原生、开源和Kubernetes原生组件,你可以做很多创新的事情。”
随着该团队不断改进其堆栈并分享其Kubernetes最佳实践,他们认为西北互助作为一家技术优先公司的声誉也在不断发展。“没有人会想到一家有160多年历史的公司会如此深入地涉足云和基础设施堆栈,”Pfremmer说。他们希望这意味着他们将能够吸引新的人才。“我们正在努力让人们知道我们正在做什么,以便我们可以找到那些说,‘是的,这很有趣。我想来做这件事!’的人。”