随着云计算的迅速增长,部署全栈应用到云已成为开发者优先选择的方法,以确保应用的可扩展性、安全性和易访问性。
Google 云平台(GCP)是十分受欢迎的云服务之一,提供了一套强大的工具和基础设施,旨在无缝部署、管理和扩展应用。
本指南将教你如何在 GCP(Google Cloud Platform)上部署一个完整的全栈应用程序。从创建 Google Cloud 项目到部署后端、前端和数据库,我们将详细介绍每个必要的步骤。
要了解 GCP 和全栈部署的基础 谷歌云平台是什么?Google云平台是由谷歌提供的一系列云服务,允许企业及开发者在一个安全和灵活的云环境中构建、部署和管理应用。它提供了各种计算、存储、数据库和网络服务,是适用于从小型到大型的应用程序的一站式平台。
为何选择 GCP 进行全栈部署?GCP 提供多种全栈应用部署的好处,包括:
- 可扩展性:自动扩展功能确保应用程序能应对波动的工作负载。
- 安全性:GCP 优先保障数据安全、合规性和符合监管要求。
- 内置服务:Cloud SQL、Firebase 和 App Engine 等服务简化了应用的管理。
- 集成:无缝集成到其他 Google 服务,增强功能性和扩展性。
在典型的全栈应用里,前端和后端以及数据库组件协同运作。前端(例如 React、Angular)这样的框架负责用户界面,而后端(例如 Node.js、Django)这样的后端技术处理业务逻辑并进行数据处理。
数据库(例如 MySQL、PostgreSQL)存储和检索应用程序数据。在 GCP 中部署这些组件,使它们能够在云环境中互动,确保性能优化和易于访问。
搭建您的 Google Cloud 环境要在Google云端平台上上线一个应用,你需要创建一个新的项目,设置权限,并准备好所需的工具。
试试创建一个 Google 云项目- 登录到 Google 云控制台。
- 从 项目选择器 中点击并选择 新建项目,并根据你的应用命名它,例如
fullstack-app
。 - 启用所需的 API,比如 App Engine API、Cloud SQL API 和 Cloud Storage。
- 将计费账户添加到项目中,以便可以访问 GCP 的资源。
- 根据需要为团队成员分配身份管理角色,确保每个人都有所需的权限。
- 在本地机器上下载并安装 Google Cloud SDK。
- 接着,使用以下命令来初始化 SDK:
运行以下命令来初始化 gcloud:gcloud init
(初始化 Google Cloud 命令行工具)。
- 根据提示登录,选择您的项目,并设置默认区域和可用区。
- 将默认的项目、地域和区设置为:
gcloud config set project PROJECT_ID
gcloud config set compute/region 地域
gcloud config set compute/zone 区
注:REGION
和 ZONE
分别指代计算区域和计算区,这些参数用于配置特定的资源位置。
全栈应用的后端可以使用(Google App Engine,一个无服务器平台)进行部署,它可以自动搞定扩展和负载均衡问题。
选择计算选项(例如App Engine)- GCP 提供多种部署方式,例如 Compute Engine、Kubernetes Engine 和 App Engine。App Engine 由于其简单且能自动扩容,非常适合小型项目。
- 组织你的后端代码,确保依赖项已列出(例如,对于 Node.js,可以在
package.json
中列出依赖项)。 - 在根目录下添加一个
app.yaml
文件以配置 App Engine。例如:
runtime: 运行时:nodejs16
env: 环境:标准
- 此文件定义了应用程序的运行环境。确保您的
app.yaml
与后端框架和使用的语言相匹配。
- 运行以下命令将后端应用部署到 App Engine。
gcloud app deploy # (用于部署应用的Google Cloud命令)
- 监控控制台中的日志,以确保部署成功。如果遇到问题,请查看日志中的错误信息,以排查故障。
部署前端需要配置你的代码库以适应前端部署,并选择在App Engine或Google Cloud Storage上托管它。
准备把前端代码部署上线- 确保你的前端已经准备好上线,通常通过运行构建命令(例如 React 的
npm run build
)来实现。 - 如果你的前端需要和后端通信,请配置 API 端点的环境变量,比如可以使用
.env
文件或类似的配置方法。
您可以从 Google Cloud Storage 中提供静态资源(例如:HTML、CSS、JavaScript),只需创建一个存储桶即可。
gsutil mb -l 地区 gs://你的存储桶名称
例如:gs://你的存储桶名称
- 将桶设置为公共以便网站前端可以访问:
gsutil iam ch allUsers:objectViewer gs://YOUR_BUCKET_NAME
此命令允许所有用户查看存储桶中的对象。
发布前端应用- 将前端文件上传到云端:
gsutil -m cp -r build/* gs://YOUR_BUCKET_NAME
请按照以下步骤使用此命令:将 build
文件夹中的所有内容复制到指定的 Google Cloud 存储桶中。请将 YOUR_BUCKET_NAME
替换为您的实际存储桶名称。
- 或者,如果通过App Engine来部署,将前端放在单独的文件夹里,然后像部署后端那样部署它。
像 Google Cloud SQL 这样的云托管 SQL 数据库非常适合用来管理你的应用的数据。
利用 Google Cloud SQL 管理数据库- 转到 Google 云控制台中的 SQL 部分,创建一个新的实例(选择 MySQL 或 PostgreSQL),并配置实例设置。
- 为您的应用创建一个新的数据库和用户账户。在实例连接设置中,记下连接名称。
- 将数据库连接信息添加到您的后端代码中,使用环境变量来存储敏感信息,比如数据库用户名和密码。
- 对于使用 Node.js 的情况,一个典型的连接示例如下:
例如:
// 创建一个数据库连接池对象
const { Pool } = require('pg');
const pool = new Pool({
user: process.env.DB_USER,
host: `/cloudsql/YOUR_INSTANCE_CONNECTION_NAME`,
database: process.env.DB_NAME,
password: process.env.DB_PASS,
port: 5432,
});
- 在将任何更改部署到App Engine之前,先在本地测试与App Engine的连接。
- 设置用户角色,并将IP地址加入白名单,以防外部访问数据库时出现问题。
- 如有必要,可启用SSL连接以增强安全性。
- 在你的前端代码中,将 API 端点 URL 地址更新为指向已部署的后端服务,并将其安全地存储在环境变量中。
- 使用像 Postman 這樣的工具來測試 API 端點,或在瀏覽器中加載前端以確保整個棧架正常工作。
- 確認數據的提取和提交到數據庫的功能正常,以確認所有組件已正確連接。
- 使用 Google Cloud Monitoring 跟踪应用指标,比如 CPU、内存和请求量。
- Google Cloud 日志 捕获所有已部署服务的日志,让排查问题更简单。
- 调整相应的前端和后端缩放设置,根据需要进行配置。App Engine 默认自动缩放,但您可以自定义这些缩放设置:
自动缩放:
最小实例: 1
最大实例: 10
- 对于数据库负载较重的情况,可以在 Cloud SQL 中启用读取副本来减轻读取负载。
在 Google 云平台上部署一个全栈应用程序为开发人员提供了一个可扩展、安全且高效的环境。按照此指南操作,你应该能够成功在 GCP 上部署并运行一个应用程序,并了解如何管理和扩展应用程序。GCP 提供了许多高级功能,因此你可以考虑探索更多工具和资源,进一步优化你的应用程序。
共同学习,写下你的评论
评论加载中...
作者其他优质文章