1. 简介
上次更新日期:2023 年 7 月 28 日
什么是 Google Cloud Operations Suite?
Google Cloud Operations Suite 平台可让您监控 Google Cloud 环境中的应用性能,排查其中的问题并加以改善。Cloud Operations Suite 的关键支柱包括 Cloud Monitoring、Cloud Logging 和 Cloud Tracing。
观看此视频,简要了解 Google Cloud Operations。
构建内容
在此 Codelab 中,您将在 Google Cloud 上部署示例 API。然后,您将通过该 API 探索和配置 Cloud Monitoring 中的多项功能。
学习内容
- 使用 Google Cloud 的 Cloud Shell 将示例应用部署到 Cloud Run。
- 使用 Google Cloud Monitoring 功能,例如信息中心、提醒、拨测、SLI/SLO 监控等。
所需条件
- 最新版本的 Chrome(74 或更高版本)
- Google Cloud 账号和 Google Cloud 项目
2. 设置和要求
自定进度的环境设置
如果您还没有 Google 账号(Gmail 或 Google Apps),则必须创建一个。登录 Google Cloud Platform Console (console.cloud.google.com) 并创建一个新项目。
- 项目名称是此项目参与者的显示名称。它是 Google API 尚未使用的字符串。您可以随时对其进行更新。
- 项目 ID 在所有 Google Cloud 项目中必须是唯一的,并且是不可变的(一经设置便无法更改)。Cloud 控制台会自动生成一个唯一字符串;通常您不在乎这是什么在大多数 Codelab 中,您都需要引用项目 ID(它通常标识为 PROJECT_ID)。如果您不喜欢生成的 ID,可以再随机生成一个 ID。或者,您也可以尝试自己的项目 ID,看看是否可用。完成此步骤后便无法更改该 ID,并且该 ID 在项目期间会一直保留。
- 第三个值是一些 API 使用的项目编号,供您参考。如需详细了解所有这三个值,请参阅文档。
注意:项目 ID 必须是全局唯一的,您选择它后,其他任何人都不能再使用。您是此 ID 的唯一用户。即使项目被删除,该 ID 也无法再使用
- 接下来,您需要在 Cloud 控制台中启用结算功能,以便使用 Cloud 资源/API。运行此 Codelab 应该不会产生太多的费用(如果有费用的话)。如需关停资源,以免产生超出本教程范围的结算费用,您可以删除自己创建的资源或删除整个项目。Google Cloud 的新用户符合参与 $300 USD 免费试用计划的条件。
Google Cloud Shell 设置
虽然可以通过笔记本电脑远程操作 Google Cloud 和 Google Cloud Trace,但在此 Codelab 中,我们将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。
如需从 Cloud 控制台激活 Cloud Shell,只需点击“激活 Cloud Shell”(预配和连接到环境应该只需要片刻时间)。
如果您以前从未启动过 Cloud Shell,系统会显示一个中间屏幕(非首屏)来介绍 Cloud Shell。如果是这种情况,请点击 继续 (这样您将不会再看到此通知)。一次性屏幕如下所示:
预配和连接到 Cloud Shell 只需花几分钟时间。
这个虚拟机装有您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证。只需使用一个浏览器或 Google Chromebook 即可完成本 Codelab 中的大部分(甚至全部)工作。
在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的项目 ID:
在 Cloud Shell 中运行以下命令以确认您已通过身份验证:
在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的 PROJECT_ID
。
gcloud auth list
命令输出
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
命令输出
[core] project = <PROJECT_ID>
如果出于某种原因未设置项目,只需发出以下命令即可:
gcloud config set project <PROJECT_ID>
默认情况下,Cloud Shell 还会设置一些环境变量,这对您日后运行命令可能会很有用。
echo $GOOGLE_CLOUD_PROJECT
命令输出
<PROJECT_ID>
示例应用
我们已将您完成此项目所需的一切都放入一个 Git 代码库中。代码库包含几个示例应用,您可以在此练习中选择使用其中任何一个应用。
Git 代码库链接:https://github.com/rominirani/cloud-code-sample-repository
3. 部署 API 应用
示例应用或 API 是关于什么的?
我们的应用是一个简单的 Inventory API 应用,公开了 REST API 端点,其中包含一些操作,可用于列出商品目录商品并获取具体的商品库存数量。
部署 API 并假设其托管在 https://<somehost> 后,我们就可以按如下方式访问 API 端点:
- https://<somehost>/inventory
系统将列出所有具有现有库存水平的产品项。
- https://<somehost>/inventory/{productid}
这将为该商品提供一个记录,其中包含商品 ID 和现有库存水平。
返回的响应数据采用 JSON 格式。
示例数据和 API 请求/响应
为简单起见,应用并非由后端的数据库提供支持。其中包含 3 个示例产品 ID 及其现有库存水平。
产品 ID | 手头商品目录级别 |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
示例 API 请求和响应如下所示:
API 请求 | API 响应 |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
克隆代码库
虽然可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。
在 GCP 控制台中,点击右上角工具栏上的 Cloud Shell 图标:
预配和连接到环境应该只需要片刻时间。完成后,您应该会看到如下内容:
这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。只需一个浏览器,即可完成本实验中的所有工作。
设置 gcloud
在 Cloud Shell 中,设置您的项目 ID 并将其保存为 PROJECT_ID 变量。
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
现在,执行以下命令:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
这将在此文件夹中创建一个名为 cloud-code-sample-repository 的文件夹。
(可选)在 Cloud Shell 上运行应用
您可以按照以下步骤在本地运行应用:
- 从终端中,通过以下命令导航到该 API 的 Python 版本:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- 在终端中,输入以下命令(在撰写本文时,Cloud Shell 已安装 Python 3.9.x,我们将使用默认版本。如果您打算在笔记本电脑本地运行,可以使用 Python 3.8+:
$ python app.py
- 您可以运行以下命令,以在本地启动 Python 服务器。
- 这将在端口 8080 上启动服务器,您可以通过 Cloud Shell 的网页预览功能在本地对其进行测试。点击网页预览按钮,如下所示:
点击“在端口 8080 上预览”。
- 这将打开一个浏览器窗口。系统会显示 404 错误,这没关系。修改网址,并将其更改为在主机名后面仅包含 /inventory。
例如:在我的机器上类似,如下所示:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
系统随即会显示广告资源项列表,如前所述:
- 您现在可以转到终端并按 Ctrl-C 以停止服务器
部署应用
现在,我们会将此 API 应用部署到 Cloud Run。该流程涉及利用 glcoud 命令行客户端运行命令以将代码部署到 Cloud Run。
在终端发出以下 gcloud 命令:
$ gcloud run deploy --source .
这会询问您多个问题(如果请求授权,请继续操作),其中一些要点如下。您不一定会收到所有问题,具体取决于配置以及您是否已在 Google Cloud 项目中启用了特定 API。
- 服务名称 (python-flask-api):采用此默认值,或者选择类似于 my-inventory-api
- 项目 [project-number] 未启用 API [run.googleapis.com]。要启用并重试(这将需要几分钟)吗?(是/否)?是
- 请指定区域:输入数字即可选择区域。
- 项目 [project-number] 上未启用 API [artifactregistry.googleapis.com]。要启用并重试(这将需要几分钟)吗?(是/否)?是
- 从源代码部署需要使用 Artifact Registry Docker 代码库来存储构建的容器。系统将在区域 [us-west1] 中创建名为 [cloud-run-source-deploy] 的代码库。
是否要继续(是/否)?是
- 是否允许对 [my-inventory-api] 进行未经身份验证的调用 (y/N)?是
最终,这将启动以下流程:获取源代码,对其进行容器化,将其推送到 Artifact Registry,然后部署 Cloud Run 服务 + 修订版本。请耐心完成该过程(可能需要 3-4 分钟),您应该会看到系统向您显示的服务网址。
运行示例如下所示:
测试应用
现在,我们已将应用部署到 Cloud Run,您可以按如下方式访问 API 应用:
- 记下上一步中的服务网址。例如:在我的设置中,它显示为
https://my-inventory-api-bt2r5243dq-uw.a.run.app
。将其命名为 <SERVICE_URL>。 - 打开浏览器并访问以下 3 个 API 端点网址:
- <SERVICE_URL>/inventory
- <SERVICE_网址>/inventory/I-1
- <SERVICE_网址>/inventory/I-100
它应该符合我们在前面的 API 请求和响应示例部分提供的规范。
通过 Cloud Run 获取服务详情
我们将 API 服务部署到了 Cloud Run,这是一个无服务器计算环境。我们可以随时通过 Google Cloud 控制台访问 Cloud Run 服务。
从主菜单导航到 Cloud Run。系统将显示您在 Cloud Run 中运行的服务的列表。您应该会看到刚刚部署的服务。根据您选择的名称,您应该会看到如下内容:
点击 Service 名称以查看详细信息。示例详情如下所示:
注意网址,该网址只是一个服务网址,您可以在浏览器中插入该网址,然后访问我们刚刚部署的 Inventory API。您可以查看“指标”和其他详细信息。
现在,我们来开始使用 Google Cloud Operations Suite。
4. 设置信息中心
Cloud Monitoring 提供的一项便捷功能是涵盖 Google Cloud 中多个资源的开箱即用 (OOTB) 信息中心。这样可以方便快捷地对信息中心进行标准指标的初始设置。
我们来看看如何为刚刚部署到 Cloud Run 的 API 服务完成这项操作。
服务的自定义信息中心
由于我们已将 API 服务部署到 Cloud Run,接下来让我们了解一下如何设置信息中心,以帮助直观呈现各种指标,其中一些指标包括服务延迟时间。
首先,从控制台访问 Monitoring → 概览,如下所示:
“概览”页面显示了您应该在 Monitoring 中配置的多个内容,例如信息中心、提醒、拨测等。
现在,点击侧边主菜单中的信息中心。点击后,您会进入以下屏幕:
点击示例库。系统将显示 Google Cloud 中跨多个资源提供的开箱即用 (OOTB) 信息中心列表。具体来说,向下滚动列表,然后选择 Google Cloud Run,如下所示。
系统会显示适用于 Google Cloud Run 的标准信息中心列表。由于我们已经在 Cloud Run 上部署了自己的服务,因此对此很感兴趣。
您将看到一个 Cloud Run Monitoring 信息中心。点击预览链接,查看可用于 Cloud Run Monitoring 的标准图表(指标)列表。只需点击导入示例信息中心,即可将所有这些图表导入一个自定义信息中心。系统会显示一个“信息中心”屏幕,其中预填充了相应名称,如下所示:
您可以点击信息中心名称左侧的向左箭头(左上角则是右侧)返回。系统将打开信息中心列表,您可以在其中看到刚刚创建的新信息中心。
点击该“信息中心”链接,即可监控多个开箱即用的指标。这些指标包括延迟时间、请求数、容器指标等。
您还可以选择将任意数字面板标记为收藏,只需选择如下所示的星形图标即可:
这会将信息中心添加到 Monitoring 的“Overview”(概览)屏幕,方便您导航到常用的信息中心。
太棒了!您刚刚添加了一个自定义信息中心,用于监控您的 Cloud Run 服务。非常棒!
5. 拨测
在本部分中,我们将为已部署的 API 服务设置拨测。公开拨测可以从全球多个位置向公开可用网址或 Google Cloud 资源发出请求,以查看资源是否响应。
在本例中,资源将是我们已部署到 Cloud Run 的 API 服务。该网址将是 API 服务公开用于指示该服务运行状况的特定端点。
在示例 API 服务代码中,我们公开了一个端点 /healthy,它会返回字符串值“All Izz Well”。因此,我们只需定义一个正常运行时间检查,该检查要命中类似于 https://<SERVICE_URL>/healthy 的内容,并检查是否返回字符串 https://<SERVICE_URL>/healthy。
创建通知渠道
在创建拨测之前,请务必先配置通知渠道。通知渠道是一种媒介,当我们监控的任何资源发生突发事件/问题时,您可以通过该渠道收到提醒。例如,“电子邮件”就是通知渠道。在有提醒等情况下,您将收到电子邮件。
现在,我们将配置电子邮件通知渠道并使用我们的电子邮件地址对其进行配置,以便在我们的系统发出并配置任何提醒时能收到通知。
如需创建通知渠道,请按以下步骤操作:
从 Google Cloud 控制台的主菜单转到 Monitoring → Alerting,如下所示:
这会显示一个包含提醒、政策等内容的页面。目前,您会在顶部看到一个名为修改通知频道的链接。点击该链接。
系统将显示各种通知渠道的列表,如下所示:
找到电子邮件部分,然后点击该行对应的新增。此时会显示电子邮件配置详细信息,如下所示:
输入您的电子邮件地址和显示名称,如下所示。点击保存。
至此,电子邮件通知渠道的创建就完成了。现在,我们来配置拨测。
创建正常运行时间检查
从 Google Cloud 控制台的主菜单中,转到 Monitoring → Uptime Check。在顶部,您会看到创建拨测链接。点击该链接。
此时系统会显示一系列步骤,您需要完成这些步骤来配置拨测。
第一步是设置目标详情,即我们已部署的 Cloud Run 服务的相关信息。已填写的表单如下所示:
可以选择不同的值,如下所示:
- 协议 :HTTPS
- 资源类型:选择 Cloud Run 服务。请注意它支持的其他资源,您也可以为其设置拨测。
- Cloud Run 服务:选择 my-inventory-api 或您的 Cloud Run 服务的具体名称。
- 路径为 /healthy,因为我们要返回字符串“All Izz Well”,并且我们需要进行检查。
点击继续进入下一步。下一步是响应验证步骤,如下所示:
您可以看到,我们正在启用“内容匹配”检查然后将 /healthy 端点返回的响应设为“All Izz Well”。点击继续进入下一步。在下一步中,我们将配置提醒,以及如果拨测失败,应通过哪个通知渠道收到提醒。
在此步骤中,为提醒命名。我已经选择 Inventory API Uptime Check failed,但您也可以选择自己的名字。此处的关键是从您之前配置的列表中选择正确的通知渠道。
点击审核,进入最后一步,以查看我们配置的拨测。
在这最后一步中,为拨测命名(例如 Inventory API Uptime Check),然后还可以测试该检查的配置是否正确。点击 TEST(测试)按钮进行测试。
继续并完成流程(点击左侧的创建按钮)。Google Cloud 将指示在不同区域中配置的拨测探测对网址执行 ping 操作,并收集这些响应。几分钟后访问监控 → 拨测部分,理想情况下,您应该会看到表示可以通过不同探测访问该网址的所有绿色信号。
如果任意探测在一段时间内失败(可配置),您将在我们配置的电子邮件渠道中收到提醒通知。
以上是关于设置拨测的部分。非常棒!
6. Metrics Explorer
Cloud Monitoring 提供来自多个 Google Cloud 产品的数千个标准指标。您可以使用这些指标执行调查、查询、转换为图表、添加到信息中心、发出提醒等操作。
在本部分中,我们的目标是:
- 先了解如何查看各种指标,然后我们将研究 API 服务的特定指标(延迟时间)。
- 将该指标转换为图表和自定义信息中心,供我们随时用于直观显示该指标。
探索 Inventory API 服务的延迟时间指标
从 Google Cloud 控制台的主菜单中,转到 Monitoring → Metrics Explorer。您将转到 Metrics Explorer 屏幕。点击选择指标。您现在可以浏览多个已生成指标的活跃资源。
由于我们使用的是 Cloud Run 服务,请点击“Cloud Run 修订版本”,然后点击类别和名为 Request Latency 的特定指标,如下所示:
点击应用。这将以图表形式显示请求延迟时间。您可以在右侧的“显示”设置中将“微件类型”更改为“折线图”,如下所示:
这将显示延迟时间图表,如下所示:
创建图表和自定义信息中心
接下来我们保存此图表点击 Save Chart,然后使用详细信息,如下所示:
请注意,我们要创建新的信息中心,而不是将其保存在现有的信息中心。点击保存按钮。这会将新创建的信息中心添加到信息中心列表,如下所示:
点击我们创建的特定信息中心以查看详细信息。
以上就是通过 Metrics Explorer 调查各种指标以及如何创建自定义信息中心的部分。
7. Cloud Logging
在本部分中,我们将探索 Cloud Logging。Cloud Logging 附带一个日志浏览器界面,可帮助您浏览和深入了解各种 Google 服务和您自己的应用生成的日志。
在本部分,我们将了解日志浏览器并模拟一些日志消息,然后我们可以通过基于日志的指标功能搜索这些日志消息并将其转换为指标。
日志浏览器
您可以在 Google Cloud 控制台中通过 Logging → Logs Explorer 访问 Logs Explorer,如下所示:
系统会显示一个日志界面,您可以在其中专门选择/取消选择各种资源(项目、Google Cloud 资源、服务名称等)以及日志级别,以便根据需要过滤日志消息。
上方显示的是 Cloud Run 修订版本(即我们部署的 Cloud Run 服务)的日志列表。您将看到几个拨测请求到达我们配置的 /healthy 端点。
搜索警告
通过提供不属于 I-1、I-2 和 I-3 范围的产品 ID,模拟向 Inventory Service 发出的几项无效请求。例如:不正确的请求:
https://<SERVICE_URL>/inventory/I-999
现在,如果在查询中提供了不正确的产品 ID,我们将搜索由我们的 API 生成的所有警告。
在查询框中,插入以下查询参数:
resource.type="cloud_run_revision"
textPayload =~“收到错误 productid 的商品目录请求”
代码应如下所示:
点击“运行查询”。系统随即会显示收到的所有请求以及存在此问题的请求。
基于日志的指标
让我们创建一个自定义日志指标来跟踪这些错误。我们想知道是否有大量来电使用了错误的产品 ID。
如需将上述内容转换为错误指标,请点击日志浏览器中显示的创建指标按钮。
系统将打开用于创建指标定义的表单。选择一个计数器指标,如下所示输入指标名称 (inventory_lookup_errors) 和说明的详细信息(如下所示),然后点击创建指标。
这将创建计数器指标,并且您应该会看到如下所示的消息:
从主菜单访问 Logging → 基于日志的指标,您应该会在用户定义的指标列表中看到我们定义的自定义指标,如下所示:
在该条目的末尾,您会看到三个垂直排列的点,点击它们即可查看您可以对此自定义指标执行的操作。该列表应与您在下面看到的列表类似。点击 View in Metrics Explorer 选项。
此时,我们应该会进入在上一部分中了解的 Metrics Explorer,只不过它现在已为我们预填充。
点击 Save Chart。对于“Save Chart”选项,请使用以下值:
这将会创建一个新信息中心,您可以在信息中心列表中看到“房源/票源搜索”错误。
太好了!现在,您已根据日志创建了一个自定义指标,并将其转换为了显示在自定义信息中心内的图表。这有助于我们跟踪使用错误商品 ID 的来电数量。
8. 提醒政策
在本部分中,我们将使用所创建的自定义指标,并监控其数据是否达到某个阈值。也就是说,如果错误数量超过某个阈值,我们将发出提醒。换句话说,我们将设置提醒政策。
创建提醒政策
让我们转到“Inventory Search Dashboard”(库存搜索信息中心)。系统会显示我们创建的图表,其中会注明广告资源查找错误,如下所示:
系统会显示当前的指标数据。我们先来修改指标,如下所示(点击“修改”按钮):
系统随即会显示指标详情。我们会将图表从显示错误率转换为总和,即错误数量。要更改的字段如下所示:
点击右上角的应用,我们将返回到“指标”页面,但这次我们将可以看到校准时间段内的错误总数与错误率。
我们将创建提醒政策,以便在错误数量超过阈值时通知我们。点击图表右上角的 3 个点,然后在选项列表中点击转换为提醒图表(如上所示)。
您应该会看到如下所示的屏幕:
点击 Next,系统随即会显示我们可以设置的阈值。我们这里采用的样本阈值为 5,但您可以根据自己的偏好进行选择。
点击下一步以显示通知表单
我们已经选择通知渠道作为之前创建的电子邮件渠道。您可以填写其他详细信息,例如文档(将在引发的提醒中提供)。点击下一步查看摘要并完成流程。
创建此提醒政策后,它将会显示在提醒政策列表中,如下所示。您可以转到 Monitoring → Alerting,获取提醒政策列表。扫描此页面中的政策部分,以查看我们到目前为止已配置的政策列表。
太好了!您现在已配置一项自定义提醒政策,当在查询 Inventory API 时,如果错误率上升,就会向您发出通知。
9. Service Monitoring(可选)
在本部分中,我们将根据站点可靠性工程 (SRE) 原则,为我们的服务设置 SLI/SLO。您会注意到,Cloud Monitoring 会自动发现您已在 Cloud Run 中部署的服务,从而简化了工作。此外,它还能自动为您计算可用性、延迟时间等关键 SLI 以及错误预算计算。
接下来,为我们的 API 服务设置延迟时间 SLO。
为 Inventory 服务设置延迟时间 SLO
从 Cloud 控制台的主菜单中点击 Monitoring → 服务。系统会显示已针对 Service Monitoring 配置的服务列表。
目前,我们没有任何已针对 SLI/SLO 监控设置的服务,因此此列表为空。点击顶部的定义服务链接,先定义 / 识别服务。
这将自动发现可作为 SLO 监控的候选服务。它能够发现 Cloud Run 服务,因此部署到 Cloud Run 的 Inventory API 服务将显示在列表中。
您看到的显示名称可能会有所不同,取决于您在将服务部署到 Cloud Run 时选择的名称。点击提交按钮。这将打开如下所示的屏幕:
您可以点击创建 SLO。这样,您就可以从自动计算的 SLI 中进行选择。
我们选择延迟时间 SLI 作为起点。点击继续。接下来,您会看到一个屏幕,其中显示此服务的当前性能以及典型的延迟时间。
我们输入阈值(即 300 毫秒),这是我们想要达到的值。您可以根据需要选择其他值,但请注意,该值会影响您相应定义的错误预算。点击继续。
现在,我们设置 SLO(目标和衡量窗口),如下所示:
也就是说,我们将“衡量期”选为“滚动”类型,并跨 7 天进行衡量。同样,对于目标,我们选择了 90% 作为目标。我们想在此说明,对 API 服务发出的 90% 请求应在 300 毫秒内完成,并在 7 天内进行衡量。
点击继续。系统随即会打开摘要屏幕,您可以点击更新 SLO 按钮进行确认。
这将保存您的 SLO 定义,并自动为您计算错误预算。
您可以尝试以下几种操作:
- 多次调用使用 API,了解服务性能及其对剩余错误预算的影响。
- 修改源代码,以在某些调用中随机引入一些额外的延迟(休眠)。这将增加许多调用的延迟时间,并且会对错误预算产生不利影响。
10. 恭喜
恭喜,您已成功将示例应用部署到 Google Cloud,并了解如何使用 Google Cloud Operations Suite 监控应用的健康状况!
所学内容
- 将 Service 部署到 Google Cloud Run。
- 为 Google Cloud Run 服务设置信息中心。
- 拨测。
- 设置自定义日志指标,并根据这些指标设置信息中心/图表。
- 探索 Metrics Explorer 并设置信息中心/图表。
- 设置提醒政策。
- 在 Google Cloud 中为 Service Monitoring 设置 SLI/SLO。
注意:如果您使用自己的账号和 Google Cloud 项目执行此 Codelab,则分配的资源可能会继续产生结算费用。完成本实验后,请删除项目和资源。
后续操作
查看此 Cloud Skills Boost 挑战任务,详细了解 Google Cloud Operations Suite。