eBay 管理庞大服务架构的新方法

导读:知识图谱最早是由 Google 提出来的,又称语义网,用来描述真实世界中存在的各种实体或概念及其关系,构成一张巨大的语义网络图,结点表示实体或概念,边由属性或关系构成。Google 最早搞知识图谱是为提高搜索结果的质量。知识图谱是一种特殊的图数据,由 < 实体, 关系, 实体 > 或者 < 实体, 属性, 属性的值 > 三元组构成。知识图谱中每个结点都有若干个属性及其属性值,实体与实体之间的边表示结点之间的关系,边的指向表示关系的方向,边上的标记表示关系的类型。从一开始的 Google 搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。今年以来,InfoQ 曾策划了不少关于 知识图谱的文章 。今天我们分享一篇文章,讲解了 eBay 是如何使用知识图谱来管理庞大服务架构的思路。

在服务架构中管理并理解庞大的生态系统是一项不小的挑战:试想在其生产系统中,有超过 3000 个服务应用集群,这对 eBay 而言尤其如此。每个应用都独立发展,各自具有不同的功能和开发方法。而文档的缺乏以及对内部客户没有正确的理解,可能会阻碍高效的开发。

eBay 的愿景(被称为 INAR,智能架构)是通过提供自动化的可见性、评估和治理智能(Governance Intelligence)来构建可持续的服务架构。为此,我们开发了一种新的方法,使用知识图谱对应用程序生态系统进行建模和处理。

译注:治理智能(Governance Intelligence,GI),由 Francis Ohanyido 博士提出,主要是指利用信息和通信技术应用和技术来识别、提取、分析和描述治理数据。

知识图谱是一个常用术语,但它的确切定义一直备受争议。基本上来讲,知识图谱是一种可编程方式,使用主题内容专家、相互关联数据和机器学习算法对知识领域进行建模。对于 eBay 来说,应用程序 / 基础架构知识图谱是一种异构属性图,可以提高架构的可见性、运营效率和开发人员的生产力,最终使客户在访问网站时能够获得更好的体验。

本文将解释 eBay 架构知识图谱是如何开发的,eBay 从中获得了什么好处,以及我们现在和将来看到的这种方法的用例。

三大挑战

智能架构的愿景旨在解决服务架构的三个关键挑战:

  • 盲目性: 架构问题可能很难观察到,例如软件和 / 或硬件的不适当的依赖关系;或设想一下 eBay 的基础架构和生态系统,以及定制搜索。这是一个问题,因为流行的软件和服务经常演变,并趋于单一,导致服务冗余和功能重复。
  • 无知性: 缺乏服务架构或技术债务的可测性(采取更简便的前期方法时所需的额外返工,从长远来看会更糟糕),可能会阻碍你开发提高运营效率所需的度量。正如管理学大师 Peter Drucker 的名言:“没有测定就没有管理。”( If you can’t measu re it, you can’t improve it.
  • 原始性: 诊断、工程和运行时自动化都不存在。因此,人工智能无法应用于 IT 运营,从而难以发现运营中的异常情况。

很明显,如果要满足 1.83 亿买家的需求,就需要对我们的生态系统有一个更清晰的了解。我们的目标是提供更好的可见性,提供模式 / 异常检测,以及自动化和增强 IT 运营。这使我们产生了使用知识 / 属性图的想法。

建立链接:行为度量和智能分层

图是使用实时度量、业务特性和运营元数据构建的。最终,图的目的是链接数据源并打破孤立的管理域之间的界限。以下是较高层次的描述:

开发知识图谱的第一步,是计算最佳的应用程序度量,并应用机器学习算法以自动对应用程序进行聚类。我们开发了基于实时流量和运行时依赖关系来度量应用程序受欢迎程度的指标。

我们计算了所有 eBay 集群的度量,并使用称为 K- 平均(K-means)和 Canopy 聚类的技术对所有服务进行聚类,然后基于它们的流行度评分。这使我们能够将生态系统组成不同的类别,比如它们的活跃程度。我们发现了 77% 的聚类被标记为低活性。

看得见的理解:图搜索与结果可视化

我们使用知识图谱的目标之一,就是提高开发人员的生产力,使他们能够更有效地检索所需的信息。目前,开发人员必须通过许多工具来接受所需的信息。

为了提高生产效率,我们构建了一个完整的批处理系统,从不同的来源获取数据,并自动构建知识图谱。我们还构建了智能图搜索,它动态生成一个查询来探索知识图谱,包括服务度量和智能分层。下面的数据模式是在应用程序(池)级设计的,带有粗体或黑色边框的框,将作为第一个 “baby” 步骤启用:

通过连接云原生数据、硬件、人员、代码和业务,我们对生态系统有了更好的了解。可视化以一种可以快速理解和操作的方式,提供了丰富的信息。在以下服务依赖关系示例中:我们随机选择了 18 个服务,并通过默认方法之一将它们可视化。在下图中,边框厚度表示边的属性(体积),节点大小表示行为度量。不同的颜色代表团队或组织(例如,黄色表示一个域团队)。

eBay 依赖系统 “Galaxies” 采用了概念证明(Proof of Concept,POC),现在,图模式扩展如下:

识别低效率

我们计算了 3000 多个 eBay 生产集群中的度量和智能服务。三位高级架构师手动验证了流行度度量和自动聚类的初始结果。

研究结果令人惊讶,但也提供了很多信息。大约 10% 的高活动应用程序在不准确的可用性区域下运行,这可能会影响运营性能和正常运行时间。

对于 eBay 来说,知识图谱已经成为一个重要的工具(Galaxies),它使我们能够提供可定制的可视化、应用度量、智能分层和图搜索。

该系统提供了应用程序的自顶向下和自底向上的视图,以及依赖关系和更高的准确性;丰富数据以加强应用程序的合规性;具有清晰的所有权细节的治理;以及运营绩效的建议。

接下来,我们计划通过在图上显示每个事件的全部因果关系细节来增强图,以支持站点异常检测(这是一项初始 工作 )。

我们还计划扩展此图,以包含服务 API 元数据,这将使服务分层、推荐和聚类成为可能。知识图谱有望成为了解我们的生态系统和满足客户对持续更快、更好服务的期望的关键工具。

作者介绍:

本文作者为 Hanzhang Wang、Chirag Shah 和 Sanjeev Katariya。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章