公司:Amadeus IT 集团 地点:西班牙马德里 行业:旅游技术

挑战

在过去几年中,为全球旅游业提供 IT 解决方案的 Amadeus 发现,它需要一个新的平台来支持其面向服务的架构所支持的 5,000 项服务。这家拥有 30 年历史的公司在德国运营着自己的数据中心,并且内部和外部对需要在地理上分散的解决方案的需求不断增长。Amadeus 分布式系统高级专家 Eric Mountain 表示,更普遍地说,“我们的目标是实现更高的可用性”。该公司的目标包括:提高基础设施管理的自动化程度、优化工作负载分配、更有效地利用数据中心资源以及更轻松地采用新技术。

解决方案

Mountain 一直在监督公司向 Kubernetes 的迁移,使用的是红帽的企业容器平台 OpenShift Container Platform。

影响

该团队在 Kubernetes 中部署的首批项目之一是 Amadeus 航空公司云可用性解决方案,该解决方案有助于管理不断增长的航班搜索量。Mountain 表示:“它现在在生产环境中每秒处理数千笔交易,并部署在全球多个数据中心。这不是现有工作负载的迁移;这是一个我们以前无法完成的全新工作负载。[这个平台] 为我们提供了以前无法获得的市场机会。”

在 Amadeus 工作的二十年里,Eric Mountain 一直是迁移专家。

过去,他致力于公司从 Unix 迁移到 Linux 的工作,现在他正在监督向云原生的迁移。“技术一直在变化,我们也拥抱它,”他说。“我们今年庆祝公司成立 30 周年,我们将继续发展和创新,以保持成本效益并增强每个人的旅行体验,同时不会中断依赖我们技术的客户的工作流程。”

这就是 Amadeus 在 2014 年面临的挑战,该公司为全球旅游业提供 IT 解决方案,从航班搜索到酒店预订再到客户反馈。技术团队意识到,它需要一个新的平台来支持其面向服务的架构所支持的 5,000 项服务。

转折点出现在他们开始收到许多内部和外部请求时,这些请求需要在地理位置上位于该公司位于德国的主要数据中心之外的解决方案。Mountain 说:“有些请求是要求在客户场所运行我们的应用程序。我们还在寻求提供一些需要几百毫秒响应时间的新服务,而我们无法通过跨大西洋流量来实现这一点。或者至少,这会占用我们应用程序处理单个查询的大量可用时间。”

更普遍地说,该公司有兴趣提高高可用性,提高基础设施管理的自动化程度,优化工作负载分配以及更有效地利用数据中心资源。Mountain 说:“我们有成千上万台服务器。这些服务器被分配了角色,因此即使设置高度自动化,机器仍然具有给定的角色。这在很多层面上都是浪费。例如,应用程序不一定非常优化地使用机器。虚拟化可以起到一定作用,但它不是万能的。如果那台机器坏了,你仍然想修复它,因为它有那个角色,你不能简单地说,‘好吧,我会再带一台机器来,给它那个角色。’这并不快。效率也不高。所以我们想要下一级的自动化。”

虽然 Amadeus 主要是一家 C++ 和 Java 公司,但它也希望能够更轻松地采用新技术。它的一些开发人员已经开始使用 Python 等语言和 Couchbase 等数据库,但 Mountain 希望有更多选择,他说,“以便更好地使我们的技术解决方案适应我们提供的产品,并为我们的开发人员开辟全新的可能性。” 使用最新的技术和酷炫的新事物也将更容易吸引新的人才。

所有这些需求促使 Mountain 和他的团队开始寻找一个新的平台。他说:“我们在相当短的时间内进行了一系列研究和概念验证,并考虑了许多技术。最后,我们只剩下三个选择:在本地构建所有内容,在我们看来缺少的任何内容的基础上构建 Kubernetes,或者使用 OpenShift 并构建剩下的任何内容。”

该团队决定不自己构建所有东西——尽管他们过去做过这种事情——因为“人们已经在发明看起来不错的东西了,”Mountain 说。

最终,他们选择了红帽基于 Kubernetes 的企业产品 OpenShift Container Platform,而不是在 Kubernetes 之上构建,因为“我们想要的东西与红帽预期使用 OpenShift 的方式之间存在很多协同效应,”Mountain 说。“他们显然在开发 Kubernetes,并且提前在 OpenShift 中开发某些对我们很重要的东西,例如更高的安全性。”

