在线旅行平台Agoda是如何成为一家科技巨头的?

Agoda拥有庞大的技术规模,包括配置有50万个CPU核心,用于处理每天约2万亿条Kafka消息,其具备的规模和专业知识,可以比许多同行以更低的成本高效地进行IT运营。

这就是为什么这家主要面向亚太地区消费者的在线旅行平台,几乎完全是在私有云上运行IT基础设施的。Agoda公司是一家新兴的技术巨头,在亚太地区运营着四个数据中心,并使用了大量的开源软件来构建其服务。

在接受采访时,Agoda公司首席技术官Idan Zalzberg谈到了公司的技术战略,例如建立自有的专业知识以避免厂商锁定等。此外,他还分享了他的很多观点,包括采用公有云时面对的各种挑战,以及Agoda正在采取哪些措施来管理与大型合作伙伴生态系统的合作复杂性。

Aaron Tan:请您介绍一下关于Agoda整体技术战略的更多情况。

Idan Zalzberg:我认为,推动我们技术战略的,不仅是我们的业务需求,还有我们想要在公司内推动的文化和价值观。首先,我们希望有一种文化,在这种文化中,团队可以独立开展工作,尽可能地自助式服务,而不必等待某人的批准才能继续推进。他们必须以小步快跑的方式推进并且持续学习。

他们还必须能够进行试水。其中一个例子,是我们构建了一个广泛的实验平台,可以在任何时间点运行大约1000个实验来改善我们的用户体验。一个用户平均要接受大约72次实验,这意味着两个用户在Agoda平台上的体验都是不同的。

当你把所有这些东西结合在一起的时候,就变成了我们与众不同之处。我们希望提供自助式服务,并且仍然能够在保持质量的同时,高效地大规模完成。因此,我们想同时做很多事情,这对我们技术组织来说并不容易。

这促使我们制定了一项策略,即自己运营而不依赖于公有云。我们几乎完全是在内部部署的。我们有四个数据中心,使用了很多开源软件。我们自己开发了很多东西,并看到了这么做的价值。我们也非常努力地避免厂商锁定。

对我们来说,其中很重要的一件事,就是从长期来看能够让大家快速前进,并将我们的技术堆栈保持在最低限度。如果我们让人们在云端使用任何他们想要的任何数据库,不仅以后很难下线,而且我们在知识方面也可能很浅薄。对我们来说,重要的是我们拥有深厚的知识并成为不同技术的专家,以实现大规模的效率。

有的时候,云让人们能够很容易地选择他们想要的服务,但这会让他们失去了成为专家的机会。我不介意为优质服务付费,但我不喜欢人们出于无知而付费。他们也许甚至不知道某项服务是如何运作的,但是因为他们只需要单击一个按钮,所以他们只是使用就好了。因此,从战略的角度来看,我们不使用那些我们不理解的东西,是非常重要的。

现在,云中有一些很棒的服务。我们也使用了一些SaaS服务,但在某些情况下,某些服务几乎感觉就像是一个开源项目。厂商为此收取高额的费用,所以他们将其作为一项服务帮你管理。

现在很少看到有公司完全和云无关,每次我们测试云使用情况,当我查看每个核心的成本、数据中心占地面积和冷却基础设施成本的时候,最后成本总是越来越高。

这就是为什么我们要采用私有云,我们在Kubernetes上运行一切,平台也是在此之上。我们不希望感觉自己是被困在公有云或者本地环境中,我们希望拥有一个可以在任何地方运行的灵活平台,无论是由于连接而在某个位置的云,还是要求我们在某些国家或者地区拥有数据中心。但如果像现在这样管理我们的系统,对我们来说更具成本效益,那么我们就会这样做。

Tan:我曾经也和很多运行了大量本地基础设施的公司交谈过。从成本的角度,就总拥有成本(TCO)而言,某些类型的工作负载运行在公有云上要比运行在本地更有意义吗?

Zalzberg:我同意你的看法,我们应该关注TCO,但我们必须从知识的角度出发。当有人来找我说,我们可以选择云,我们可以自己构建东西,或者是我们可以购买专有软件的时候,一切选择都摆在桌面上了。我不是教条主义者,而是会进行研究。不要因为厂商有一个漂亮的主页或者这个主页很容易登录就来找我。也许它很容易上手,这很好,但要让我们看到全局。这是什么意思?什么是成本结构?哪些相当于要我们自己做?如果我们不想再使用它,会发生什么?

