2. 使用 GraphOS 进行托管式联邦
5m

概述

现在我们已经熟悉了联邦架构,让我们深入了解帮助我们构建和管理它的开发者平台。

在本课中,我们将

  • 概述一个 从头到尾的制作过程

使用 GraphOS 进行托管式联邦

托管式联邦是一种维护 的方法。使用 ,我们的超级图更新由 处理。

GraphOS 是帮助我们构建、管理和扩展 的开发者平台。 在注册表中跟踪和组合 ,提供可观察性指标,确保安全 等等。

为了与 交互,我们使用

GraphOS Studio 的主要 Web 界面。我们可以使用 Studio 创建我们的 ,查看模式和指标,并在资源管理器中测试 。如果你已经使用我们在这里的 上构建了一个 ,那么你可能之前已经使用过 Studio,或者它的免费精简版:沙盒。

The Rover CLI 的主要命令行界面。我们可以使用 发布 ,在 CI 中运行 ,并在开发环境中测试我们的 。我们将在本课程后面的内容中看到它们的使用!

我们将使用 Studio 和 ,使用 来让我们的 活起来!

托管式联邦工作流程

从高层面上看, 工作流程如下:

  1. 后端开发人员设计和构建他们的
  2. 有人在 中创建了一个新的
  3. 后端开发人员将他们的 发布到模式注册表。
  4. 模式注册表会自动将 组合到一起,形成一个 超级图模式,并通过 Apollo Uplink 提供访问。
  5. The 会自动轮询 Uplink 以获取任何新版本的

让我们更详细地看一下每个步骤。

步骤 1:团队构建他们的子图

后端团队独立地构建他们的 ,可以使用他们喜欢的任何语言和框架。

An illustration showing the first step of the process: backend teams can independently build out their subgraph servers, complete with schemas, resolvers, and data sources.

步骤 2:在 GraphOS Studio 中创建一个新的超级图

接下来,需要有人在 Studio 中创建一个新的 。只需要一个人执行此步骤。

Step 2: create a new deployed graph in GraphOS Studio where the subgraphs can be registered

步骤 3:发布子图

当我们对我们的 感到满意时,我们将使用 将每个子图的模式发布到模式注册表。模式注册表是 Apollo 托管的版本控制系统,它使我们能够跟踪模式随时间的变化,例如哪些类型和 被添加、修改和删除。注册表是 中几乎所有功能的基础。

Step 3: publish each subgraph's schema to the Apollo schema registry

步骤 4:组合超级图模式

当模式注册表收到一个新的或更新的 版本时,它会触发一个 。一个 启动 代表对一个 进行模式更新的完整过程。

首先, 将开始 构建 The 。它试图将来自其注册的 的所有模式组合到一个单一的超级图模式中。此过程也称为 组合。非常酷!

Step 4: Composing the supergraph schema

如果 失败,模式注册表将在 Studio 中显示错误,并且该过程将停止在失败的 处。不用担心:我们可以使用错误消息修复我们 中的问题,然后尝试使用 再次发布子图。

If composition fails, the schema registry displays an error in GraphOS Studio

如果 成功且没有验证错误,模式注册表会生成一个 超级图模式

模式注册表会自动将 发送到 Studio 内部的名为 Apollo Uplink 的服务。Uplink 是一个服务器,它存储每个图的最新超级图模式。

The schema registry automatically sends the supergraph schema to an internal service within Studio called Apollo Uplink

步骤 5:路由器轮询 Uplink 以获取最新的超级图模式

接下来,我们需要 连接到在步骤 2 中 Studio 中创建的

The 会自动定期轮询 Uplink 以查看是否有新版本的

大多数情况下, 会发现 Uplink 中存储的 与它正在使用的版本相同。在这种情况下,不会发生任何变化。

但如果 看到 Uplink 包含 新的 版本的 ,那么 会自动更新以使用新版本 - 无需重启服务器,也无需停机! 会成功完成。

Step 5: The router polls Uplink for the latest supergraph schema

现在,任何与 通信的客户端都将能够引用和 更新后的架构。

以下是完整的 工作流程,使用

The full managed federation workflow

练习

托管联合流程
每个超图包含一个或多个 
 
, 每个都有自己的架构。使用 
 
, 这些架构中的每一个都会发布到 Apollo 架构注册中心。每当子图架构发布时,架构注册中心就会触发一个名为 
 
的流程。如果成功,这个流程会生成一个 
 
, 然后由超图的 
 
 通过定期轮询获取。

将这些项目从这个框中拖到上面的空白处

  • 版本控制

  • 数据源

  • 解析器

  • 超图架构

  • 托管联合

  • 构建

  • 子图

  • 路由器

  • 合成

关键要点

  • 创建或更新 后,开发人员使用 将子图架构发布到架构注册中心。
  • 合成为 使用它来解析传入的客户端请求。
  • 使用 ,对 的架构更新由 管理,并且不会造成任何停机。

接下来

让我们处理流程中的第一步:准备我们的

上一步

分享您对本课的疑问和评论

本课程目前处于

测试版
.您的反馈可以帮助我们改进!如果您遇到困难或困惑,请告诉我们,我们会帮助您。所有评论都是公开的,必须遵循 Apollo 行为准则。请注意,已解决或处理的评论可能会被删除。

您需要一个 GitHub 帐户才能在下面发帖。没有? 改为在我们的 Odyssey 论坛上发帖。