Развёртывание в 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 20.04 LTS или выше, затем выберите SSD persistent disk в качестве типа загрузочного диска и установите размер 50 ГБ.
  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).

Наконец, включите use-forwarded-headers, раскомментировав приведённую ниже строку в разделе ingress-nginx в файле /var/lib/openreplay/vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    config:
      use-forwarded-headers: true

Теперь всё готово. 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 или загляните на наш Форум и получите помощь от нашего сообщества.