这就是采用公有云的重重挑战。对于许多公有云服务来说,因为你经常与初创公司合作,有时他们如果被收购的话就直接消失了,我们需要找到解决方案并弄清楚如何退出。如果一切在我们控制之中的话,我们就可以在作为新客户导入的第一天,知道如何在需要的时候退出,而且只有当你从知识的角度认识到这一点的时候才有可能实现。

很多厂商喜欢说,这太难了,你自己做不到。但老实说,这是一把双刃剑,因为一旦你开始过度地依赖公有云,那么你怎么可能让你的人对你所做的事情感兴趣呢?

今天,你可以与Agoda公司的任何人谈论Kubernetes、Spark和Kafka的内部结构,甚至可以达到CPU级别。我们看重技术能力和专业知识,这一点很重要。我不会说这是最重要的,因为商业案例也很重要。但就其本身而言,这正是让我们的员工感受到快乐以及他们喜欢为我们工作的一个原因。

也就是说,重要的是我们要不断验证我们的TCO。我们一次又一次地证明,运行Kubernetes容器要比使用现有的公有云产品更具成本效益。即使你看一下数据引擎,比如来自主流厂商的那些更高成本的引擎,就会发现,我们可以在自己的数据中心内实现相同的性能。每隔几个月,我们就会进行测试,如果云的成本变得更低,那我就会接受。但我想确保在这方面我是脚踏实地的,因为很难不和其他人一样。成为一家拥有知识和专长的公司,这是一种奖励,但不能成为我们决策的唯一驱动力。

另一面是恐惧感。显然,如今驱使我们转向公有云的不是成本,而是我们可以将专业知识保持多久。我们需要成为硬件、Kubernetes、大数据和Kafka方面的专家,以及React和移动开发等其他方面的专家。这项任务十分艰巨,即使是在最坏的情况下,我也无法长期保持我们的专业知识,我会始终拥有这个巨大的杠杆,利用杠杆借助容器跳转到公有云,即使这么做成本效率较低。

Tan:那么Agoda公司是如何维持人才储备的呢?

Zalzberg:引进我们自己的人才,这对我们来说十分重要。我们几乎不使用顾问,当我们在短期内使用顾问的时候,我们也会自己学习东西,因为我们想避免厂商锁定。有些顾问做得很好,这一点没有问题,但你会被锁定在他们的服务中,必须按照他们的要求和每次他们要提高价格的时候,不得不为此买单,这是你的问题。

要吸引人才,你需要知道他们想要的是什么。通常,他们希望与聪明的人一起工作、学习和接受挑战。所以,当你开始进行大项目的时候,就会有一个积极的反馈循环。你不要说,这对我们来说太难了,你要放手去做。例如,我们谈及我们的实验平台,来自大厂商的平台不是很好,所以我们要自己从零开始搭建。

你可能想知道,为什么一家旅游公司要这么做?虽然我们所做的每件事都有业务案例,但是敢于接受挑战,是能够激励大家的其中一个原因。在过去的几年里,有很多人离开公司去了像Meta、Grab和谷歌这样的公司,但我们的企业文化好他们又回来了。

我们身处在这个地区,也是有帮助的。如果我们在人才集中的硅谷,我们就会与其他同样从事出色技术工作的公司展开竞争。而在这里,我知道没有多少公司可以和我们抢夺人才。

如今,我们的人才来自整个地区,包括泰国、印度尼西亚、越南、韩国和印度。我们举办了很多代码竞赛,并且与大学展开合作,每年有数百名实习生——这是与技术人才保持连接的好方法。

我们在疫情期间也可以应对得很好。我们并没有大举招聘而导致后期不得不进行裁员,大家很欣赏这种一致性。在家办公方面,疫情期间很多公司不得不在在家办公和返回办公室之间来回切换。而我们努力保持一致性,而不是随波逐流。如果人们不相信公司做出的决定,那么他们的压力水平就会上升,他们在工作中也不会有安全感。

Tan:你能介绍下你团队的组织架构方式吗?

Zalzberg:我们是根据用户流程的不同功能进行架构组织的。例如,在获得新用户的营销中,我们会在用户进行预订之前引导用户经过营销渠道。然后,有预订后期、客户支持和财务——他们每个人都是一个技术组织。我们也有我们自己的平台和数据团队。

我们的组织架构方式看起来是非常以产品为导向的,但实际上也是以技术为导向的。例如,如果你看一下营销漏斗就会发现,我们会非常迅速地行动起来并进行大量的实验,因为我们试图在客户搜索酒店、航班和其他产品的时候提高转化率。因此,我们需要与数据库合作以快速获得结果并优化性能。

