Déployer sur Google Cloud

Guide étape par étape pour déployer OpenReplay sur Google Cloud.

Déployer sur Google Cloud

Video Tutorial

Découvrez comment déployer OpenReplay dans votre infrastructure GCP

Si vous n'aimez pas lire, vous pouvez suivre ce tutoriel vidéo qui vous montre comment déployer OpenReplay sur GCP

La pile OpenReplay peut être installée sur une seule machine et Google Cloud est un candidat idéal.

  1. Allez dans le tableau de bord ‘Compute Engine’ et sélectionnez ‘VM Instances’ dans la barre de menu de gauche
  2. Cliquez sur ‘Create Instance’
  3. Sélectionnez vos ‘region’ et ‘zone’ préférées
  4. Choisissez votre type de machine. Les spécifications minimales sont 2 vCPUs, 8 GB of RAM, 50 GB of storage, sinon les services backend d’OpenReplay ne démarreront tout simplement pas. C’est pourquoi nous recommandons au moins le n2-standard-2 (ou un équivalent ; notez que le e2-standard-2 est connu pour poser des problèmes lors du déploiement), ce qui suffit pour un volume faible/modéré. Si vous prévoyez un trafic élevé, vous devriez monter en gamme à partir de là.
  5. Changez votre disque de démarrage en Ubuntu 20.04 LTS ou plus récent, puis choisissez SSD persistent disk comme type de disque de démarrage et définissez la taille à 50 GB.
  6. Cochez à la fois ‘Allow HTTP traffic’ et ‘Allow HTTPS traffic’ dans Firewall
  7. Cliquez sur ‘Create’

Une fois que votre instance est Running, connectez-vous à celle-ci en cliquant sur le bouton SSH puis installez OpenReplay en fournissant le domaine sur lequel elle s’exécutera (par exemple 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 traite des données utilisateur sensibles et nécessite donc HTTPS pour fonctionner. C’est obligatoire, sinon le tracker ne commencerait tout simplement pas à enregistrer. Il en va de même pour le tableau de bord : sans HTTPS, vous ne pourrez pas rejouer les sessions des utilisateurs.

La façon la plus simple de gérer le SSL dans Google Cloud est de configurer un équilibreur de charge (Google Load Balancing) et d’exécuter OpenReplay derrière celui-ci. Une autre option consiste à générer ou à utiliser votre propre certificat SSL et à faire pointer votre sous-domaine (c’est-à-dire openreplay.mycompany.com) vers l’instance OpenReplay. Plus de détails sur les deux options ci-dessous.

Configurer l’équilibreur de charge Google (option 1)

Section titled Configurer l’équilibreur de charge Google (option 1)

La première étape consiste à ajouter un groupe d’instances, qui sera nécessaire plus tard pour l’équilibreur de charge :

  1. Allez dans ‘Compute Engine’ > ‘Instance Groups’
  2. ‘Create Instance Group’ et sélectionnez New unmanaged instance group
  3. Choisissez votre ‘Location’ préférée, puis sélectionnez le ‘Network’ et choisissez l’instance de VM OpenReplay
  4. Cliquez sur ‘Create’

Il est maintenant temps de créer l’équilibreur de charge :

  1. Allez dans ‘Network Services’ > ‘Load Balancing’
  2. ‘Create Load Balancer’ et choisissez HTTP(S) Load Balancing
  3. Choisissez ‘From Internet to my VMs’ puis cliquez sur ‘Continue’
  4. Commencez par ‘Backend configuration’ et cliquez sur ‘Backend services’ > ‘Create a backend service’
  5. Sélectionnez Instance group pour ‘Backend type’. Dans ‘Backends’ > ‘New backend’, choisissez le groupe d’instances que vous avez créé précédemment, définissez le port sur 80 puis cliquez sur ‘Done’.
  6. Faites défiler jusqu’à ‘Health Check’ et ‘Create a health check’. Choisissez HTTP pour le ‘Protocol’, définissez le ‘Port’ sur 80 puis changez le ‘Request path’ en /healthz. Conservez les autres valeurs par défaut, puis cliquez sur ‘Save’.
  7. Cliquez sur ‘Create’
  8. Dans ‘Frontend configuration’, choisissez HTTPS pour ‘Protocol’ puis, dans ‘Certificate’, créez un nouveau certificat (géré par Google) ou apportez le vôtre. Cliquez sur ‘Done’.
  9. Vérifiez puis cliquez sur ‘Create’

Une fois créé, allez dans Cloud DNS (ou votre fournisseur de service DNS) et créez un A Record qui pointe vers l’équilibreur de charge en utilisant son IP (que vous trouverez dans le tableau de bord Load Balancing).

Enfin, activez le use-forwarded-headers en décommentant la ligne ci-dessous sous la section ingress-nginx, dans /var/lib/openreplay/vars.yaml :

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

Tout est maintenant prêt, OpenReplay devrait être accessible de manière sécurisée sur le sous-domaine que vous venez de configurer. Vous pouvez créer un compte en visitant la page /signup (c’est-à-dire openreplay.mycompany.com/signup).

Apporter/générer votre certificat SSL (option 2)

Section titled Apporter/générer votre certificat SSL (option 2)

Comme alternative à la création d’un équilibreur de charge, vous pouvez apporter (ou générer) votre propre certificat SSL.

  1. Tout d’abord, allez dans Cloud DNS (ou votre autre fournisseur de service DNS) et créez un A Record. Utilisez le domaine que vous avez fourni précédemment lors de l’étape d’installation et faites-le pointer vers la VM en utilisant son IP publique (que vous trouverez dans le tableau de bord Compute Engine).

  2. Si vous apportez votre propre certificat, créez un secret SSL à l’aide de la commande suivante : kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Remarque : Si vous n’avez pas de certificat, générez-en un, qui se renouvelle automatiquement, pour votre sous-domaine (celui fourni lors de l’installation) en utilisant Let’s Encrypt. Connectez-vous simplement à l’instance OpenReplay, exécutez cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh et suivez les étapes.

  1. Si vous souhaitez activer la redirection de http vers https (recommandé), décommentez le bloc ci-dessous, sous la section ingress-nginx, dans /var/lib/openreplay/vars.yaml :
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Il convient de mentionner que notre ingress-nginx s’exécute par défaut sur les ports 80|443, mais cela peut être facilement modifié, si nécessaire, dans vars.yaml :

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Enfin, réinstallez le NGINX d’OpenReplay :
openreplay -R

Tout est maintenant prêt, OpenReplay devrait être accessible sur votre sous-domaine. Vous pouvez créer un compte en visitant la page /signup (c’est-à-dire openreplay.mycompany.com/signup).

Si vous rencontrez des problèmes, rejoignez notre Slack ou consultez notre Forum et obtenez de l’aide auprès de notre communauté.