专栏首页CNCFKubernetes 发行版领进门,Booking.com 自建平台靠个人

Kubernetes 发行版领进门,Booking.com 自建平台靠个人

  • 创建新服务的时间从数天或数周减至10分钟
  • 采用平台的8个月创建了500项新服务
  • 每天发布数百个

行业:旅游

地点:荷兰

云类型:私有

挑战:速度

产品类型:安装程序

使用的CNCF项目:Kubernetes、Prometheus、Envoy、Helm

挑战

2016年,Booking.com迁至一个 OpenShift 平台,这一举措让产品开发者能够更加快捷地进入基础设施。但对于开发者来说,因为 Kubernetes 给抽象掉,出现挑战时,基础设施团队就成为“知识瓶颈。”加大支持力度往往不可持续。

解决方案

运行OpenShift一年后,平台团队决定建立自己的 Kubernetes 平台,要求开发者学习 Kubernetes 相关知识,以便日后使用。“这个平台可不能无师自通,”平台 Track B 开发者主管 Ben Tyler 说:“我们从来没说过你闭着眼睛就能使用。开发者需要学习相关知识,我们也会尽全力为开发者提供渠道,保证他们获取知识。”

影响

尽管需要学习过程,新的 Kubernetes 平台的采用呈现很大的增长。使用容器之前,如果开发者了解 Puppet,创建一项新的服务也要几天时间,如果不了解,则需要数周时间。而在新的平台上,10分钟就能搞定。在使用平台的前8个月中,创建的新服务约有500多项。

Booking.com 和 Kubernetes 渊源已久:2015年,旅游平台上的一个团队在 Mesos 和 Marathon 基础上,构建了一个容器平台原型。

这项技术的强大给他们留下了深刻的印象,但在这个规模上,需要体现企业特点,网站平均每天处理150多万个房间/晚预定,所以团队最终决定采用 OpenShift 平台。

这个平台包裹在类似 Heroku 高级 CLI 界面中,“深受产品开发者青睐,”平台 Track B 开发者主管 Ben Tyler说,“我们能帮他们快速进入基础设施。”

但是,他补充说:“稍微偏离轨道一点,开发者就会不知道如何自救了。”

运行这个平台一年之后,基础设施团队发现平台成了“知识瓶颈”,他说:“多数使用平台的开发者并不知道下面是 Kubernetes。应用程序和平台故障都和类似 Heroku 工具故障非常相似。”

提供必要的支持貌似不可行,也不可持续,平台团队需要一个新的解决方案。在运行 OpenShift 平台过程中积累的 Kubernetes 知识给他们增加了信心,他们想建立一个自己的 Kubernetes 平台,定制化地满足公司的需求。

“说到带入情境,OpenShift 绝对好用。”平台 Track B 高级系统管理员 Eduard Iacoboaia 说,“它能展示这项技术的功能,更方便用户使用。花点时间学习后,我们就明白需要更好地学习 Kubernetes,这样才能充分发掘它的潜力。那时,我们做出了转变,建立了自己的Kubernetes平台。搭建自己的平台,花点时间学习知识,从长期来看,我们是绝对受益的。”

Iacoboaia 的团队定制了很多 OpenShift 工具用于 Booking.com,“这些集成点有些脆弱,”他说,“我们用更多的时间了解 Kubernetes 所有组件,它们的运行方式以及相互作用的方式等。”这项研究引导团队从 OpenShift 的嵌入式 Ansible playbooks 转向 Puppet 部署,后者用于 Booking 其他的基础设施。控制平面也从集群内部转移到了裸机上,因为该公司运行着数万台裸机服务器和用于在裸机上运行应用程序的大型基础设施。(Booking 在其进行计算的多个地区的多个数据中心的多个集群内运行 Kubernetes。)“我们决定尽可能简化这些工具,使用我们最了解的那些,”Iacoboaia 说。

“我们的用户学过 Kubernetes 之后,就成为更为成熟的 Kubernetes 用户了。他们就会给我们施加压力,让我们提供更好更原来的 Kubernetes 体验,这是件好事,给我们提供了超级有益的动力。” — BOOKING.COM 平台 TRACK B 开发者主管 BEN TYLER

另一个比较大的变化是产品工程师也需要学习掌握 Kubernetes,这样才能参与进来。“这个平台可不能无师自通,” Tyler 说:“我们从来没说过你闭着眼睛就能使用。开发者需要学习相关知识,我们也会尽全力为开发者提供渠道,保证他们获取知识。”这些渠道包括培训、博客文章、视频和 Udemy 课程。

尽管需要学习过程,新的 Kubernetes 平台的采用呈现很大的增长。“我认为我们能够成功是因为我们并没有要求他们掌握一个私有的应用系统,” Tyler 说,“我们让他们学的东西是开源的,知识是可以自由转让的。他们学习 Kubernetes,就是在投资自己的职业发展。”

这个策略非常成功,有一点能够充分证明:在支持频道,用户一旦提出任何问题,就会有产品工程师上线解决。“之前我从来没见过哪个内部社区,能够就某个平台产品提供这样的社区参与式服务,” Tyler 说,“显然在公司外部,已经有了一个生态系统标准,这真是大有用处,所以大家会觉得花时间学习知识、再和别人分享很有价值。这样就能产生巨大的影响。”

