Развёртывание в Google Cloud

Пошаговое руководство по развёртыванию OpenReplay в Google Cloud.

Развёртывание в Google Cloud

Video Tutorial

Посмотрите, как развернуть OpenReplay в вашей инфраструктуре GCP

Если вы не любите читать, можете посмотреть это видеоруководство, в котором показано, как развернуть OpenReplay в GCP

Стек OpenReplay можно установить на одну машину, и Google Cloud является идеальным кандидатом.

Запуск виртуальной машины

Section titled Запуск виртуальной машины
  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. Установите оба флажка ‘Allow HTTP traffic’ и ‘Allow HTTPS traffic’ в разделе Firewall
  7. Нажмите ‘Create’

Развёртывание OpenReplay

Section titled Развёртывание OpenReplay

Как только ваш экземпляр перейдёт в состояние 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 для работы. Это обязательно, иначе трекер просто не начнёт запись. То же самое касается панели управления: без HTTPS вы не сможете воспроизводить пользовательские сессии.

Самый простой способ управлять SSL в Google Cloud — настроить балансировщик нагрузки (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. Выберите Instance group для ‘Backend type’. В разделе ‘Backends’ > ‘New backend’ выберите ранее созданную группу экземпляров, установите порт 80, затем нажмите ‘Done’.
  6. Прокрутите вниз до ‘Health Check’ и ‘Create a health check’. Выберите HTTP для ‘Protocol’, установите ‘Port’ на 80, затем измените ‘Request path’ на /healthz. Оставьте остальные значения по умолчанию, затем нажмите ‘Save’.
  7. Нажмите ‘Create’
  8. В ‘Frontend configuration’ выберите HTTPS для ‘Protocol’, затем в ‘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-секрет с помощью следующей команды: 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 (рекомендуется), раскомментируйте приведённый ниже блок в разделе ingress-nginx в /var/lib/openreplay/vars.yaml:
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. Наконец, переустановите NGINX OpenReplay:
openreplay -R

Теперь всё готово: OpenReplay должен быть доступен на вашем поддомене. Вы можете создать учётную запись, посетив страницу /signup (т. е. openreplay.mycompany.com/signup).

Если вы столкнётесь с какими-либо проблемами, присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.