挑战
在进行敏捷转型后,ING 意识到需要一个标准化平台来支持开发人员的工作。基础设施架构师 Thijs Ebbers 表示:“我们的 DevOps 团队获得了自主权。这有好处;你会得到各种各样的想法。但很多团队都会重复发明同一个轮子。团队开始尝试使用 Docker、Docker Swarm、Kubernetes、Mesos。嗯,对一家公司来说,有一百个轮子而不是一个好轮子,这并没有多大用处。
解决方案
ING 团队利用 Kubernetes 进行容器编排、Docker 进行容器化,开始为其 CI/CD 流水线和全新应用构建内部公有云。该流水线目前基于 Mesos Marathon 构建,未来将迁移到 Kubernetes 上。在英国(以及即将进入的法国和意大利)市场的银行账户管理应用 Yolt 已在 Kubernetes 框架上上线并运行。目前至少有两个基于 Kubernetes 框架的全新项目将于今年晚些时候投入生产。到 2018 年底,公司计划将用于银行客户体验的多个 API 转换为云原生 API,并将其托管在基于 Kubernetes 的平台上。
影响
基础设施架构师 Onno Van der Voort 表示:“云原生技术正在帮助我们提高速度,从应用程序进入测试、验收再到生产环境。如果你现在走进 ING,会看到所有这些 DevOps 团队,他们正在开站会、做演示。他们正在努力非常快地推出新功能。我们针对一个现有组件举办了一场黑客马拉松,基本上在 2.5 天内就将其转换为云原生,当然在代码完全达到生产就绪之前,后续工作需要更多时间。”
本着同样的精神,公司在几年前进行了敏捷转型。基础设施架构师 Thijs Ebbers 表示:“我们的 DevOps 团队获得了自主权。这有好处;你会得到各种各样的想法。但很多团队都会重复发明同一个轮子。团队开始尝试使用 Docker、Docker Swarm、Kubernetes、Mesos。嗯,对一家公司来说,有一百个轮子而不是一个好轮子,这并没有多大用处。”
为了在公司严格的安全指南下实现部署流程的标准化,团队考察了多种解决方案,并发现过去一年里,“Kubernetes 赢得了容器管理框架之战,”Ebbers 说道。“我们决定将 ING 标准化到 Kubernetes 框架上。” 他补充说,由于银行监管规定,一切都在本地运行,但“我们将构建一个内部公有云。我们正努力达到公有云的能力水平。这是我们采用 Kubernetes 的原因之一。”
他们还拥抱了 Docker,以解决 ING CI/CD 流水线中的一个主要痛点。基础设施架构师 Onno Van der Voort 表示,在容器化之前,“每个开发团队都必须订购一个虚拟机,这对他们来说是相当繁重的交付模式。”“容器化的另一个用例是,当应用程序在流水线中流转时,他们会启动 Docker 容器对应用程序进行测试,完成工作后,这些容器就会被再次终止。”
由于行业规定,应用程序只允许通过强制执行合规性的流水线,而不能直接部署到容器中。Van der Voort 表示:“我们必须运行所需的完整服务平台,其中许多是从不同地方路由过来的。我们需要这个 Kubernetes 框架来部署容器,包括所有这些组件、监控、日志记录。这很复杂。” 因此,ING 选择从 OpenShift Origin Kubernetes 分发版开始。
目前,“云原生技术正在帮助我们提高速度,从应用程序进入测试、验收再到生产环境,”Van der Voort 说道。“如果你现在走进 ING,会看到所有这些 DevOps 团队,他们正在开站会、做演示。他们正在努力非常快地推出新功能。我们针对一个现有组件举办了一场黑客马拉松,基本上在 2.5 天内就将其转换为云原生,当然在代码完全达到生产就绪之前,后续工作需要更多时间。”
该流水线目前基于 Mesos Marathon 构建,未来将迁移到 Kubernetes 上。一些遗留应用也被重写为云原生应用,以便在该框架上运行。至少有两个基于 Kubernetes 构建的较小全新项目将于今年投入生产。到 2018 年底,公司计划将用于银行客户体验的多个 API 转换为云原生 API,并将其托管在基于 Kubernetes 的平台上。
然而,该团队认为银行的后端系统不会迁移到 Kubernetes 平台。Van der Voort 表示:“我们的理念是,只有在云原生的前提下,将事物迁移到云端才有意义。如果你有传统的架构,构建传统的模式,迁移到云端并没有任何价值。” 云平台架构师 Alfonso Fernandez-Barandiaran 补充说:“ING 有关于我们未来发展方向的战略,以提高我们的敏捷性。所以这与技术本身有多酷无关,而是要找到合适的技术和方法。”
Kubernetes 框架将托管一些对 ING 来说具有高优先级的新项目:即公司为响应 PSD2 而正在开发的应用,PSD2 是欧盟委员会的一项指令,要求提供更具创新性的在线和移动支付,并于 2018 年初生效。例如,在英国市场(以及即将进入的法国和意大利)服务的银行账户管理应用 Yolt,就是基于 Kubernetes 平台构建的,并已投入生产。ING 还在开发支持区块链的应用,这些应用将运行在 Kubernetes 平台上。Ebbers 表示:“许多开发团队已与我们联系,他们对于如何使用容器有许多想法。”
即使面对银行业的特殊要求,ING 仍在技术和创新方面保持领先。 Fernandez-Barandiaran 表示:“每次遇到限制,我们都会寻找一种可能更好地利用这项技术的方法。”
毕竟,这些结果是值得付出努力的。Ebbers 表示:“云原生对我们业务的最大承诺是能够在 48 小时内将想法变为生产。这需要所有这些项目都足够成熟。距离实现这一目标我们还有几年时间,但这在我们看来是相当可行的。”