他们希望这些特定功能最终会被内置到 Kubernetes 中,而且,就安全性而言,Mountain 认为这已经发生了。Mountain 说:“我们意识到,我们总是需要开发一定程度的自动化来弥补某些差距。我们做得越少越好。我们希望,如果我们以他人构建的内容为基础进行构建,我们所做的工作实际上可能是可以向上游贡献的。随着 Kubernetes 和 OpenShift 的发展,我们看到我们确实能够删除我们实现的一些额外层,以弥补我们之前认为的差距。”

该团队处理的第一个项目是他们知道必须在德国的数据中心之外运行的项目。由于项目的需求,“我们不能仅仅依赖内置的 Kubernetes 服务发现;我们必须在其之上构建一个额外的服务发现层,以便我们能够在系统内的操作级别进行负载均衡,”Mountain 说。他们还构建了一个专门用于监控的流,而 Kubernetes 或 OpenShift 生态系统当时并没有提供这种功能。现在 Prometheus 和其他产品已经可用,Mountain 表示该公司可能会重新评估他们的监控系统:“我们显然总是喜欢利用 Kubernetes 和 OpenShift 可以提供的东西。”

第二个项目最终首先投入生产:Amadeus 航空公司云可用性解决方案,该解决方案有助于管理不断增长的航班搜索量,并部署在公有云中。该解决方案于 2016 年初推出,“现在在生产环境中每秒处理数千笔交易,并部署在全球多个数据中心,”Mountain 说。“这不是现有工作负载的迁移;这是一个我们以前无法完成的全新工作负载。[这个平台] 为我们提供了以前无法获得的市场机会。”

在经历了不止一次这样的技术变革之后,Mountain 对如何处理文化变革提出了一些建议。“这是我们可以逐步解决的一个方面,”他说。“我们必须继续为我们的客户提供我们现有产品的新的功能,我们必须保持现有产品的正常运行。所以我们不能简单地在一夜之间完成所有的事情。我们也不能那样宣传它。”

因此,首要任务是选择一两个应用程序来证明该技术有效。Mountain 的团队没有选择一个高影响、高风险的项目,而是选择了一个较小的应用程序,该应用程序在其复杂性方面代表了公司所有其他应用程序:“我们只是确保我们选择的东西足够复杂,并且我们证明了这是可以做到的。”

接下来是说服人们。“在运营方面和研发方面,都会有人非常正确地说,‘有一个系统,而且它有效,为什么要改变?’”Mountain 说。“唯一真正能说服人们的是向他们展示价值。” 对于 Amadeus 来说,人们意识到,使用该公司现有的系统,航空公司云可用性产品不可能在公有云上提供。他说,接下来的问题就变成了,“我们要进行全面迁移吗?这是合理的吗?”

他说:“底线是我们希望拥有这些多数据中心功能,并且我们也希望将它们用于我们的主流系统。我们认为我们无法使用以前的系统来实现它们。我们需要 Kubernetes 和 OpenShift 带来的新的自动化、同质性和规模。”

那么,如何才能让所有人都参与进来呢?他说:“要确保研发部门和运营部门之间有良好的沟通。还要确保尽早与投资者和利益相关者沟通。弄清楚他们对你的期望是什么,是什么会让他们相信或不相信这是你公司的正确发展方向。”

他的另一个建议是,让人们有机会试用这项技术。他指出:“Kubernetes 和 OpenShift Origin 都是开源软件,因此评估期没有复杂的许可证密钥,而且使用时间也不限于 30 天。”“去试试吧。”他还补充说:“你必须准备好重新思考做事的方式。当然,尽可能地让你的应用程序成为云原生应用程序,这样才能获得最大的收益:12 要素、CI/CD,即持续集成、持续交付,以及持续部署。”

在探索该技术的这一方面的同时,Mountain 和他的团队可能会将他在云原生之旅中向其他人传授的经验付诸实践。他说:“看看当你破坏它时会发生什么,因为了解系统的极限很重要。”或者更确切地说,他指出,了解系统的优势。“在 Kube 上破坏东西实际上是它的一大优点——它会恢复。这是你唯一能真正看到自己可能做某件事的方法。”