Passer au contenu principal
Kameleoon utilise généralement un modèle Software as a Service (SaaS). Dans ce modèle, Kameleoon héberge les données clients (telles que les expériences, personnalisations et comptes) sur une plateforme commune. Kameleoon utilise environ 150 serveurs physiques (au 2023) pour prendre en charge les fonctionnalités, y compris l’hébergement de scripts, la collecte de données, le stockage et les rapports analytiques. Kameleoon partage les données sur des serveurs communs pour tous les clients et maintient une séparation logique entre les données clients. Le code de l’application implémente des restrictions pour empêcher les clients d’accéder aux données d’autres clients. Kameleoon regroupe les clients en clusters en fonction de leur emplacement géographique (pays). Par exemple, les clients français partagent des données au sein du cluster de données français, tandis que les clients allemands partagent des données au sein des clusters allemands. Kameleoon héberge toujours physiquement le cluster d’un pays dans un centre de données sur le sol de ce pays afin d’assurer la confidentialité des données et la conformité avec les lois régionales sur la confidentialité. Même dans le modèle SaaS par défaut, Kameleoon héberge les données collectées sur votre site web dans votre pays et respecte les lois locales. Les clients choisissent généralement l’auto-hébergement ou le mode on-premises pour des raisons de performance, de confidentialité des données ou de sécurité. Kameleoon prend entièrement en charge le modèle on-premises et propose trois options d’auto-hébergement. La première option vous permet d’héberger le fichier d’application Kameleoon critique (et éventuellement les ressources publiques telles que les images) sur vos propres serveurs ou CDN. Cette option nécessite 2 à 3 jours de mise en place. La deuxième option nécessite la mise en place d’un cluster de stockage de données dédié et prend 1 à 2 semaines. La troisième option fournit une configuration on-premises complète où vous hébergez absolument tout sur des serveurs dédiés. Cette configuration prend généralement 1 à 2 mois.

Auto-hébergement du fichier d’application et des ressources publiques

L’option on-premises la plus simple vous permet d’auto-héberger le fichier d’application. Vous pouvez héberger en toute sécurité le fichier d’application Kameleoon sur le CDN Kameleoon (par défaut, configuration SaaS) ou sur vos propres serveurs ou CDN. Définissez l’option de configuration dans le back-office Kameleoon dans la section de configuration du site web. Vous pouvez choisir parmi trois valeurs : pas d’auto-hébergement, auto-hébergement uniquement du fichier d’application, auto-hébergement uniquement des ressources publiques, ou auto-hébergement complet (à la fois fichier d’application et images). Consultez les guides pour l’auto-hébergement avec Cloudflare CDN ou Fastly CDN.
En plus de choisir la bonne option d’auto-hébergement, fournissez l’URL d’hébergement prévue dans le champ texte. Kameleoon utilise cette URL pour générer un script d’installation correct et pour auto-héberger les images (voir les détails ci-dessous).

Auto-hébergement du fichier d’application

Héberger le fichier d’application Kameleoon sur vos propres serveurs peut fournir un léger gain de performance en supprimant la requête DNS et la poignée SSL supplémentaires requises par le CDN Kameleoon. Vous pouvez également choisir l’auto-hébergement pour des raisons de sécurité. Si vous servez le fichier d’application depuis vos propres serveurs, vous pouvez garantir la conformité avec les politiques de sécurité internes et gérer directement la sécurité des serveurs d’hébergement. Pour auto-héberger le fichier d’application Kameleoon, suivez ces deux étapes :
  1. Fournissez l’URL d’hébergement du fichier d’application dans le tag d’installation. Cela donne un tag d’installation légèrement modifié par rapport aux tags par défaut.
Par exemple, si vous utilisez la méthode Chargement asynchrone avec anti-flicker, le fichier d’application Kameleoon est par défaut sur //SITE_CODE.kameleoon.io/engine.js. Modifiez cette URL dans le tag d’installation pour la remplacer par votre propre URL (par exemple, https://www.customerdomain.com/resources/scripts/engine.js).
  1. Implémentez la synchronisation entre le fichier sur vos serveurs ou CDN et le fichier d’origine généré par la plateforme Kameleoon. Cette étape est obligatoire car le fichier d’application est dynamique ; son contenu change chaque fois que le statut d’une expérience ou personnalisation change sur la plateforme ou lorsque vous modifiez la configuration.