相比之下,那些负责预订网站的人员,一切工作都是确保准确、交易性的、保证没有任何丢失。一切都必须完全按计划进行,所以快速行动并不是那么重要。显然,这和搜索过程的工作服在是完全不同的。

另一方面,营销端非常注重数据。这其中涉及到很多数据科学,你必须做到自动出价和自动生成电子邮件,但大部分都是离线工作。因此,我们的每个团队都负责一个职能,他们了解自己的产品领域,并拥有相近的专业知识可以解决各自职能中遇到的问题。

Tan:Agoda公司和很多合作伙伴展开合作,例如酒店和航空公司,其中一些可能处于技术成熟度的不同阶段。在这方面你面临什么样的挑战?

Zalzberg:这是一个很好的观点,很多人可能会忽略这样一个事实,也就是当你像我们这样大规模地与成千上万的合作伙伴合作开展业务的时候,其中会涉及很多复杂性。没有标准的API,一些合作伙伴可以进行的API调用数量十分有限。我们每天要进行数百亿次的API调用,有时他们只能处理其中很小的一部分。

为了解决这个问题,我们使用数据模型来预测房价的有效期,然后再打电话获取新的房价。我们还会查看客户对某个房产或者房价感兴趣的可能性,并尽早将这些信息提供给客户。一些提供商有很好的报价,但他们可能没有一定的API响应时间。我们的使命,是为客户提供最优的交易,我们希望确保我们能够找到这些资源。

Tan:你谈到了利用Kubernetes和Kafka等开源软件。你们正在从事计划发布到开源社区的某些项目吗?

Zalzberg:我们和硅谷公司的区别之一就是沟通。对我们来说,发布博客文章比你想象的要难得多,一部分原因是语言障碍。在我们可以自豪地向开源社区发布项目之前,我的团队很难撰写文章并生成所需的、清晰的文档。

我们有一些项目在GitHub上是公开可用的,但只占到我们构建内容的其中一小部分。我试图推进很多事情,其中之一是日志数据库,就像Grafana Loki所做的那样,但完全是从零开始构建的。我们每天有100 TB的日志,所以一旦我们有信心在生产环境中使用这项技术,我们也会很乐意发布它。

Tan:谈到你使用的开源软件,你是否得到来自Red Hat等厂商的任何企业级支持?

Zalzberg:不多。我们尝试了几次,但常常感到很失望,也许是因为我们没有最优秀的人才。当我们试图获得支持的时候,速度不够快,而且他们似乎也没有解决问题的热情。

例如,他们可以说某件事是已知的问题,但只是告诉我们,这并不能解决问题。也许这不是问题,但请给我们解决方法。很少有公司有尝试解决问题的心态,而不仅仅是关闭支持请求。这是我的经验。我敢肯定,有很多伟大的公司,但我们的经验是,自己构建专业知识总是更好的。

Tan:除了基础设施部分,你还希望为Agoda平台构建哪些功能?

Zalzberg:刚才我谈到了很多关于内部结构的事情,这是我非常热衷的事情。可以肯定的是,今年我们会打造很多令人兴奋的东西。首先,我们正在把我们的旅游平台发展成为一个旅游超级应用。你可能已经注意到,最近我们添加了景点和活动方面的产品。我们提供航班服务已经有一段时间了,现在市场增长非常快。我们可能会在今年晚些时候提供汽车运输服务。

所以,我们正在住宿业务之上,构建这些旅游相关的支柱产品,但关键是将这些产品连接起来。我们已经有了购物车的想法,类似电子商务,让你可以把东西添加到购物车中,获得打包的产品和更好的价格。

我们也对B2B很感兴趣,和银行和航空公司等组织展开合作,为他们的旅游网站提供支持,这对我们自身的技术能力也是一种证明。在金融科技领域,我们也在研究把不可退款或不可取消的预订变成可取消的预定,基本上是由我们来承担各种风险。

这时候,我们的数据科学和对市场的理解就有了用武之地。酒店可能不允许我取消预订,但我会为你取消并尝试以较低的价格转卖给其他人。或者,如果你已经预订并且价格下降了,我可以为你重新预订并将差价退还给你。

来源:至顶网CIO与CTO频道

0赞

好文章,需要你的鼓励

2023

04/21

09:53

分享

点赞

邮件订阅