还有其他可以量化的证据表明:使用容器之前,如果开发者了解 Puppet,创建一项新的服务也要几天时间,如果不了解,则需要数周时间。而在新的平台上,10分钟就能搞定。“我们提供辅导材料,你跟着教程走,同时跑着代码。然后就到了业务逻辑时间,” Tyler 说,“这样获取资源的时间就大幅度缩短了。”在使用平台的8个月中,创建的新服务约有500多项,每天发布的新服务都能达到上百个。

“说到带入情境,OpenShift 绝对好用。它能展示这项技术的功能,更方便用户使用。花点时间学习后,我们就明白需要更好地了解学习 Kubernetes,这样才能充分发掘它的潜力。那时,我们做出了转变,建立了自己的Kubernetes平台。搭建自己的平台,花点时间学习知识,从长期来看,我们是绝对受益的。” — BOOKING.COM 平台 TRACK B 高级系统管理员 EDUARD IACOBOAIA

该平台能提供不同的“合同层级” Tyler 描述道,“基础就是 Kubernetes。如果你支持 Kubernetes,就能得到一个 Kubernetes API,就像你能从 GKE 或 AKS 得到的一样。我们尽全力提供相同水准的产品。但在公司内部,我们所做的工作是要创造比基础设施更大的价值,因此我们为我们的主要堆栈 Perl 和 Java 提供了一组基本镜像。”

同时,“我们的用户学过 Kubernetes 之后,就成为更为成熟的 Kubernetes 用户了。他们就会给我们施加压力,让我们提供更好更原来的 Kubernetes 体验,这是件好事,” Tyler 说,“给我们提供了超级有益的动力。”

平台还包括其他 CNCF 技术,诸如 Envoy、Helm、Prometheus 等。Booking.com 的主要服务流量大多通过 Envoy 传输,Prometheus 主要用于监控基础设施组件,Helm 作为打包标准使用。该团队还开发并开源了 Shipper,作为 Kubernetes 的扩展,能加入更复杂的 rollout 策略和多集群编排。

当然,内部也曾经讨论过从头开始完全构建 Kubernetes 平台是否明智的问题。“这并不是我们的核心能力,Kubernetes 和旅游业,相差的确有点远,对吧?” Tyler 说,“但我们可以保证 CNCF 组件运行真的非常好。特别是 Envoy 和 Kubernetes 真让我们受益不少。之所以能够定制它们,是因为我们能看到源代码,也是因为它们都有扩展点,我们不需要改变内部范例,就能实现快速增值。”

本文分享自微信公众号 - CNCF(lf_cncf),作者:CNCF

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CNCF案例研究:​诺基亚通过Kubernetes在电信公司实现5G和DevOps

    诺基亚的核心业务是端到端建设电信网络;其主要产品涉及基础设施,如天线、交换设备和路由设备。“作为电信供应商,我们必须将软件交付给几家电信运营商,并将软件放入他们...

    CNCF
  • Kubernetes、原生云、以及软件的未来

    作者:Brian Grant(谷歌),Jaice Singer DuMars(谷歌)

    CNCF
  • 【深度】Kubernetes v1.16 最值得工程师关注的改动

    昨天,Kubernetes 发布 2019 年的第三个新版本 1.16,才云第一时间对新版本重要更新做了精选整理,之后这篇文章被 CNCF 转发。经过一天的升级...

    CNCF
  • 谷歌创始人年度公开信:关于人工智能,好戏还在后头

    【新智元导读】 谷歌和现在的 Alphabet 联合创始人拉里·佩奇和谢尔盖·布林(Sergey Brin)每年都会写一封创始人年信,重新审视公司去年取得的进步...

    新智元
  • 什么是Kubernetes?它的首席架构师用了10方式才说明白!

    Kubernetes是当今云计算领域最热门的技术之一,大大小小的企业都在谈论这个火爆的开源平台。但是Kubernetes到底是什么? ? KubernetesG...

    企鹅号小编
  • 【小家运维】达到Linux第三阶段的常用命令笔记记录—Part Ⅲ

    大多数情况下,我们都 使用SSH 或者 telent(基本已不用了~) 远程登录到 Linux 服务器。但是有时候我们有这样的需求:经常为一些长时间运行的任务而...

    BAT的乌托邦
  • [译] 响应式脑电波 — 如何使用 RxJS、Angular、Web 蓝牙以及脑电波头戴设备来让我们的大脑做一些更酷的事

    用户1687375
  • 这是微信没跟你说的,还有一个小程序开发工具也更新了

    同时,知晓云也在今天有了大版本升级。新版本支持 trigger 触发器功能,而且完善了数据表功能,让它更强大、更好用。

    知晓君
  • python元组和字典的简单学习

    是一系列键值对,包括在花括号内({}),每个对之间用逗号隔开,键必须是唯一的,值则不必。

    用户2398817
  • 【leetcode刷题】20T2-两数相加

    https://leetcode-cn.com/problems/add-two-numbers/

    木又AI帮

扫码关注云+社区

领取腾讯云代金券