准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Download the monolith code and build your container
/ 10
Create a kubernetes cluster and deploy the application
/ 20
Create a containerized version of orders and product Microservices
/ 20
Deploy the new microservices
/ 20
Create a containerized version of the Frontend microservice
/ 10
Deploy the Frontend microservice
/ 20
在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从课程的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否已正确完成任务的反馈。
在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。
要想获得满分,您必须在该时间段内成功完成所有任务!
我们建议已报名参加在 Google Cloud 上构建网站课程的学员参加本实验室挑战赛。准备好接受挑战了吗?
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
您刚在 FancyStore, Inc. 谋得新职。
当下任务是将公司现有的单体式电子商务网站分解成一系列逻辑上分离的微服务。现有的单体式应用代码存放在 GitHub 仓库中,您需要将该应用容器化,继而重构它。
您应该掌握了完成这些任务所需的技能和知识,所以我们不会提供分步指南。
上一支团队受够了单体式应用相关的各种问题,于是奔向了人生的旷野(他们真去经营薰衣草农场了),所以现在由您来牵头处理这项工作。您接下来的任务是拉取源代码,用它构建容器(有个农夫给您留下了 Dockerfile),然后把容器推送到 GKE。
您应该先构建、部署和测试该单体式应用,以便确保源代码是健全的。然后,再把组成该应用的各项服务分解为独立的微服务加以部署。
您应遵循的一些 FancyStore, Inc. 标准如下:
e2-medium 机器类型。您刚坐在办公桌前并打开新笔记本电脑,就收到了完成以下任务的请求。祝您好运!
登录新项目并激活 Cloud Shell。
首先,您需要克隆自己团队的 Git 仓库。项目的根目录中有一个 setup.sh 脚本,您需要运行该脚本来构建单体式应用容器。
运行 setup.sh 脚本后,运行以下命令,以便确保 Cloud Shell 中的 nodeJS 是最新版本:
有几个不同的项目可以构建和推送。
将单体式应用 build(为方便起见,存放在 monolith 目录中)推送到 Artifact Registry。~/monotlith-to-microservices/monolith 文件夹中有一个 Dockerfile,可用于构建应用容器。
您需要运行 Cloud Build(在上述 monolith 文件夹中)来构建容器,然后将其推送到 Artifact Registry。
按如下方式为该制品命名:
点击检查我的进度以验证是否完成了以下目标:
至此,您已经创建了映像并将其推送到了 Artifact Registry 中,接下来需要创建一个集群来部署该映像。
您已经得知要将所有资源部署在
按如下方式创建集群:
现在,您已经构建好映像,集群也已开始运行,接下来就要部署应用了。
您需要将构建的映像部署到集群中。这样您的应用就可以正常运行了,但在您向外界公开该应用之前,它是无法访问的。您的团队告诉您,该应用在端口 8080 上运行,但您需要在更方便用户使用的端口 80 上公开该应用。
按如下方式创建并公开您的部署实例:
您应该会看到以下内容:
点击检查我的进度以验证是否完成了以下目标:
现在,您已经能够构建和部署 Fancy Store 单体式应用了,接下来就要把它分解为微服务!
现在,GKE 上已经在运行现有的单体式网站,接下来就可以开始将每项服务分解为微服务了。具体分解哪些服务,通常需要提前做好计划,一般围绕应用的具体部分(如业务领域)进行拆分。
在这项挑战赛中,我们不妨把节奏放快一些,假设您已成功将单体式应用分解为一系列微服务,分别是:Orders(订单)、Products(商品)和 Frontend(前端)。代码已准备就绪,现在您要开始部署服务。
您需要把 3 项服务拆分到各自的容器中。由于您要将所有服务移到容器中,因此需要跟踪每项服务的以下信息:
需要容器化的一组服务如下所示。
|
Orders 微服务 |
|
|
Products 微服务 |
|
点击检查我的进度以验证是否完成了以下目标:
按照部署
|
Orders 微服务 |
|
|
Products 微服务 |
|
您可以在浏览器中访问以下网址,验证部署是否成功以及服务是否已公开:
http://ORDERS_EXTERNAL_IP/api/ordershttp://PRODUCTS_EXTERNAL_IP/api/products如果部署成功,您应该会看到每项服务都返回一个 JSON 字符串。
点击检查我的进度以验证是否完成了以下目标:
现在,您已经提取出 Orders 和 Products 微服务,接下来需要配置 Frontend 服务以指向它们,并部署该服务。
nano 编辑器将本地网址替换为新 Products 微服务的 IP 地址:编辑器打开后,您的文件应如下所示。
输出:
REACT_APP_PRODUCTS_URL 替换为新格式,同时换上 Orders 和 Products 微服务的 IP 地址,使其如下所示:按 CTRL+O,再按 ENTER 键,然后按 CTRL+X,即可在 nano 编辑器中保存文件。
现在运行以下命令来重新构建前端应用,以便后续将其容器化:
Orders 和 Products 微服务现已完成容器化并部署完毕,Frontend 服务也经过配置指向了它们,最后一步就是容器化和部署 Frontend。
请按照如下说明,使用 Cloud Build 将 Frontend 服务的内容打包并推送到 Artifact Registry:
此过程可能需要几分钟时间,请耐心等待。
点击检查我的进度以验证是否完成了以下目标:
按照部署 Orders 和 Products 微服务的流程部署此容器。
按如下方式创建并公开您的部署实例:
您可以在浏览器中访问 Frontend 服务的 IP 地址,验证部署是否成功以及微服务是否已正确公开。
此时您应该会看到 Fancy Store 首页,其中包含 Products 和 Orders 页面的链接,它们现在由新的微服务提供支持。
点击检查我的进度以验证是否完成了以下目标:
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2026 年 3 月 10 日
本实验的最后测试时间:2026 年 3 月 10 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验