部署到 Google Cloud

在 Google Cloud 上部署 OpenReplay 的分步指南。

部署到 Google Cloud

Video Tutorial

观看如何在你的 GCP 基础设施中部署 OpenReplay

如果你不喜欢阅读,可以观看这个视频教程,它会向你展示如何在 GCP 中部署 OpenReplay

OpenReplay 技术栈可以安装在单台机器上,而 Google Cloud 是一个理想的选择。

  1. 进入 ‘Compute Engine’ 控制台,并在左侧菜单栏中选择 ‘VM Instances’
  2. 点击 ‘Create Instance’
  3. 选择你偏好的 ‘region’ 和 ‘zone’
  4. 选择你的机器类型。最低配置要求为 2 vCPUs, 8 GB of RAM, 50 GB of storage,并基于 x86 架构,否则 OpenReplay 后端服务根本无法启动。因此,我们建议至少使用 n2-standard-2(或同等配置——请注意,已知 e2-standard-2 在部署期间会出现问题),它足以应对低/中等流量。如果你预期会有高流量,则应在此基础上进行扩展。
  5. 将你的启动盘更改为 Ubuntu 24.04 LTS 或更高版本,然后选择 SSD persistent disk 作为启动盘类型,并将大小设置为 50 GB。
  6. 在 Firewall 中同时勾选 ‘Allow HTTP traffic’ 和 ‘Allow HTTPS traffic’
  7. 点击 ‘Create’

当你的实例处于 Running 状态后,点击 SSH 按钮连接到该实例,然后通过提供其将运行的域名来安装 OpenReplay(例如 DOMAIN_NAME=openreplay.mycompany.com):

sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

OpenReplay 处理敏感的用户数据,因此需要 HTTPS 才能运行。这是强制性的,否则 tracker 根本不会开始录制。dashboard 也是如此,没有 HTTPS,你将无法回放用户会话。

在 Google Cloud 中处理 SSL 最简单的方法是设置一个负载均衡器(Google Load Balancing),并让 OpenReplay 在其后面运行。另一种选择是生成或使用你自己的 SSL 证书,并将你的子域名(即 openreplay.mycompany.com)指向 OpenReplay 实例。以下将详细介绍这两种选择。

设置 Google 负载均衡器(选项 1)

Section titled 设置 Google 负载均衡器(选项 1)

第一步是添加一个实例组,稍后负载均衡器会需要它:

  1. 进入 ‘Compute Engine’ > ‘Instance Groups’
  2. ‘Create Instance Group’ 并选择 New unmanaged instance group
  3. 选择你偏好的 ‘Location’,然后选择 ‘Network’ 并选择 OpenReplay 虚拟机实例
  4. 点击 ‘Create’

现在该创建负载均衡器了:

  1. 进入 ‘Network Services’ > ‘Load Balancing’
  2. ‘Create Load Balancer’ 并选择 HTTP(S) Load Balancing
  3. 选择 ‘From Internet to my VMs’,然后点击 ‘Continue’
  4. 从 ‘Backend configuration’ 开始,点击 ‘Backend services’ > ‘Create a backend service’
  5. 为 ‘Backend type’ 选择 Instance group。在 ‘Backends’ > ‘New backend’ 中,选择你之前创建的实例组,将端口设置为 80,然后点击 ‘Done’。
  6. 向下滚动到 ‘Health Check’ 并 ‘Create a health check’。为 ‘Protocol’ 选择 HTTP,将 ‘Port’ 设置为 80,然后将 ‘Request path’ 更改为 /healthz。保留其他默认值,然后点击 ‘Save’。
  7. 点击 ‘Create’
  8. 在 ‘Frontend configuration’ 中,为 ‘Protocol’ 选择 HTTPS,然后在 ‘Certificate’ 中创建一个新证书(由 Google 管理)或使用你自己的证书。点击 ‘Done’。
  9. 检查后点击 ‘Create’

创建完成后,进入 Cloud DNS(或你的 DNS 服务提供商),并创建一条 A Record,使用负载均衡器的 IP(可在 Load Balancing 控制台中找到)指向它。

现在一切就绪,OpenReplay 应该可以在你刚刚设置的子域名上安全访问。你可以通过访问 /signup 页面(即 openreplay.mycompany.com/signup)来创建账户。

提供/生成你的 SSL 证书(选项 2)

Section titled 提供/生成你的 SSL 证书(选项 2)

作为创建负载均衡器的替代方案,你可以提供(或生成)你自己的 SSL 证书。

  1. 首先,进入 Cloud DNS(或你的其他 DNS 服务提供商),并创建一条 A Record。使用你之前在安装步骤中提供的域名,并使用虚拟机的公网 IP(可在 Compute Engine 控制台中找到)将其指向该虚拟机。

  2. 如果你要提供自己的证书,请使用以下命令创建一个 SSL secret:kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt"

注意: 如果你没有证书,请使用 Let’s Encrypt 为你的子域名(安装期间提供的那个)生成一个可自动续期的证书。只需连接到 OpenReplay 实例,运行 cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh 并按照步骤操作即可。

  1. 如果你希望启用 http 到 https 的重定向(推荐),请取消注释 /var/lib/openreplay/vars.yamlingress-nginx 部分下的以下代码块:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

值得一提的是,我们的 ingress-nginx 默认运行在 80|443 端口上,但如有需要,可以在 vars.yaml 中轻松更改:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. 最后,重新安装 OpenReplay NGINX:
openreplay -R

现在一切就绪,OpenReplay 应该可以在你的子域名上访问。你可以通过访问 /signup 页面(即 openreplay.mycompany.com/signup)来创建账户。

如果你遇到任何问题,请加入我们的 Slack 或查看我们的论坛,从我们的社区获得帮助。