挑战
在经历敏捷转型后,ING 意识到它需要一个标准化平台来支持开发人员的工作。“我们的 DevOps 团队被授权自主行事,”基础设施架构师 Thijs Ebbers 说,“这有好处;你会得到各种各样的想法。但很多团队会发明相同的轮子。团队开始尝试 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 天内将其转换为云原生,尽管当然在代码完全投入生产之前,后续还需要更多时间。”
本着同样的创新精神,该公司几年前进行了一次敏捷转型。“我们的 DevOps 团队被授权自主行事,”基础设施架构师 Thijs Ebbers 说,“这有好处;你会得到各种各样的想法。但很多团队会发明相同的轮子。团队开始尝试 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(欧盟委员会指令,要求提供更具创新性的在线和移动支付,并于 2018 年初生效)。例如,一个名为 Yolt 的银行账户管理应用程序,服务于英国市场(即将进入法国和意大利),已在 Kubernetes 平台上构建并投入生产。ING 还在开发将在 Kubernetes 平台上运行的区块链应用程序。“我们收到了许多开发团队的联系,他们对容器的使用有各种想法,”Ebbers 说。
即使在银行领域有特殊要求,ING 仍设法在技术和创新方面取得了领先地位。“每当我们遇到限制时,我们都会寻找可能更好地利用这项技术的方法,”Fernandez-Barandiaran 说。
毕竟,结果是值得付出努力的。“云原生对我们业务的最大承诺是能够在 48 小时内将想法付诸生产,”Ebbers 说,“这需要所有这些项目都成熟。我们距离实现这一目标还有几年时间,但这对于我们来说是完全可行的。”