本文讨论如何在 Google Cloud 上托管网站。 Google Cloud 为网站服务提供了一个强大、灵活、可靠且可扩展的平台。谷歌通过使用谷歌用来提供来自 Google.com、YouTube 和 Gmail 等网站的内容的相同基础设施来构建谷歌云。您可以使用最适合您需求的基础设施类型和设计来提供您网站的内容 如果您属于以下情况,您可能会发现这篇文章很有用: - 了解如何创建网站并部署和运行过一些网络服务基础设施 - 评估是否以及如何将您的站点迁移到 Google Cloud 如果您想构建一个简单的网站,请考虑使用 Google 协作平台,这是一种结构化的 wiki 和网页创建工具。有关详细信息,请访问协作平台帮助 ## 选择一个选项 如果您不熟悉使用 Google Cloud,那么从使用您已经熟悉的技术开始是一种合理的方法。例如,如果您当前使用硬件服务器或虚拟机 (VM) 来托管您的站点,可能是通过其他云提供商或在您自己的硬件上,Compute Engine 会为您提供熟悉的范例。如果您已经在使用平台即服务 (PaaS) 产品,例如 Heroku 或 Engine Yard,App Engine 可能是最好的起点。如果您更喜欢无服务器计算,Cloud Run 可能是您的不错选择 在您更加熟悉 GCP 之后,您可以探索 GCP 提供的丰富的产品和服务。例如,如果您开始使用 Compute Engine,则可以使用 Google Kubernetes Engine (GKE) 来增强站点的功能,或者将部分或全部功能迁移到 App Engine 和 Cloud Run 下表总结了您在 Google Cloud 上的托管选项: |选项||产品||数据存储||负载平衡||可扩展性||记录和监控| |静态网站|| | 云储存 火力地堡托管 |云存储桶|| | HTTP(S) 可选 |自动| |虚拟机||计算引擎|| | Cloud SQL Admin API、Cloud Storage API、Datastore API 和 Cloud Bigtable API,或者您可以使用其他外部存储提供商 基于硬盘的永久性磁盘,称为 | | HTTP(S) 代理服务器 SSL 代理 IPv6终止 网络 跨区域 内部的 |自动与托管实例组一起使用| |容器||GKE||类似于计算引擎,但与永久性磁盘的交互方式不同||网络 | HTTP(S) |集群自动缩放器| |托管平台|| | 应用引擎 |Google Cloud 服务,例如 Cloud SQL、Firestore、Cloud Storage 和可访问的第三方数据库|| | HTTP(S) 由谷歌管理 |由谷歌管理| |无服务器|| | 云跑 |Google Cloud 服务,例如 Cloud SQL、Firestore、Cloud Storage 和可访问的第三方数据库|| | HTTP(S) 由谷歌管理 |由谷歌管理| 本文可以帮助您了解可用于在 Google Cloud 上提供 Web 服务的主要技术,并让您大致了解这些技术的工作原理。本文提供了指向完整文档、教程和解决方案文章的链接,可帮助您在准备就绪时加深理解 ## 了解成本 因为变量太多而且每个实现都不同,所以提供有关成本的具体建议超出了本文的范围。要了解 Google 关于如何在 Google Cloud 上定价的原则,请参阅定价页面。要了解个别服务的定价,请参阅产品定价部分。您还可以使用定价计算器来估算您的 Google Cloud 使用情况。您可以提供有关您要使用的服务的详细信息,然后查看定价估算 ## 设置域名服务 通常,您需要为您的站点注册一个域名。您可以使用公共域名注册商(例如 Google Domains)为您的网站注册一个唯一的名称。如果您想完全控制自己的域名系统 (DNS),可以使用 Cloud DNS 作为您的 DNS 提供商。 Cloud DNS 文档包含帮助您入门的快速入门 如果您有想要使用的现有 DNS 提供商,通常需要 使用该提供商创建几个记录。对于域名,例如 example.com,你创建一个 与您的 DNS 提供商的记录。为了 www.example.com 子域,您创建一个 的 CNAME 记录 www指向 它给 example.com 域。这 记录将主机名映射到 IP 地址 这 CNAME 记录为 一个记录 如果您的域名注册商也是您的 DNS 提供商,那么您可能只需要这样做。如果您使用不同的提供商进行注册和 DNS,请确保您的域名注册商拥有与您的域关联的正确名称服务器 更改 DNS 后,记录更新可能需要一些时间才能传播,具体取决于您所在区域的生存时间 (TTL) 值。如果这是一个新的主机名,更改会很快生效,因为 DNS 解析器没有缓存以前的值并且可以联系 DNS 提供商以获取必要的信息来路由请求 ## 托管静态网站 通过 HTTP(S) 提供网站内容的最简单方法是托管 *静态网页*。提供静态网页 保持原样,因为它们通常是使用 HTML 编写的。使用静态网站 如果您网站的页面在更改后很少更改,则这是一个不错的选择 已发布,例如属于小型企业的博客文章或页面 网站。你可以用静态网页做很多事情,但如果你需要你的网站 通过服务器端代码与用户进行稳健的交互,你应该 考虑本文中讨论的其他选项 使用 Cloud Storage 托管静态网站 要在 Cloud Storage 中托管静态站点,您需要创建一个 云存储桶, 上传内容,并测试您的新站点。你可以 直接从 storage.googleapis.com, 或者你可以 验证您拥有自己的域 并使用 你的域名 您可以根据自己的选择创建静态网页。例如,你可以 使用 HTML 和 CSS 手工创作页面。你可以使用 *静态网站生成器*, 如 杰基尔, 鬼, 或雨果, 创建内容 使用静态网站生成器,您可以通过以下方式创建静态网站 创作于 降价, 并提供模板和工具。一般网站生成器 提供可用于预览内容的本地 Web 服务器 静态站点运行后,您可以使用任何更新静态页面 你喜欢的过程。这个过程可以像手工复制一样简单 更新页面到存储桶。您可能会选择使用更自动化的方法, 例如将您的内容存储在 GitHub 上,然后使用 网钩 运行一个 更新存储桶的脚本。一个更先进的系统可能会使用 持续集成/持续交付 (CI/CD) 工具,例如 詹金斯, 更新中的内容 桶。 Jenkins 有一个云存储 插入 提供了一个 用于发布构建的 Google Cloud Storage Uploader 构建后步骤 工件到 Cloud Storage 如果您的 Web 应用需要提供静态内容或用户上传的静态媒体,使用 Cloud Storage 是一种经济高效的方式来托管和提供这些内容,同时减少对您的 Web 应用的动态请求量 此外,云存储可以直接接受用户提交的内容。此功能允许用户直接安全地上传大型媒体文件,而无需通过您的服务器进行代理 要从您的静态网站获得最佳性能,请参阅云存储最佳实践 有关详细信息,请参阅以下页面: - 托管静态网站 - J 代表 Jenkins(博客文章) - Google Cloud 上的 Band Aid 30(博客文章) - 云存储文档 使用 Firebase Hosting 托管静态网站Firebase Hosting 为您的 Web 应用程序提供快速安全的静态托管。借助 Firebase 托管,您可以使用单个命令将 Web 应用程序和静态内容部署到全球内容交付网络 (CDN)以下是您获得的一些好处使用 Firebase 托管:- 零配置 SSL 内置于 Firebase 托管中。在自定义域上免费提供 SSL 证书- 您的所有内容都通过 HTTPS 提供- 您的内容已交付给您的用户来自世界各地的 CDN 边缘- 使用 Firebase CLI,您可以在几秒钟内启动并运行您的应用程序。使用命令行工具将部署目标添加到构建过程中- 您可以获得发布管理功能,例如新资产的原子部署、完整版本控制和一键式回滚- 托管提供了对单页应用程序和其他更像应用程序的网站有用的配置- 托管旨在与其他 Firebase 功能有关详细信息,请参阅以下页面:## 将虚拟机与计算引擎一起使用对于基础架构即服务 (IaaS) 用例,Google Cloud 提供了 Compute Engine。Compute Engine 提供了强大的计算基础设施,但您必须选择和配置要使用的平台组件。使用 Compute Engine,您有责任配置、管理和监控系统。Google 确保资源可用、可靠且随时可供您使用,但由您来配置和管理它们。此处的优势在于您可以完全控制系统和无限的灵活性使用 Compute Engine 设计和部署几乎任何您想要的网站服务系统。您可以使用称为实例的 VM 来构建您的应用程序,就像您拥有自己的硬件基础架构一样。Compute Engine 提供多种机器类型来自定义您的配置以满足您的需求和预算。您可以选择您喜欢的操作系统、开发堆栈、语言、框架、服务和其他软件技术使用 Google Cloud Marketplace 自动设置部署完整网络服务堆栈的最简单方法是使用 Google Cloud Marketplace。只需点击几下,您就可以使用 Google Click to Deploy 或 Bitnami 部署 100 多个完全实现的解决方案中的任何一个例如,您可以设置 LAMP 堆栈或 WordPress与云市场。系统在单个实例上仅需几分钟即可部署一个完整的、可工作的软件堆栈。在您部署之前,Cloud Marketplace 会向您显示运行站点的成本估算,为您提供有关它为您安装的软件组件版本的明确信息,并允许您通过更改组件实例名称、选择机器类型,并选择磁盘大小。部署后,您可以完全控制计算引擎实例、它们的配置和软件手动设置您还可以在手动计算引擎,从头开始构建您的配置或在 Google Cloud Marketplace 部署上构建。例如,您可能想要使用 Cloud Marketplace 未提供的软件组件版本,或者您可能更喜欢自行安装和配置所有内容提供完整的建立网站的框架和最佳实践超出了本文的范围。但从高层次的角度来看,在 Compute Engine 上设置 Web 服务基础设施的技术方面要求您:了解要求。如果您正在构建一个新网站,请确保您了解所需的组件,例如实例、存储需求和网络基础设施。如果您要从现有解决方案迁移应用,您可能已经了解这些要求,但您需要考虑如何将现有设置映射到 Google Cloud 服务。计划设计。仔细考虑您的架构并写下您的设计。尽可能明确。创建组件。您通常认为是物理资产的组件,例如计算机和网络交换机,是通过 Compute Engine 中的服务提供的。例如,如果你想要一台计算机,你必须创建一个计算引擎实例。如果你想要一个持久的硬盘驱动器,你也可以创建它。Cloud Deployment Manager 或 Terraform 使这个过程变得简单且可重复。配置和自定义。拥有所需的组件后,您需要配置它们、安装和配置软件,并编写和部署您需要的任何自定义代码。您可以通过运行 shell 脚本来复制配置,这有助于加快未来的部署。Deployment Manager 在这里也有帮助,它通过为资源的自动部署提供声明式的、灵活的配置模板。您还可以利用 Puppet 和 Chef 等 IT 自动化工具。部署资产。想必,你有网页和图片。测试。验证一切是否按预期工作。部署到生产环境。打开您的网站让全世界看到和使用为了帮助您开始并了解手动设置 Compute Engine 实例是什么感觉,请尝试一个或多个以下教程:使用 Compute Engine 存储数据 大多数网站都需要某种存储空间。您可能出于各种原因需要存储空间,例如保存用户上传的文件,当然还有您网站使用的资产 Google Cloud 提供多种托管存储服务,包括: - Cloud SQL中的SQL数据库,基于MySQL - NoSQL 数据存储的两个选项:Firestore 和 Cloud Bigtable - 一致的、可扩展的、大容量的对象存储 云储存 Cloud Storage 分为几类: - 标准提供最大可用性 - Nearline 为每月访问次数少于一次的数据提供了一种低成本的选择 - Coldline 提供了一种低成本的选择,非常适合每季度访问一次的数据 - Archive 为归档、备份和灾难恢复提供成本最低的选择 - Compute Engine 上的永久性磁盘 用作实例的主存储。计算引擎提供 两个基于硬盘的永久性磁盘,称为 标准永久性磁盘和固态永久性磁盘 (SSD)。您还可以选择使用永久性磁盘在 Compute Engine 上设置您喜欢的存储技术。例如,您可以将 PostgreSQL 设置为您的 SQL 数据库或将 MongoDB 设置为您的 NoSQL 存储。要了解 Google Cloud 上存储服务的全部范围和优势,请参阅选择存储选项 使用 Compute Engine 进行负载平衡 对于任何大规模运营的网站,通常需要使用负载平衡技术在服务器之间分配工作负载。在 Compute Engine 上构建负载平衡 Web 服务器时,您有多种选择,包括: - HTTP(S) 负载平衡 解释使用 Cloud Load Balancing 的基础知识 - 基于内容的负载平衡。演示如何根据传入的 URL 将流量分配到不同的实例 - 跨区域负载均衡。演示在不同区域配置 VM 实例并使用 HTTP 或 HTTPS 负载平衡跨区域分配流量 - TCP 代理负载平衡。演示为存在于多个区域的服务设置全局 TCP 代理负载平衡 - SSL 代理负载平衡。演示为存在于多个区域的服务设置全局 SSL 代理负载平衡 - HTTP(S)、SSL 代理和 TCP 代理负载平衡的 IPv6 终止。解释 IPv6 终止和配置负载平衡器以处理 IPv6 请求的选项 - 网络负载平衡。显示设置第 3 层负载平衡配置以在健康实例之间分配 HTTP 流量的基本场景 - 使用 Microsoft IIS 后端的跨区域负载平衡。展示如何使用 Compute Engine 负载平衡器将流量分配到 Microsoft Internet Information Services (IIS) 服务器 - 设置内部负载平衡您可以设置一个负载平衡器,在不暴露于 Internet 的专用网络上分配网络流量。内部负载均衡不仅适用于所有流量都在私有网络上的内网应用程序,也适用于前端通过私有网络向后端服务器请求的复杂 Web 应用程序 负载平衡部署非常灵活,您可以将 Compute Engine 与现有解决方案结合使用。例如,使用 Nginx 的 HTTP(S) 负载平衡是一种可能的解决方案,您可以使用它来代替 Compute Engine 负载平衡器 使用 Compute Engine 进行内容分发 由于响应时间是任何网站的基本指标,因此通常需要使用 CDN 来降低延迟和提高性能,尤其是对于具有全球网络流量的网站 Cloud CDN 使用 Google 的全球分布式边缘接入点从距离用户最近的缓存位置传送内容。 Cloud CDN 使用 HTTP(S) 负载平衡。要从单个 IP 地址提供来自 Compute Engine、Cloud Storage 或两者的内容,请为 HTTP(S) 负载平衡器启用 Cloud CDN 使用 Compute Engine 自动缩放 您可以设置您的体系结构以根据需求变化添加和删除服务器。这种方法有助于确保您的网站在峰值负载下表现良好,同时在更典型的需求期间控制成本。 Compute Engine 提供了一个自动缩放器,您可以将其用于此目的 自动缩放是托管实例组的一项功能。托管实例组是同构虚拟机实例池,根据通用实例模板创建。自动缩放器在托管实例组中添加或删除实例。尽管 Compute Engine 同时具有托管和非托管实例组,但您只能将托管实例组与自动调节器一起使用。有关详细信息,请参阅 Compute Engine 上的自动缩放 要深入了解构建可扩展且有弹性的 Web 应用程序解决方案所需的条件,请参阅构建可扩展且有弹性的 Web 应用程序 使用 Compute Engine 进行日志记录和监控 Google Cloud 包含可用于密切关注网站动态的功能 Cloud Logging 从 Google Cloud 上的应用和服务收集和存储日志。您可以使用日志代理查看或导出日志并集成第三方日志 Cloud Monitoring 为您的站点提供仪表板和警报。您可以使用 Google Cloud 控制台配置监控。您可以查看云服务、虚拟机和常见开源服务器(如 MongoDB、Apache、Nginx 和 Elasticsearch)的性能指标。您可以使用 Cloud Monitoring API 检索监控数据并创建自定义指标Cloud Monitoring 还提供正常运行时间检查,向您的网站发送请求以查看它们是否响应。您可以通过部署在正常运行时间检查失败时创建事件的警报策略来监控网站的可用性使用 Compute Engine 管理 DevOps有关管理 DevOps 的信息对于 Compute Engine,请参阅以下文章:- 使用 Kubernetes 进行分布式负载测试- 在 Compute Engine 上运行 Spinnaker- 使用 Spinnaker 在 Google Cloud 上管理部署# # 在 GKE 中使用容器您可能已经在使用容器,例如 Docker 容器。对于网络服务,容器提供了几个优势,包括:组件化。您可以使用容器来分隔 Web 应用程序的各个组件。例如,假设您的站点运行一个 Web 服务器和一个数据库。您可以在单独的容器中运行这些组件,修改和更新一个组件而不影响另一个组件。随着应用程序的设计变得越来越复杂,容器非常适合面向服务的架构,包括微服务。这种设计支持可扩展性等目标。便携性。容器拥有运行所需的一切——您的应用及其依赖项捆绑在一起。你可以在各种平台上运行你的容器,而不用担心底层系统的细节。快速部署。部署时,您的系统是根据一组定义和图像构建的,因此可以快速、可靠、自动地部署各个部分。容器通常很小,与虚拟机等相比,部署速度要快得多Google Cloud 上的容器计算为 Web 服务提供了更多优势,包括:编排。GKE 是建立在 Kubernetes 之上的托管服务,Kubernetes 是谷歌推出的开源容器编排系统。使用 GKE,您的代码在容器中运行,这些容器属于由 Compute Engine 实例组成的集群。无需管理单个容器或手动创建和关闭每个容器,您可以通过使用您定义的配置的 GKE 自动管理集群。图像注册。Container Registry 或 Artifact Registry 为 Google Cloud 上的 Docker 镜像提供私有存储。您可以通过 HTTPS 端点访问注册表,因此您可以从任何机器上提取图像,无论是 Compute Engine 实例还是您自己的硬件。注册表服务在您的 Google Cloud 项目下的 Cloud Storage 中托管您的自定义图像。这种方法确保默认情况下您的自定义图像只能由有权访问您的项目的主体访问。机动性。这意味着您可以灵活地移动工作负载并将其与其他云提供商相结合,或者将云计算工作负载与本地实现混合以创建混合解决方案存储数据GKE由于 GKE 在 Google Cloud 上运行并使用 Compute Engine 实例作为节点,因此您的存储选项与 Compute Engine 上的存储有很多共同点。您可以通过 API 访问 Cloud SQL、Cloud Storage、Datastore 和 Bigtable,或者您可以选择使用其他外部存储提供商。但是,GKE 确实以不同于普通 Compute Engine 实例的方式与 Compute Engine 永久性磁盘进行交互Compute Engine 实例包含一个附加磁盘。当您使用Compute Engine 时,只要实例存在,磁盘卷就会保留在实例中。您甚至可以分离磁盘并将其与不同的实例一起使用。但在容器中,磁盘文件是短暂的。当容器重新启动时,例如在崩溃后,磁盘上的文件将丢失。Kubernetes 通过使用卷抽象解决了这个问题,一种类型的卷是gcePersistentDisk这意味着您可以使用带有容器的 Compute Engine 永久性磁盘来防止您的数据文件在您使用 GKE 时被删除了解卷的特性和优势,您应该先了解一下 pod。您可以将 pod 视为一个或多个容器的特定于应用程序的逻辑主机。一个 pod 运行在一个节点实例上。当容器是 pod 的成员时,它们可以共享多个资源,包括一组共享存储卷。这些卷使数据能够在容器重启后继续存在,并在 pod 内的容器之间共享。当然,您也可以在 pod 中使用单个容器和卷,但是 pod 是逻辑上将这些资源相互连接起来所必需的抽象例如,请参阅教程 将永久磁盘与 WordPress 和 MySQL 一起使用使用 GKE 进行负载平衡许多大型 Web 服务架构需要运行多个服务器来共享流量需求。因为您可以使用 GKE 创建和管理多个容器、节点和 pod,所以它自然适合负载均衡的 Web 服务系统使用网络负载均衡在 GKE 中创建负载均衡器的最简单方法是使用 Compute Engine 的网络负载均衡。网络负载平衡可以根据传入的 Internet 协议数据(例如地址、端口和协议类型)来平衡系统的负载。网络负载平衡使用转发规则。这些规则指向列出哪些实例可用于负载平衡的目标池 通过网络负载平衡,您可以对其他基于 TCP/UDP 的协议(例如 SMTP 流量)进行负载平衡,并且您的应用可以直接检查数据包 您只需添加以下内容即可部署网络负载平衡 类型:负载均衡器 字段到您的服务配置文件 使用 HTTP(S) 负载平衡 如果您需要更高级的负载平衡功能,例如 HTTPS 负载平衡、基于内容的负载平衡或跨区域负载平衡,您可以将 GKE 服务与 Compute Engine 的 HTTP/HTTPS 负载平衡功能集成。 Kubernetes 提供 Ingress 资源,它封装了一组规则,用于将外部流量路由到 Kubernetes 端点。在 GKE 中,Ingress 资源处理 Compute Engine HTTP/HTTPS 负载均衡器的供应和配置 有关在 GKE 中使用 HTTP/HTTPS 负载平衡的更多信息,请参阅使用 Ingress 设置 HTTP 负载平衡 使用 GKE 进行扩展 对于集群的自动调整大小,您可以使用 Cluster Autoscaler。此功能会定期检查是否有任何 pod 正在等待具有空闲资源但未被调度的节点。如果存在这样的 pod,则自动缩放器会调整节点池的大小,前提是调整大小允许安排等待的 pod Cluster Autoscaler 还监控所有节点的使用情况。如果一个节点在很长一段时间内不需要,并且它的所有 pod 都可以调度到其他地方,那么该节点将被删除 有关 Cluster Autoscaler、其限制和最佳实践的更多信息,请参阅 Cluster Autoscaler 文档 使用 GKE 进行日志记录和监控 与在 Compute Engine 上一样,Logging and Monitoring 提供您的日志记录和监控服务。日志收集和存储来自应用程序和服务的日志。您可以使用日志代理查看或导出日志并集成第三方日志 监控为您的站点提供仪表板和警报。您可以使用 Google Cloud 控制台配置监控。您可以查看云服务、虚拟机和常见开源服务器(如 MongoDB、Apache、Nginx 和 Elasticsearch)的性能指标。您可以使用 Monitoring API 检索监控数据并创建自定义指标 使用 GKE 管理 DevOps 当您使用 GKE 时,您已经获得了大多数人在想到 DevOps 时会想到的许多好处。当谈到易于打包、部署和管理时,尤其如此。对于您的 CI/CD 工作流程需求,您可以利用 Jenkins 等流行工具。请参阅以下文章: ## 使用 App Engine 在托​​管平台上构建 在 Google Cloud 上,托管平台即服务 (PaaS) 称为 App Engine。当您在 App Engine 上构建您的网站时,您可以专注于编写您的功能,而让 Google 负责管理支持基础设施。 App Engine 提供了广泛的功能,使可伸缩性、负载平衡、日志记录、监控和安全性比您必须自己构建和管理它们要容易得多。 App Engine 让您可以使用多种编程语言进行编码,并且可以使用各种其他 Google Cloud 服务 App Engine 提供标准环境,让您可以在安全的沙盒环境中运行应用程序。 App Engine 标准环境将请求分布到多个服务器,并扩展服务器以满足流量需求。您的应用程序在独立于硬件、操作系统或服务器物理位置的安全可靠环境中运行 为了给您更多选择,App Engine 提供了灵活的环境。当您使用灵活环境时,您的应用程序会在可配置的 Compute Engine 实例上运行,但 App Engine 会为您管理托管环境。这意味着您可以使用其他运行时(包括自定义运行时)来获得更多编程语言选择。您还可以利用 Compute Engine 提供的一些灵活性,例如从各种 CPU 和内存选项中进行选择 编程语言 App Engine 标准环境提供默认运行时,您可以使用支持的编程语言的特定版本编写源代码 使用灵活的环境,您可以使用任何受支持的编程语言的版本编写源代码。您可以自定义这些运行时或使用自定义 Docker 映像或 Dockerfile 提供您自己的运行时 如果您使用的编程语言是首要考虑因素,您需要确定 App Engine 标准环境提供的运行时是否满足您的要求。如果他们不这样做,您应该考虑使用灵活的环境 要确定哪种环境最能满足您应用的需求,请参阅选择 App Engine 环境 按语言分类的入门教程 以下教程可以帮助您开始使用 App Engine 标准环境: - Python 中的 Hello World - Java 中的 Hello World - 用 PHP 编写的 Hello World - Ruby 中的 Hello World - 围棋中的你好世界 - Node.js 中的 Hello World 以下教程可以帮助您开始使用柔性环境: - 开始使用 Python - Java 入门 - 开始使用 PHP - Go 入门 - 开始使用 Node.js - 开始使用 Ruby - .NET 入门 使用 App Engine 存储数据 App Engine 为您提供存储数据的选项: |名称||结构||一致性| |Firestore||Schemaless||高度一致。| |Cloud SQL||关系||高度一致。| |云存储||文件及其关联的元数据||高度一致,除非执行获取存储桶或对象列表的列表操作。| 您还可以在标准环境中使用多个第三方数据库 有关 App Engine 中存储的更多详细信息,请参阅选择存储选项,然后选择您的首选编程语言 使用灵活环境时,您可以使用与标准环境相同的所有存储选项,以及范围更广的第三方数据库。有关柔性环境中第三方数据库的更多信息,请参阅使用第三方数据库 使用 App Engine 进行负载平衡和自动缩放 默认情况下,App Engine 会自动将传入请求路由到适当的后端实例并为您进行负载平衡。但是,如果您想利用 Google Cloud 的全功能企业级 HTTP(S) 负载平衡功能,您可以使用无服务器网络端点组 对于扩展,App Engine 可以在流量波动时自动创建和关闭实例,或者您可以指定要运行的实例数量,而不管流量有多大 使用 App Engine 进行日志记录和监控 在 App Engine 中,请求会自动记录,您可以查看这些 登录谷歌云控制台。 App Engine 也适用于 标准的、特定于语言的库,提供日志记录功能和 将日志条目转发到 Google Cloud 控制台中的日志。例如, 在 Python 中 您可以使用标准的 Python 日志记录模块和 在爪哇 您可以集成 logback appender 或 java.util.logging 与云日志。这种方法启用了 Cloud Logging 的全部功能 只需要几行特定于 Google Cloud 的代码 Cloud Monitoring 提供用于监控 App Engine 应用程序的功能。通过谷歌云控制台,您可以监控事件、正常运行时间检查和其他细节 ## 使用 Cloud Run 在无服务器平台上构建 Google Cloud 的无服务器平台让您可以按照自己的方式编写代码,而无需担心底层基础架构。您可以使用 Google Cloud 的存储、数据库、机器学习等构建全栈无服务器应用程序 对于您的容器化网站,除了使用 GKE 之外,您还可以将它们部署到 Cloud Run。 Cloud Run 是一个完全托管的无服务器平台,可让您在 Google Cloud 上运行高度可扩展的容器化应用程序。您只需为代码运行的时间付费 将容器与 Cloud Run 结合使用,您可以利用 Nginx、Express.js 和 Django 等成熟技术来构建网站、访问 Cloud SQL 上的 SQL 数据库并呈现动态 HTML 页面 Cloud Run 文档包含帮助您入门的快速入门 使用 Cloud Run 存储数据 Cloud Run 容器是短暂的,您需要了解它们对您的用例的配额和限制。文件可以临时存储在容器实例中进行处理,但这种存储来自运行时合同中描述的服务的可用内存 对于持久存储,类似于 App Engine,您可以选择 Google Cloud 的服务,例如 Cloud Storage、Firestore 或 Cloud SQL。或者,您也可以使用第三方存储解决方案 使用 Cloud Run 进行负载平衡和自动扩缩 默认情况下,当您在 Cloud Run 上构建时,它会自动将传入请求路由到适当的后端容器并为您进行负载平衡。但是,如果您想利用 Google Cloud 的全功能企业级 HTTP(S) 负载平衡功能,您可以使用无服务器网络端点组 借助 HTTP(S) 负载平衡,您可以启用 Cloud CDN 或为来自多个区域的流量提供服务。此外,您可以使用API​​ Gateway等中间件来增强您的服务 对于 Cloud Run,Google Cloud 管理容器实例自动缩放 为你。每次修订 自动缩放到需要处理的容器实例的数量 所有传入的请求。默认情况下,当修订没有收到任何流量时 它被缩放到零个容器实例。但是,如果需要,您可以 更改此默认值以指定要保持空闲的实例或 *温暖*使用 最小实例设置 使用 Cloud Run 进行日志记录和监控 Cloud Run 有两种类型的日志,它们会自动发送到 Cloud Logging: - 请求日志:发送到 Cloud Run 服务的请求日志。这些日志是自动创建的 - 容器日志:从容器实例发出的日志,通常来自您自己的代码,写入支持的位置,如编写容器日志中所述 您可以通过多种方式查看服务日志: - 使用谷歌云控制台中的 Cloud Run 页面 - 在 Google Cloud 控制台中使用 Cloud Logging Logs Explorer 这两种查看方法检查存储在 Cloud Logging 中的相同日志,但日志资源管理器提供更多详细信息和更多过滤功能 Cloud Monitoring 提供 Cloud Run 性能监控、指标和正常运行时间检查,以及在超过特定指标阈值时发送通知的警报。 Google Cloud 的操作套件定价适用,这意味着完全托管版本的 Cloud Run 上的指标不收费。请注意,您还可以使用 Cloud Monitoring 自定义指标 Cloud Run 与 Cloud Monitoring 集成 *无需设置或配置*。这意味着您的指标 Cloud Run 服务在运行时自动捕获 ## 构建内容管理系统 服务网站意味着管理您的网站资产。 Cloud Storage 为这些资产提供了一个全局存储库。一种常见的架构将静态内容部署到 Cloud Storage,然后同步到 Compute Engine 以呈现动态页面。 Cloud Storage 可与许多第三方内容管理系统配合使用,例如 WordPress、Drupal 和 Joomla。 Cloud Storage 还提供与 Amazon S3 兼容的 API,因此任何支持 Amazon S3 的系统都可以使用 Cloud Storage 下图是内容管理系统的示例架构 ## 下一步是什么 - 探索有关 Google Cloud 的参考架构、图表、教程和最佳实践。查看我们的云架构中心。