La méthode de synchronisation appropriée dépend de votre configuration. Les CDN fournissent leurs propres interfaces pour cette configuration. Pour l’hébergement web standard sur des serveurs HTTP comme nginx ou Apache, utilisez une simple tâche cron qui exécute une commande wget pour récupérer le fichier. Exécutez cette tâche toutes les 5 minutes. Une fois ces étapes terminées, vous pouvez utiliser la plateforme Kameleoon avec un fichier d’application auto-hébergé.
Vous pouvez obtenir un hash du contenu du fichier d’origine via l’API d’automatisation. Utilisez-le pour vérifier que le fichier copié correspond à l’original ou pour déclencher la synchronisation uniquement lorsque le contenu change.
L’exemple suivant fournit un tag d’installation prêt à l’emploi et des commandes de synchronisation.

Exemple : Instructions pour l’auto-hébergement du fichier d’application Kameleoon

<script type="text/javascript">
  // Duration in milliseconds to wait while the Kameleoon application file is loaded
  var kameleoonLoadingTimeout = 750;

  var kameleoonQueue = kameleoonQueue || [];
  var kameleoonStartLoadTime = Date.now();
  if (! document.getElementById("kameleoonLoadingStyleSheet") && ! window.kameleoonDisplayPageTimeOut)
  {
    var kameleoonS = document.getElementsByTagName("script")[0];
    var kameleoonCc = "html::after { content: ''; position: fixed; inset: 0; background: #fff; z-index: 2147483647; }";
    var kameleoonStn = document.createElement("style");
    kameleoonStn.type = "text/css";
    kameleoonStn.id = "kameleoonLoadingStyleSheet";
    if (kameleoonStn.styleSheet)
    {
      kameleoonStn.styleSheet.cssText = kameleoonCc;
    }
    else
    {
      kameleoonS.appendChild(document.createTextNode(kameleoonCc));
    }
    kameleoonS.parentNode.insertBefore(kameleoonStn, kameleoonS);
    window.kameleoonDisplayPage = function(fromEngine)
    {
      if (!fromEngine)
      {
        window.kameleoonTimeout = true;
      }
      if (kameleoonStn.parentNode)
      {
        kameleoonStn.parentNode.removeChild(kameleoonStn);
      }
    };
    window.kameleoonDisplayPageTimeOut = window.setTimeout(window.kameleoonDisplayPage, kameleoonLoadingTimeout);
  }
</script>
<script type="text/javascript" src="//www.customerdomain.com/resources/scripts/engine.js" async="true"></script>
Dans le snippet ci-dessus, la source du script utilise l’URL du client : //www.customerdomain.com/resources/scripts/engine.js. Vous trouverez ci-dessous des exemples de commandes de synchronisation.
# wget command

wget https://SITE_CODE.kameleoon.io/engine.js -O /var/www/html/resources/scripts/engine.js -T 30 -t 3

# cron entry

