为了账号安全,请及时绑定邮箱和手机立即绑定

在Google云平台上部署全栈应用:一步一步教你怎么做

完整指南:全面且安全的应用托管服务

随着云计算的迅速增长,部署全栈应用到云已成为开发者优先选择的方法,以确保应用的可扩展性、安全性和易访问性。

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 云项目
  1. 登录到 Google 云控制台。
  2. 项目选择器 中点击并选择 新建项目,并根据你的应用命名它,例如 fullstack-app
  3. 启用所需的 API,比如 App Engine APICloud SQL APICloud Storage
设置:账单及权限
  • 将计费账户添加到项目中,以便可以访问 GCP 的资源。
  • 根据需要为团队成员分配身份管理角色,确保每个人都有所需的权限。
安装 Google 云端 SDK
  • 在本地机器上下载并安装 Google Cloud SDK。
  • 接着,使用以下命令来初始化 SDK:

运行以下命令来初始化 gcloud:gcloud init (初始化 Google Cloud 命令行工具)。

  • 根据提示登录,选择您的项目,并设置默认区域和可用区。
配置 gcloud CLI 以用于项目中的操作
  • 将默认的项目、地域和区设置为:
    gcloud config set project PROJECT_ID  
    gcloud config set compute/region 地域  
    gcloud config set compute/zone 区

注:REGIONZONE 分别指代计算区域和计算区,这些参数用于配置特定的资源位置。

部署后台

全栈应用的后端可以使用(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 或 App Engine 的静态文件服务提供静态文件

您可以从 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),并配置实例设置。
  • 为您的应用创建一个新的数据库和用户账户。在实例连接设置中,记下连接名称。
配置后端以连接到云SQL实例
  • 将数据库连接信息添加到您的后端代码中,使用环境变量来存储敏感信息,比如数据库用户名和密码。
  • 对于使用 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 端点和环境变量设置
  • 在你的前端代码中,将 API 端点 URL 地址更新为指向已部署的后端服务,并将其安全地存储在环境变量中。
测试全栈应用程序
  • 使用像 Postman 這樣的工具來測試 API 端點,或在瀏覽器中加載前端以確保整個棧架正常工作。
  • 確認數據的提取和提交到數據庫的功能正常,以確認所有組件已正確連接。
监控和管理你的应用的规模
设置监控和日志
  • 使用 Google Cloud Monitoring 跟踪应用指标,比如 CPU、内存和请求量。
  • Google Cloud 日志 捕获所有已部署服务的日志,让排查问题更简单。
扩展应用程序
  • 调整相应的前端和后端缩放设置,根据需要进行配置。App Engine 默认自动缩放,但您可以自定义这些缩放设置:
    自动缩放:  
      最小实例: 1  
      最大实例: 10
  • 对于数据库负载较重的情况,可以在 Cloud SQL 中启用读取副本来减轻读取负载。
最后的总结

在 Google 云平台上部署一个全栈应用程序为开发人员提供了一个可扩展、安全且高效的环境。按照此指南操作,你应该能够成功在 GCP 上部署并运行一个应用程序,并了解如何管理和扩展应用程序。GCP 提供了许多高级功能,因此你可以考虑探索更多工具和资源,进一步优化你的应用程序。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消