Logo
Section 1 / 5

Google Cloud Platform 入门

了解 Google Cloud Platform (GCP) 的简要介绍,以及你将在生产监控中如何使用它。

导入

Google Cloud Platform 入门

了解 Google Cloud Platform (GCP) 的简要介绍,以及你将在生产监控中如何使用它。

Google Cloud Platform

Google Cloud Platform 是一套运行在 Google 内部用于其面向用户的产品(如 Google 搜索、Gmail、文件存储和 YouTube)所使用相同基础设施上的云计算服务。

本课程中首选的公共云提供商是 Google Cloud。更具体地说,我们使用 Firebase Hosting,以 Cloud Firestore 作为数据库层,并使用 Firebase Cloud Functions 实现独立的事件驱动服务。

Sapper 会生成 Web 应用程序的静态版本。这些静态资源(如 HTML、CSS、JavaScript 和图片)由 Firebase Hosting 提供服务。

Firestore 支持函数触发器,例如当文档被创建、更新或删除时。当这些事件之一发生时,Cloud Function 将自动触发。这使得前端 Web 应用程序代码与后端功能完全解耦。

...
Hosting Architecture

上图展示了我们将在本项目中开发的托管架构,该架构已在课程“项目概览”课时中介绍。右侧的 Cloud Function 方框是众多潜在独立服务之一。

在部署 Web 应用的新版本时,过去我们通常将代码更改推送到现有服务器。如果出现问题,我们会回滚更改并重试。而使用 Firebase Hosting 时,我们将所有 Web 应用资源(HTML、JavaScript、CSS、图片)作为一次修订进行部署。在需要回滚的情况下,之前的修订仍然可用,并可几乎立即激活。

让我们对比一下“旧方式”和“新方式”,即可变部署与不可变部署的区别。

...
Types of Deployments

在不可变场景下,回滚只需将网站流量切换到最近一次生产环境的前一个服务器即可。

随着项目规模的增长,你可能会遇到某些任务需要运行独立服务的情况。GCP 提供了 Cloud Functions(我们将使用)以及 Cloud Run,这是一个完全托管的计算平台,可快速且安全地部署和扩展容器化应用。你只需要创建一个容器镜像,将其推送到容器注册表,然后告诉 Cloud Run 部署该镜像的新版本即可。

替代方案

让我们探讨 Google Cloud Platform 的替代方案。

Vercel Now

开发。预览。发布。Vercel 是前端团队的理想工作流,结合了最佳开发者体验与对终端用户性能的关注。

Amazon Web Services

Amazon Web Services 目前是市场份额最大的云提供商,广为人知。

Azure

Azure 是微软的云服务产品,具备无限的数据存储能力以及数据分析能力。

Azure Static Web Apps

Azure Static Web App 在 Microsoft Build 2020 上发布,是一项前景可观的发展方向,值得重点关注。它与 GitHub 紧密集成,让你仅需几步即可从代码部署到生产环境。

生产环境监控

无论以何种方式以及多频繁地部署到生产环境,监控都至关重要。你需要了解系统如何运行,更重要的是,需要清楚何时出现异常。最糟糕的情况是,最终用户通过直接反馈或社交媒体报告问题!

有一个例外情况:那些选择参与测试功能并同意提供反馈的用户。理想情况下,他们应能在你的 Web 应用内轻松便捷地提供反馈。

我们将利用 Google Cloud Platform Monitoring,如课程“项目概览”课时中的图表所示,以及下方的架构图中涵盖的内容,这些正是我们在本章将遵循的方案。

...
Google Cloud Platform Monitoring

作为第一步,你将为首页配置一个 uptime check。我们希望第三方系统定期检查 Web 应用是否正常运行。如果发现异常,我们希望能收到通知,以便调查并修复问题。这种手动流程是一个良好的开端,但随着项目增长,自动化将变得非常有意义。例如,当错误率上升时,应执行 自动回滚。

特性开关

创建 Uptime 检查