Desplegar en Google Cloud
Video Tutorial
Mira cómo desplegar OpenReplay en tu infraestructura de GCP
Si no te gusta leer, puedes seguir este tutorial en vídeo que te muestra cómo desplegar OpenReplay en GCP
El stack de OpenReplay se puede instalar en una sola máquina, y Google Cloud es un candidato ideal.
Lanzar una VM
Section titled Lanzar una VM- Ve al panel de ‘Compute Engine’ y selecciona ‘VM Instances’ en la barra de menú de la izquierda
- Haz clic en ‘Create Instance’
- Selecciona tu ‘region’ y ‘zone’ preferidas
- Elige el tipo de máquina. Las especificaciones mínimas son
2 vCPUs, 8 GB of RAM, 50 GB of storage, sobre una arquitectura x86, de lo contrario los servicios de backend de OpenReplay simplemente no se iniciarán. Por eso recomendamos al menos eln2-standard-2(o uno equivalente; ten en cuenta que se sabe que ele2-standard-2causa problemas durante el despliegue), que es suficiente para un volumen bajo/moderado. Si esperas mucho tráfico, deberías escalar a partir de aquí. - Cambia tu disco de arranque a Ubuntu 20.04 LTS o superior, luego elige SSD persistent disk como tipo de disco de arranque y establece el tamaño en 50 GB.
- Marca tanto ‘Allow HTTP traffic’ como ‘Allow HTTPS traffic’ en Firewall
- Haz clic en ‘Create’
Desplegar OpenReplay
Section titled Desplegar OpenReplayUna vez que tu instancia esté Running, conéctate a ella pulsando el botón SSH e instala OpenReplay proporcionando el dominio en el que se ejecutará (p. ej. 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
Configurar TLS/SSL
Section titled Configurar TLS/SSLOpenReplay maneja datos sensibles de los usuarios y, por lo tanto, requiere HTTPS para funcionar. Esto es obligatorio; de lo contrario, el tracker simplemente no comenzaría a grabar. Lo mismo ocurre con el panel: sin HTTPS no podrás reproducir las sesiones de los usuarios.
La forma más sencilla de gestionar SSL en Google Cloud es configurar un balanceador de carga (Google Load Balancing) y ejecutar OpenReplay detrás de él. Otra opción es generar o usar tu propio certificado SSL y apuntar tu subdominio (es decir, openreplay.mycompany.com) a la instancia de OpenReplay. A continuación se detallan ambas opciones.
Configurar el balanceador de carga de Google (opción 1)
Section titled Configurar el balanceador de carga de Google (opción 1)El primer paso es añadir un grupo de instancias, que se necesitará más adelante para el balanceador de carga:
- Ve a ‘Compute Engine’ > ‘Instance Groups’
- ‘Create Instance Group’ y selecciona New unmanaged instance group
- Elige tu ‘Location’ preferida, luego selecciona la ‘Network’ y elige la instancia de VM de OpenReplay
- Haz clic en ‘Create’
Ahora es el momento de crear el balanceador de carga:
- Ve a ‘Network Services’ > ‘Load Balancing’
- ‘Create Load Balancer’ y elige HTTP(S) Load Balancing
- Elige ‘From Internet to my VMs’ y luego haz clic en ‘Continue’
- Comienza con ‘Backend configuration’ y haz clic en ‘Backend services’ > ‘Create a backend service’
- Selecciona Instance group como ‘Backend type’. En ‘Backends’ > ‘New backend’, elige el grupo de instancias que creaste anteriormente, establece el puerto en
80y luego pulsa ‘Done’. - Desplázate hasta ‘Health Check’ y ‘Create a health check’. Elige HTTP en ‘Protocol’, establece el ‘Port’ en
80y luego cambia el ‘Request path’ a/healthz. Mantén los demás valores predeterminados y luego pulsa ‘Save’. - Haz clic en ‘Create’
- En ‘Frontend configuration’, elige HTTPS en ‘Protocol’ y luego, en ‘Certificate’, crea un nuevo certificado (gestionado por Google) o aporta el tuyo. Pulsa ‘Done’.
- Revisa y luego haz clic en ‘Create’
Una vez creado, ve a Cloud DNS (o a tu proveedor de servicios DNS) y crea un A Record que apunte al balanceador de carga usando su IP (que puedes encontrar en el panel de Load Balancing).
Por último, habilita el use-forwarded-headers descomentando la siguiente línea en la sección ingress-nginx, en /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
controller:
config:
use-forwarded-headers: true
Ya está todo listo. OpenReplay debería estar accesible de forma segura en el subdominio que acabas de configurar. Puedes crear una cuenta visitando la página /signup (es decir, openreplay.mycompany.com/signup).
Aportar/generar tu certificado SSL (opción 2)
Section titled Aportar/generar tu certificado SSL (opción 2)Como alternativa a crear un balanceador de carga, puedes aportar (o generar) tu propio certificado SSL.
-
Primero, ve a Cloud DNS (o a tu otro proveedor de servicios DNS) y crea un
A Record. Usa el dominio que proporcionaste anteriormente durante el paso de instalación y apúntalo a la VM usando su IP pública (que puedes encontrar en el panel de Compute Engine). -
Si vas a aportar tu propio certificado, crea un secreto SSL usando el siguiente comando:
kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".
Nota: Si no tienes un certificado, genera uno que se renueve automáticamente para tu subdominio (el proporcionado durante la instalación) usando Let’s Encrypt. Simplemente conéctate a la instancia de OpenReplay, ejecuta
cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.shy sigue los pasos.
- Si deseas habilitar la redirección de http a https (recomendado), descomenta el siguiente bloque, en la sección
ingress-nginx, en/var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
controller:
config:
ssl-redirect: true
force-ssl-redirect: true
Cabe mencionar que nuestro ingress-nginx se ejecuta por defecto en los puertos 80|443, pero esto se puede cambiar fácilmente, si es necesario, en vars.yaml:
ingress-nginx: &ingress-nginx
controller:
service:
ports:
http: 80
https: 443
- Por último, reinstala el NGINX de OpenReplay:
openreplay -R
Ya está todo listo. OpenReplay debería estar accesible en tu subdominio. Puedes crear una cuenta visitando la página /signup (es decir, openreplay.mycompany.com/signup).
¿Tienes preguntas?
Section titled ¿Tienes preguntas?Si encuentras algún problema, conéctate a nuestro Slack o consulta nuestro Foro y obtén ayuda de nuestra comunidad.