公司Booking.com 地点荷兰 行业旅行

挑战

2016年,Booking.com迁移到OpenShift平台,这让产品开发人员可以更快地访问基础设施。但是由于Kubernetes从开发人员中抽象化了,当挑战出现时,基础架构团队就成为了“知识瓶颈”。试图扩大这种支持是不可持续的。

解决方案

在运营OpenShift一年后,平台团队决定建立自己的普通Kubernetes平台,并要求开发人员学习一些Kubernetes以便使用它。B platform Track首席开发者Ben Tyler说道:“这并不是一个神奇的平台。“我们并不是说你闭着眼睛就能使用它。开发者需要学习,我们将尽一切努力确保他们能够获得这些知识。”

影响

尽管学习曲线很复杂,但Kubernetes平台的使用率却有了很大的提升。在容器出现之前,如果开发人员了解Puppet,创建一个新的服务可能需要几天时间,如果他们不了解Puppet,可能需要几周时间。在新平台上,只需10分钟。在前8个月,平台上建立了大约500项新服务。

Booking.com与Kubernetes有很长的历史:2015年,旅行平台的团队将基于Mesos和Marathon的集装箱平台进行了模拟。

由技术所提供的内容印象深刻,但需要在其规模的企业功能 - 该网站每天处理超过150万的室内预订 - 团队决定采用OpenShift平台。

这个平台被包装在赫洛克风格的高层CLI界面,“肯定热门我们的产品开发人员,”Ben Tyler,Plation Developer,B平台轨道表示。“我们让他们更快地访问基础架构。”

但是,他补充说,“随时随地脱轨,开发人员没有任何支持自己所需的知识。”

他说,在运营这个平台一年之后,基础设施团队发现它已经成为“知识瓶颈”。“大多数使用它的开发者并不知道下面是Kubernetes。应用程序失败和平台失败看起来都像是heroku风格工具的失败。”

缩放必要的支持似乎没有可行或可持续性,因此平台团队需要一个新的解决方案。他们对经营openShift平台进行的Kubernetes的理解让他们确信自己建立自己的香草Kubernetes平台,并定制它以适应公司的需求。

B平台轨道高级系统管理员Eduard Iacoboaia说:“对于进入这一领域,OpenShift无疑是非常有用的。”“它向你展示了这项技术可以做什么,而且它让你使用起来很容易。在我们花了一些时间之后,我们意识到我们需要更好地学习Kubernetes,以便充分利用它的潜力。就在那时,我们开始转向构建自己的Kubernetes平台。从长远来看,我们肯定会受益于迈出这一步并投入时间去获取这些知识。”

Iacoboaia的团队定制了很多openshift工具,使他们在Booking.com上工作,“那些集成点有点脆弱,”他说。“我们花了更多的时间了解Kubernetes的所有组成部分,他们如何工作,如何互相互动。”该研究领导了团队从OpenShift的内置Ansible剧本转换为木偶部署,用于其余预订的基础架构。控制平面也从集群内部移动到裸金属中,因为公司运行成千上万的裸金属服务器以及用于在裸机上运行应用的大型基础设施。(预订在多个数据中心的多个数据中心中运行Kubernetes,在其上的各个地区,它已经计算出来的各个地区。)“我们决定尽可能简单,也使用我们最擅长的工具,”Iacoboaia说。

另一个重大变化是,产品工程师必须学习Kubernetes才能登上飞机。“这不是一个神奇的平台,”泰勒说。“我们并不是说你闭着眼睛就能使用它。开发者需要学习,我们将尽一切努力确保他们能够获得这些知识。”这包括培训、博客文章、视频和Udemy课程。

尽管学习曲线很复杂,但Kubernetes平台的使用率却有了很大的提升。“我认为我们已经能够成功地打击这一议价的原因是我们不要求他们学习专有的应用系统,”泰勒说。“我们要求他们学习一些开源的东西,知识可转让。他们通过学习Kubernetes来投资自己的职业生涯。”

这一策略取得成功的一个明显迹象是,在支持渠道中,当用户有问题时,其他产品工程师会立即做出回应。Tyler说道:“我以前从未在内部看到过围绕某一特定平台产品的社区参与。“在公司之外,这显然是一种生态系统标准,这很有帮助,所以人们觉得投资这种知识并与他人分享是有价值的,这真的非常非常强大。”

还有其他可量化的证据:在容器出现之前,如果开发者了解Puppet,创建一个新服务可能需要几天时间,如果他们不了解Puppet,则可能需要几周时间。在新平台上,只需10分钟。“我们有一个教程。您可以按照教程进行操作。代码正在运行。然后就是业务逻辑时间,”Tyler说。“获取资源的时间大大缩短了。”在最初的8个月里,该平台创造了大约500个新服务,每天都有数百个游戏发布。

平台提供不同的“合同层,即可发言”,“泰勒说。“在非常基地,它只是kubernetes。如果您是专业Kubernetes用户,这是一个Kubernetes API,就像你从GKE或AKS获得。我们试图成为同一级别的提供商。但我们的整个工作在公司内部是一个比vanilla基础设施更大的增值,所以我们为我们的主要堆栈,perl和java提供一组基础图像。“

并“随着我们的用户学习Kubernetes并成为更复杂的Kubernetes用户,他们对我们的压力提供了更好的本土Kubernetes体验,这很好,”泰勒说。“这是一个超级健康的动态。”

该平台还包括其他CNCF技术,例如特使,掌舵和普罗米修斯。Booking.com的大多数关键业务流量通过特使路由,Prometheus主要用于监控基础架构组件。Helm作为包装标准消耗。该团队还开发了开发和开放的托运人,为Kubernetes的扩展,添加了更复杂的卷展栏策略和多集群编排。

可以肯定的是,关于从地上建立Kubernetes平台的智慧的内部讨论。“这不是我们的核心竞争力 - 血腥和旅行,他们有点相距,对吧?”泰勒说。“但是我们对美国的CNCF组件进行了几次赌注,这对我们来说真的很好。但特别是Envoy和Kubernetes对我们的组织非常有益。我们能够定制他们,要么是因为我们可以看看源代码或因为它们有扩展点,我们能够非常快速地从中获得价值,而无需在内部更改任何范例。“