检查点
Prepare a source PostgreSQL database for migration
/ 20
Migrate a stand-alone PostgreSQL database to Cloud SQL
/ 20
Promote a Database Migration Services continuous replica to a stand-alone instance.
/ 20
Update permissions and add IAM roles to users
/ 10
Create networks and firewalls
/ 10
Create a BigQuery log sink
/ 20
使用 Google Cloud 部署和管理云环境:实验室挑战赛
GSP314
简介
在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从挑战任务的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否正确完成任务的反馈。
在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。
要想获得满分,您必须在该时间段内成功完成所有任务!
我们建议已报名参加使用 Google Cloud 部署和管理云环境技能徽章课程的学员参加此实验室挑战赛。准备好接受挑战了吗?
设置
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
- 完成实验的时间 - 请注意,实验开始后无法暂停。
挑战场景
Cymbal Direct 是一家线上商对客鞋类和服装零售商,您是该公司的一名云工程师。Cymbal Direct 一直在快速扩张。根据他们的扩张策略,他们收购了一家名叫 Antern 的新公司。Antern 本身一家电子商务商店,掌握了大量数据。如果能将这些数据恰当地集成到现有云环境中,将对进一步扩大业务规模和触及更多客户产生巨大作用。在收购过程中,Cymbal Direct 希望将 Antern 现有的工作负载和基础设施从本地移到 Google Cloud 上。
Antern 有以下资源需要迁移、复制到 Cymbal Direct 的现有云环境中或在其中重新创建:
- 一个 PostgreSQL 数据库(在虚拟机上运行),需要迁移至 Cloud SQL for PostgreSQL
- 容器化的微服务应用代码,需要部署在 GKE 上(测试过程中报告了可靠性问题,需要进行问题排查)
- 需要创建一个具有两个子网和几条防火墙规则的 VPC 网络,以便将新资源连接到一起
- 存在于多个项目中的 IAM 用户,需要为其授予对特定资源的适当权限和角色
您的任务是帮助 Cymbal Direct 实现这些目标。
任务 1:将独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 实例
Antern 一直使用在本地虚拟机上运行的 PostgreSQL 数据库存储电子商务购买订单。根据收购策略,Cymbal 要求使用 Database Migration Service 将此数据库迁移至 Cloud SQL for PostgreSQL。在 Cloud SQL 上运行此数据库可帮助 Cymbal 畅享 PostgreSQL 的所有运维优势,并能实现额外的企业级可用性、稳定性和安全性。
在本任务中,您必须使用 Database Migration Services 持续迁移作业和 VPC 对等互联连接,将在 antern-postgresql-vm
虚拟机上运行的独立式 PostgreSQL orders
数据库迁移至 Cloud SQL for PostgreSQL 实例。
针对此独立式 PostgreSQL 数据库做好准备以进行迁移
在这一子任务中,您必须针对该独立式 PostgreSQL 数据库做好准备,使其满足 Database Migration Services 的迁移要求。
要完成此子任务,您必须完成以下步骤:
- 启用 Database Migration Services 要求的多个 Google Cloud API。
Database Migration Services 要求启用 Database Migration API 和 Service Networking API 才能发挥作用。您必须为项目启用这些 API。
- 使用
pglogical
数据库扩展程序升级antern-postgresql-vm
虚拟机上的目标数据库。
您必须在 antern-postgresql-vm
计算实例虚拟机上的独立式 PostgreSQL 数据库中安装并配置 pglogical 数据库扩展程序。您必须安装的 pglogical 数据库扩展程序包名为 postgresql-13-pglogical
。
要完成 pglogical 数据库扩展程序的配置,您必须修改 PostgreSQL 配置文件 /etc/postgresql/13/main/postgresql.conf
以启用 pglogical 数据库扩展程序,并且必须修改 /etc/postgresql/13/main/pg_hba.conf
以允许来自所有主机的访问。
- 在此独立式数据库上创建针对数据库迁移的专案用户。
您在 antern-postgresql-vm
虚拟机的独立式 PostgreSQL 数据库上创建的新用户必须配置为使用以下用户名和密码:
-
迁移用户名:
-
迁移用户密码:
DMS_1s_cool!
- 为该用户授予迁移数据库所必需的特权和权限。
Database Migration Services 要求此迁移用户拥有对特定架构的特权并与目标数据库存在一定的关系,以进行迁移,在本例中即 orders
与 postgres
数据库。
- Database Migration Service 要求所有要迁移的表必须拥有主键。为该用户授予必需的特权后,请运行以下命令,以便为
inventory_items
表添加一个主键并退出 psql。
点击检查我的进度以验证是否完成了以下目标:
将独立式 PostgreSQL 数据库迁移至 Cloud SQL for PostgreSQL 实例
在此子任务中,您必须使用 Database Migration Services 执行迁移。
要完成此子任务,您必须完成以下步骤:
- 使用您前面创建的
迁移用户的凭据,针对此独立式 PostgreSQL 数据库创建一个新的 Database Migration Service 连接配置文件。 -
用户名:
-
密码:
DMS_1s_cool!
-
用户名:
您必须使用源计算实例的内部 IP 地址配置此连接配置文件。
- 创建新的持续性 Database Migration Service 作业。
在迁移作业配置过程中,请确保为目的地 Cloud SQL 实例指定以下属性:
-
目标实例 ID 必须设置为
- 被迁移的实例的密码必须设置为
supersecret!
- 数据库版本必须设置为 Cloud SQL for PostgreSQL 13
-
区域必须设置为
- 对于连接,公共 IP 和专用 IP 都必须设置
- 选择具有 1 个 vCPU 的标准机器类型
- 对于存储类型,请使用 SSD
- 将存储容量设置为 10 GB
对于连接方法,您必须与默认 VPC 网络建立 VPC 对等互连。
- 测试并启动此连续迁移作业。
点击检查我的进度以验证是否完成了以下目标:
将 Cloud SQL 升级为独立式实例,以便读取和写入数据
- 在此任务中,您必须通过将 Cloud SQL for PostgreSQL 实例升级为独立式实例来完成迁移。
点击检查我的进度以验证是否完成了以下目标:
任务 2:为用户更新权限并添加 IAM 角色
现在此数据库已迁移到 Cloud SQL for PostgreSQL 实例中,您需要通过 IAM 为 Antern 和 Cymbal 团队中的不同成员更新用户角色。具体来讲,您需要为 Antern Editor 用户授予对 Cloud SQL 数据库的访问权限,为 Cymbal Owner 管理员授予完全控制 Cloud SQL 资源的访问权限,以及授予 Cymbal Editor 对项目的修改权限。
-
为 Antern Editor 用户授予此 CloudSQL 数据库的 Cloud SQL Instance User 角色。其用户名为:
。 - 前往您刚才创建的 Cloud SQL 数据库。在用户部分,将 Antern Editor 用户账号添加至您创建的数据库。使用 Cloud IAM 身份验证并为主账号使用上面的用户名。
-
为 Cymbal Owner 用户授予 CloudSQL 数据库的 Cloud SQL Admin 角色。其用户名为:
。 - 前往您刚才创建的 Cloud SQL 数据库。在用户部分,将 Cymbal Owner 用户账号添加至您创建的数据库。使用 Cloud IAM 身份验证并为主账号使用上面的用户名。
-
将 Cymbal Editor 用户角色从 Viewer 更改为 Editor。其用户名为
。
点击检查我的进度以验证是否完成了以下目标:
任务 3:创建网络和防火墙
根据收购策略,需要在 Cymbal 项目中重新创建一个在内部连接资源的 VPC 网络。具体来讲,您需要创建一个 VPC 网络,它具有两个子网和几条防火墙规则,从而在资源之间的建立连接。此外,在此网络中,您的团队需要能够使用 SSH 和 RDP 来连接 Linux 和 Windows 机器,以及通过 ICMP 诊断网络通信问题。
在此任务中,您将创建满足这些要求的 VPC 网络和防火墙规则。
创建一个具有两个子网的 VPC 网络
-
创建一个名为
的 VPC 网络,它具有两个子网: 和 。使用区域级动态路由模式。 -
对于
,将区域设置为 。 - 将 IP 栈类型设置为 IPv4(单栈)
- 将 IPv4 范围设置为
10.10.10.0/24
-
对于
,将区域设置为 。 - 将 IP 栈类型设置为 IPv4(单栈)
- 将 IPv4 范围设置为
10.10.20.0/24
为 VPC 网络创建防火墙规则
-
创建名为
的防火墙规则。 - 对于此网络,请使用
。 - 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
- 目标应设置为网络中的所有实例,并且 IP 范围应包括所有 IPv4 范围
- 将协议设置为 TCP,将端口设置为
22
- 对于此网络,请使用
-
创建名为
的防火墙规则。 - 对于此网络,请使用
。 - 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
- 目标应设置为网络中的所有实例,并且 IP 范围应包括所有 IPv4 范围
- 将协议设置为 TCP,将端口设置为
3389
- 对于此网络,请使用
-
创建名为
的防火墙规则。 - 对于此网络,请使用
。 - 将优先级设置为 65535,将流量设置为入站,将操作设置为允许
- 目标应设置为网络中的所有实例,并且 IP 范围应包括所有 IPv4 范围
- 将协议设置为 icmp
- 对于此网络,请使用
点击检查我的进度以验证是否完成了以下目标:
任务 4:问题排查和修复损坏的 GKE 集群
部署了电子商务网站 GKE 集群后,您的团队通知您此 GKE 集群存在几个已知问题需要解决。他们发现了三个需要修复的 Bug:
- Bug #1:前端服务延迟时间过长
- Bug #2:评分已过时
- Bug #3:商品推荐服务中存在崩溃 Bug
根据收购策略,您需要执行修复
提示:
- Bug #1:访问演示应用的外部 IP,查看是否存在可见的变化。您还可以使用监控信息中心来查看与每项服务关联的指标。
-
Bug #2:商品评分由 Google AppEngine 上托管的评分服务管理。这些评分能保持最新,背后的机制是定期调用一个 API 端点,而该端点会收集各商品最近收到的所有最新评分并计算新的评分。请检查 AppEngine 中的日志,了解此评分服务是否运行正常。另一位团队成员提到这可能与
main.py
文件中的问题有关。 - Bug #3:浏览您的网站直至遇到问题,然后使用 Cloud Logging 查看各服务导出的日志。另一位团队成员提到此崩溃 Bug 可能是由此服务中的整数转换阶段造成的。
创建 BigQuery 日志接收器
修复底层问题之前,您还需要创建一个日志接收器,以便将与有问题的服务相关的错误发送出去。您接下来需要使用 IAM 为 Antern 中的用户提供对 BigQuery 的不同级别的访问权限,以便他们查看该数据集并与之交互。
-
使用 Logs Explorer 调查正在运行的 GKE 应用,以及相应服务是否存在错误。提示:您应该查看严重性级别为
ERROR
的日志。 -
找出了服务错误日志之后,请创建一个接收器,以便将这些日志发送至 BigQuery。
- 将此接收器命名为
- 对于目标位置,请创建一个名为
gke_app_errors_sink
的 BigQuery 数据集,其位置为 us(美国的多个区域)。 - 在包含过滤器中,请务必包含
resource.type
、和 severity
。
- 将此接收器命名为
-
为 Antern Editor 用户授予对此项目的 BigQuery Data Viewer 角色。其用户名为:
。 -
为 Antern Owner 用户授予对此项目的 BigQuery Admin 角色。其用户名为:
。
点击检查我的进度以验证是否完成了以下目标:
修复 GKE 集群
在 BigQuery 中,您现在为服务中的错误创建了日志接收器,您团队中的一些工程师查看了日志并确定了修复此问题的正确步骤。在此任务中,您需要下载并运行此解决方案代码,以修复 GKE 集群中的服务。
- 连接至 cloud-ops-sandbox GKE 集群并运行以下命令以修复此问题。在收到提示时回答验证问题。
- 验证此电子商务商店是否运行正常。
恭喜!
赢得您的下一个技能徽章
本自学实验是使用 Google Cloud 部署和管理云环境技能徽章课程的组成部分。完成此技能徽章可能可赢得上面的徽章,以表彰您取得的成就。您可以在简历和社交平台中分享您的徽章,并使用 #GoogleCloudBadge 来将您所取得的成就广而告之。
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2024 年 2 月 5 日
上次测试实验的时间:2023 年 9 月 20 日
版权所有 2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。