*/5 * * * * wget https://SITE_CODE.kameleoon.io/engine.js -O /var/www/html/resources/scripts/engine.js -T 30 -t 3
Les domaines des scripts Kameleoon varient selon le projet. Les projets utilisent soit kameleoon.eu soit kameleoon.io selon leur date de création. Utilisez le domaine affiché dans l’application Kameleoon pour votre projet.
Si vous utilisez les données de session unifiées entre sous-domaines, vous devez également auto-héberger un iFrame statique supplémentaire (https://www.customerdomain.com/path/to/kameleoon-iframe.html). Consultez la documentation Unifier les données de session entre sous-domaines pour plus de détails.

Auto-hébergement des images

Vous pouvez également auto-héberger les images téléchargées via la plateforme Kameleoon. Si vous choisissez cette option et fournissez une URL d’image, les URL générées pour les images téléchargées utilisent votre serveur ou CDN. Le chemin URL standard pour les images téléchargées est SITE_CODE.kameleoon.io/images/. Le CDN de Kameleoon sert ces ressources. Si vous spécifiez un chemin différent, tel que https://server.mydomain.com/path/resources/images/, vous devez configurer votre CDN pour réécrire /path/resources/images/ en /images/. Si vous n’avez pas besoin d’un chemin spécifique, utilisez le chemin standard : https://server.mydomain.com/images/. Vous devez également utiliser un mécanisme de synchronisation pour l’auto-hébergement des images. Ce processus est plus complexe que la synchronisation d’un seul fichier car vous devez prendre en compte plusieurs fichiers et vous ne pouvez pas connaître à l’avance les noms et URL exacts des images téléchargées. N’utilisez l’auto-hébergement d’images que via un CDN qui fournit un mécanisme de réplication intégré. Pointez votre CDN pour servir les ressources depuis l’URL d’origine SITE_CODE.kameleoon.io/images/.
Les domaines des scripts Kameleoon varient selon le projet. Les projets utilisent soit kameleoon.eu soit kameleoon.io selon leur date de création. Utilisez le domaine affiché dans l’application Kameleoon pour votre projet.

Clusters dédiés pour le stockage des données

Un cluster séparé pour le stockage des données sépare physiquement les données collectées pour les visiteurs sur votre site web des autres utilisateurs Kameleoon. Ces données résident sur des serveurs dédiés et séparés, et offrent les avantages suivants :
  • Sécurité : La séparation physique offre un niveau de sécurité plus élevé que la séparation logique.
  • Performance : Les serveurs dédiés garantissent une vitesse optimale pour le stockage et les opérations.
  • Accès aux données brutes : Kameleoon autorise un accès de bas niveau aux bases de données sous-jacentes (principalement ClickHouse), permettant à vos data scientists d’exécuter des requêtes personnalisées.
La mise en place d’un cluster de stockage de données dédié nécessite l’installation de plusieurs systèmes de bases de données open source. Kameleoon utilise quatre technologies principales : Kafka, HDFS et ClickHouse (obligatoires), et Cassandra (selon votre utilisation du module).
  1. Kafka (obligatoire) : Les producteurs envoient tous les événements de collecte de données aux topics Kafka, les rendant disponibles aux applications ETL.
  2. Hadoop File System (obligatoire) : Kameleoon stocke tous les événements de collecte de données dans HDFS. Kameleoon reconstruit les visites à partir de ces données brutes pour les utiliser dans d’autres bases de données scalables. HDFS sert de datastore principal et de source de vérité.
  3. ClickHouse (obligatoire) : ClickHouse est le moteur OLAP que Kameleoon utilise pour créer des rapports analytiques. Vous pouvez exécuter des requêtes personnalisées pour des analyses avancées.
  4. Cassandra (requis pour la personnalisation ou la réconciliation cross-device) : Kameleoon utilise Cassandra pour les modèles d’apprentissage automatique et la réconciliation cross-device de l’historique.
Des ingénieurs Kameleoon expérimentés effectuent généralement la configuration et le paramétrage des serveurs. Kameleoon peut effectuer ces opérations sur votre centre de données (serveurs que vous possédez et exploitez) ou sur les centres de données de Kameleoon.
Examinez les exigences de serveur pour le cluster de données dédié.
Les serveurs doivent être des serveurs physiques bare metal. Kameleoon ne prend actuellement pas en charge les serveurs virtualisés.
ComposantVersionServeurs minimauxServeurs optimauxRAM recommandéeType de stockageRemarques
Kafka2.3.12232 GoDisques mécaniques (8 To+)Confluent v5.3.1
HDFS2.9.12232 GoDisques mécaniques (8 To+)Nécessite 2 serveurs pour la réplication
ClickHouse22.3.31264 GoSSD recommandé
Cassandra4.0.11232 GoSSD obligatoire
Kameleoon recommande la dernière distribution Rocky Linux pour tous les composants.
Pour l’A/B test uniquement, utilisez une configuration minimale de 5 serveurs (6 recommandés). Pour la personnalisation, utilisez une configuration minimale de 6 serveurs (8 recommandés).

Modèle on-premises complet (back-office séparé, cluster de stockage de données et hébergement du fichier d’application)

Dans ce scénario, vous hébergez tous les composants et fonctionnalités de la plateforme Kameleoon sur votre écosystème informatique. Cela vous permet d’implémenter des politiques de sécurité personnalisées, telles que la restriction de l’accès aux postes de travail d’entreprise via VPN. L’application Back-Office s’exécute sur un serveur Tomcat JEE et utilise plusieurs applications Java autonomes qui communiquent via ActiveMQ. Kameleoon utilise MySQL comme base de données relationnelle pour le back-office et nginx comme serveur HTTP haute performance pour collecter les événements de données des navigateurs. Examinez les exigences de serveur pour le pipeline de données dédié et le back-office :
ComposantVersionServeurs minimauxServeurs optimauxRAM recommandéeType de stockageRemarques
JDK/Tomcat/ActiveMQ1.8/8.0.47/5.14.51132 GoSSD recommandéLes applications Java autonomes sont colocalisées
MySQL8.0.211132 GoSSD recommandé
nginx1.20.11232 GoDisques mécaniquesInclut une application Java propriétaire d’analyse de logs
Kameleoon recommande la dernière distribution Rocky Linux pour tous les composants. Kameleoon fournit l’application Back-office sous forme de fichier WAR et les autres modules sous forme de fichiers JAR.
Vous pouvez colocaliser le serveur MySQL avec le serveur Tomcat JEE, mais Kameleoon recommande d’éviter la colocalisation sauf indication contraire, pour des raisons de sécurité et de performance.
Pour l’A/B test, utilisez une configuration minimale de 9 serveurs (11 recommandés). Pour la personnalisation, utilisez une configuration minimale de 10 serveurs (13 recommandés). Calculez ces nombres en additionnant les tableaux et en ajoutant un serveur pour l’hébergement du fichier d’application (en soustrayant un si vous utilisez un CDN).