本教程将介绍如何使用 Google Cloud 专用 Gemini, Google Cloud 中依托 AI 技术的协作工具,用于构建多层 Web 应用 尽可能使用全代管式服务来部署您的应用
目标
- 探索可用于处理经由 公共互联网。
- 探索可用于缓存数据以提高速度的各种 Google 服务 检索。
- 探索可用于保留有状态数据的各种 Google 服务。
- 设计各种 Google 服务的互操作方式架构。
使用的 Google Cloud 产品
- Cloud Run。Cloud Run 是一个代管式计算平台 让您可以在 Google 可伸缩的基础架构之上直接运行容器, 基础架构您可以将使用任何编程语言编写的代码部署到 Cloud Run(如果您可以基于它构建容器映像)。
- Cloud Memorystore。Cloud Memorystore 是一种 适用于 Redis 和 Memcached 的内存中数据存储区服务。构建应用 缓存,从而实现亚毫秒级的数据访问。
- Cloud SQL。Cloud SQL 是一项服务 云端关系型数据库它提供 MySQL、PostgreSQL 和 SQL 服务器数据库引擎。
准备工作
探索 Google Cloud 中的 Web 服务
在以下示例中,假设您是一位架构师,希望使用 Gemini 可帮助您在组织内的黄金之路上做出决策, 想要在 Google Cloud 中快速构建 Web 应用的开发者。您的目标是使用 Gemini 会协助您了解您可支配的选项、 特征及其互操作性。
在 Google Cloud 控制台中,您可以与 Gemini 对话, 帮助。在 Gemini 窗格中,你可以输入问题,即问题或 描述所需帮助的内容,Gemini 会返回 响应。
首先,让 Gemini 帮助您做出有关计算层级的决策 您的 Web 服务将在何处运行请执行以下步骤:
在 Google Cloud 控制台工具栏中,点击打开 Gemini。
在 Gemini 窗格中,根据以下提示输入以下提示: 您的要求和偏好,然后点击“发送”:
I am designing a multi-tier web app in Google Cloud. First, I would like help on deciding what to use for the compute tier. What are my options for running an app to serve traffic over the public internet? I would like to prioritize fully-managed services.
Gemini 的回答应该类似于以下内容:
您可以通过多种方式运行应用,以便通过 Google Cloud 上的公共互联网您可以使用 Cloud Run App Engine 或 Compute Engine
Cloud Run 一个代管式无服务器平台,让您可以运行无状态容器, 可使用 HTTP 请求调用。App Engine 是一个全代管式平台 它提供了一种编程环境,用于开发和运行 应用。Compute Engine 是一种虚拟机 (VM)服务 您需要创建和管理虚拟机
确定哪个选项最合适 您需要考虑以下因素:
应用的大小和 应用的复杂程度
您希望获得的流量
您对应用所需的控制级别
费用
如果您有 您希望接收少量流量的小型、简单的应用程序 那么 Cloud Run 是一个不错的选择如果你的设备更大 预计会获得大量流量的复杂应用, App Engine 或 Compute Engine 可能是更好的选择。如果您需要大量 那么 Compute Engine 是一个不错的选择如果您 但 Cloud Run 是一个不错的选择。鉴于您正在构建运行较小 Web 应用的最快途径 Gemini 对 Cloud Run 的说明似乎 最符合您的要求但首先,您需要确认 平台特性。 输入以下提示,然后点击“发送”:
Okay, I think I will move forward with Cloud Run. What metric does Cloud Run use to perform autoscaling?
Gemini 的回答应该类似于以下内容:
Cloud Run 会根据传入请求或事件的数量 执行自动扩缩如果修订版本未收到任何流量 默认扩缩为零个实例查找更多与您的 问题: 实例自动扩缩简介。
Cloud Run 可以根据传入请求自动扩缩,现在,您需要 了解流量如何进入其托管的应用。输入 以下提示:
How is a Cloud Run application exposed to users over the internet?
Gemini 的回答应该类似于以下内容:
Cloud Run 接受来自以下产品/服务的传入入站流量 来源:
公共互联网:请求直接从公共互联网 通过 Cloud Run 服务 允许通过外部 HTTP(S) 负载均衡器发送流量。
个 Google API 和 服务:来自 Google API 和服务的请求 无需外部 HTTP(S) 负载的 Cloud Run 服务 进行负载均衡。
VPC 网络:来自 VPC 网络的请求会路由到您的 通过 VPC 连接器使用 Cloud Run 服务。
您可以控制 如何使用 入站流量设置。虽然外部的公共负载均衡器可以用于 您需要 Gemini 帮助您了解该平台能否 仅向经过身份验证的用户公开此应用, 权限。输入以下提示:
Is there an easy mechanism in Cloud Run that allows only authenticated users to access an application?
Gemini 的回答应该类似于以下内容:
是的,我们提供了一种机制来确保只有经过身份验证的用户 访问 Cloud Run 应用。为此,您可以指定 no-allow-unauthenticated 选项。这会导致 您的服务拒绝未经身份验证的请求,并显示“HTTP 403 Forbidden”(HTTP 403 禁止访问) 错误。您可以访问以下链接,详细了解您的问题: 允许公开(未经身份验证)访问。
最后,要为贵组织中的开发者设置此项,您的偏好设置 不让他们编写与基础设施相关的任何配置 用作 Dockerfile
We have standardized on using Django as a web framework. Can I deploy a Python app to Cloud Run directly from source code? Or do we need to implement a way to containerize this ourselves?
Gemini 的回答应该类似于以下内容:
是的,您可以直接将 Python 应用部署到 Cloud Run 源代码。您可以使用 Cloud Run Python Buildpack 并部署 Python 应用您可以访问以下链接,详细了解您的问题: 通过源代码部署。
探索 Google Cloud 中的缓存
现在,您想继续为下一层级选择一项服务:缓存。答 根据团队对这一层的共同需求,您需要提示 Gemini 帮忙 您需要了解 Google Cloud 在此领域的产品/服务。采取以下措施 向 Gemini 寻求帮助的步骤:
在 Google Cloud 控制台工具栏中,点击打开 Gemini。
输入以下提示,然后点击“发送”:
Okay! Thank you. Now let's move on to the caching tier. How can I introduce a caching layer to my web app? I would like to prioritize fully-managed services.
Gemini 的回答应该类似于以下内容:
您可以通过多种方式向 Web 应用引入缓存层。一个 是使用 Cloud Memorystore 等全代管式服务。 Cloud Memorystore 是一种全代管式内存中数据存储区服务, Redis。它提供高性能、可伸缩且可靠的缓存 可帮助您提升 Web 应用性能的解决方案。您 还可以使用 Cloud Memorystore 来缓存静态内容,例如 和 JavaScript 文件您可以访问以下链接,详细了解您的问题: Memorystore 简介:适用于 Redis 的全代管式内存中数据存储区服务。
在继续使用 Cloud Memorystore for Redis 之前, 确保 Cloud Run 和 Cloud Memorystore 是私有的。输入以下提示:
If I were to use Cloud Memorystore, how do I ensure the communication between Cloud Run and Cloud Memorystore is private?
Gemini 的回答应该类似于以下内容:
为了确保 Cloud Run 与 Cloud Memorystore 是私有的,您需要创建一个 无服务器 VPC 访问通道连接器。这样就可以连接 您的 Memorystore 实例。您可以访问以下链接,详细了解您的问题: 使用 Memorystore for Redis 缓存 Django 应用。
探索 Google Cloud 中的关系型数据库
最后,您现在想确定关系型数据库存储空间。您提示 Google Cloud 专用 Gemini 可帮助您从众多方案中做出选择:
输入以下提示:
And for the relational database tier, where do you recommend I persist data? Please keep in mind that I would like to continue to prioritize fully-managed services.
Gemini 的回复应该与下面的示例类似:
有几个选项可用于在全代管式服务中保留数据。 您可以选择使用 Cloud SQL。Cloud SQL 是一个全代管式服务 它提供了一种简单、可靠且安全的 用于运行 SQL Server、MySQL 和 PostgreSQL 工作负载的平台, Google Cloud旨在帮助您快速开始使用无服务器 使用 Database Migration Service 迁移数据。Cloud SQL for SQL Server 可自动确保您的 SQL Server 数据库可靠、安全 可伸缩,确保您的业务持续运营而不会出现中断。查找 请访问以下网址,了解有关您的问题的更多信息: Cloud SQL 概览。
部署示例架构
最后,您现在想确定关系型数据库存储空间。您提示 Google Cloud 专用 Gemini 助您一臂之力 浏览各个选项:
Okay, we have landed on using Cloud Run, Cloud Memorystore, and Cloud
SQL together. Is there a solution I can use that is available from
Google that uses these three technologies for a web application?
Gemini 的回复应该与下面的示例类似:
没问题,下面这个解决方案使用 Cloud Run 将 Memorystore 和 Cloud SQL 搭配使用,构建 Web 应用:
快速起步解决方案:三层式 Web 应用。
此解决方案是一个三层式 Web 应用,使用 Cloud Run、Cloud Memorystore for Redis 以及 Cloud SQL for PostgreSQL。应用使用 Cloud Memorystore 缓存 和 Cloud SQL 来存储永久性数据。
要测试新架构,您决定要遵循 并部署此示例解决方案,以便您可以 测试和检查您的黄金路线架构!
清理
为避免因使用的资源导致您的 Google Cloud 账号产生费用 则可以删除为 Cloud Storage 存储分区创建的 Google Cloud 项目, 本教程。或者,您也可以删除各个资源。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
后续步骤
了解 Gemini 配额和限制。
不妨了解 Gemini 支持哪些国家/地区。