Zum Hauptinhalt springen
Kameleoon verwendet typischerweise ein Software-as-a-Service-(SaaS)-Modell. In diesem Modell hostet Kameleoon Kundendaten (wie Experimente, Personalisierungen und Konten) auf einer gemeinsamen Plattform. Kameleoon verwendet (Stand 2023) etwa 150 physische Server zur Unterstuetzung funktionaler Features, darunter Skript-Hosting, Datenerhebung, Speicherung und Analyseberichte. Kameleoon teilt Daten auf gemeinsamen Servern fuer alle Kunden und wahrt eine logische Trennung zwischen den Kundendaten. Der Anwendungscode implementiert Einschraenkungen, um zu verhindern, dass Kunden auf die Daten anderer Kunden zugreifen. Kameleoon gruppiert Kunden basierend auf ihrem geografischen Standort (Land) in Cluster. Beispielsweise teilen sich franzoesische Kunden Daten im franzoesischen Datencluster, waehrend deutsche Kunden Daten in den deutschen Clustern teilen. Kameleoon hostet den Cluster eines Landes immer physisch in einem Rechenzentrum auf dem Boden dieses Landes, um die Vertraulichkeit der Daten und die Einhaltung regionaler Datenschutzgesetze zu gewaehrleisten. Auch im standardmaessigen SaaS-Modell hostet Kameleoon die auf Ihrer Website gesammelten Daten in Ihrem Land und befolgt lokale Gesetze. Kunden waehlen Selbst-Hosting oder den On-Premises-Modus in der Regel aus Gruenden der Leistung, Datenvertraulichkeit oder Sicherheit. Kameleoon unterstuetzt das On-Premises-Modell vollstaendig und bietet drei Selbst-Hosting-Optionen an. Die erste Option ermoeglicht es Ihnen, die kritische Kameleoon-Anwendungsdatei zu hosten (und optional oeffentliche Ressourcen wie Bilder) auf Ihren eigenen Servern oder CDN. Diese Option erfordert 2-3 Tage zur Einrichtung. Die zweite Option erfordert das Einrichten eines dedizierten Datenspeicher-Clusters und dauert 1-2 Wochen. Die dritte Option bietet eine vollstaendige On-Premises-Konfiguration, bei der Sie absolut alles auf dedizierten Servern hosten. Diese Einrichtung dauert typischerweise 1-2 Monate.

Selbst-Hosting der Anwendungsdatei und oeffentlicher Ressourcen

Die einfachste On-Premises-Option ermoeglicht es Ihnen, die Anwendungsdatei selbst zu hosten. Sie koennen die Kameleoon-Anwendungsdatei sicher auf dem Kameleoon-CDN (Standard, SaaS-Einrichtung) oder auf Ihren eigenen Servern oder CDN hosten. Stellen Sie die Konfigurationsoption im Kameleoon-Backoffice im Bereich Website-Einrichtung ein. Sie koennen aus drei Werten waehlen: kein Selbst-Hosting, nur die Anwendungsdatei selbst hosten, nur oeffentliche Ressourcen selbst hosten oder vollstaendiges Selbst-Hosting (sowohl Anwendungsdatei als auch Bilder). Lesen Sie die Leitfaeden zum Selbst-Hosting mit Cloudflare CDN oder Fastly CDN.
Geben Sie zusaetzlich zur Auswahl der richtigen Selbst-Hosting-Option die geplante Hosting-URL im Textfeld an. Kameleoon verwendet diese URL, um ein korrektes Installations-Skript zu erzeugen und Bilder selbst zu hosten (siehe Details unten).

Selbst-Hosting der Anwendungsdatei

Das Hosten der Kameleoon-Anwendungsdatei auf Ihren eigenen Servern kann einen kleinen Leistungsschub bieten, indem die zusaetzliche DNS-Abfrage und der SSL-Handshake entfallen, die das Kameleoon-CDN erfordert. Sie koennen sich auch aus Sicherheitsgruenden fuer das Selbst-Hosting entscheiden. Wenn Sie die Anwendungsdatei von Ihren eigenen Servern bereitstellen, koennen Sie die Einhaltung interner Sicherheitsrichtlinien sicherstellen und die Sicherheit der Hosting-Server direkt verwalten. Um die Kameleoon-Anwendungsdatei selbst zu hosten, befolgen Sie diese beiden Schritte:
  1. Geben Sie die Hosting-URL fuer die Anwendungsdatei im Installations-Tag an. Dies fuehrt zu einem leicht modifizierten Installations-Tag im Vergleich zu den Standard-Tags.
Wenn Sie beispielsweise die Methode Asynchrones Laden mit Anti-Flicker verwenden, ist die Kameleoon-Anwendungsdatei standardmaessig auf //SITE_CODE.kameleoon.io/engine.js. Aendern Sie diese URL im Installations-Tag in Ihre eigene URL (z. B. https://www.customerdomain.com/resources/scripts/engine.js).
  1. Implementieren Sie eine Synchronisation zwischen der Datei auf Ihren Servern oder Ihrem CDN und der Originaldatei, die von der Kameleoon-Plattform generiert wird. Dieser Schritt ist obligatorisch, da die Anwendungsdatei dynamisch ist; ihr Inhalt aendert sich jedes Mal, wenn sich der Status eines Experiments oder einer Personalisierung auf der Plattform aendert oder wenn Sie die Konfiguration aendern.
Die geeignete Synchronisationsmethode haengt von Ihrer Einrichtung ab. CDNs bieten eigene Schnittstellen fuer diese Konfiguration. Verwenden Sie fuer Standard-Webhosting auf HTTP-Servern wie nginx oder Apache einen einfachen Cron-Job, der einen wget-Befehl zum Abrufen der Datei ausfuehrt. Fuehren Sie diesen Job alle 5 Minuten aus. Sobald Sie diese Schritte abgeschlossen haben, koennen Sie die Kameleoon-Plattform mit einer selbst gehosteten Anwendungsdatei verwenden.
Sie koennen einen Hash des Inhalts der Originaldatei ueber die Automation API abrufen. Verwenden Sie dies, um zu pruefen, ob die kopierte Datei mit dem Original uebereinstimmt, oder um die Synchronisation nur dann auszuloesen, wenn sich der Inhalt aendert.
Das folgende Beispiel enthaelt ein einsatzbereites Installations-Tag und Synchronisationsbefehle.

Beispiel: Anweisungen fuer das Selbst-Hosting der Kameleoon-Anwendungsdatei

<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>
Im obigen Snippet verwendet die Skriptquelle die URL des Kunden: //www.customerdomain.com/resources/scripts/engine.js. Unten finden Sie Beispiele fuer Synchronisationsbefehle.
# 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
Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.
Wenn Sie vereinheitlichte Sitzungsdaten ueber Subdomains verwenden, muessen Sie zusaetzlich ein statisches iFrame selbst hosten (https://www.customerdomain.com/path/to/kameleoon-iframe.html). Lesen Sie die Dokumentation Sitzungsdaten ueber Subdomains vereinheitlichen fuer Details.

Selbst-Hosting von Bildern

Sie koennen auch Bilder, die ueber die Kameleoon-Plattform hochgeladen wurden, selbst hosten. Wenn Sie diese Option waehlen und eine Bild-URL angeben, verwenden die fuer hochgeladene Bilder generierten URLs Ihren Server oder Ihr CDN. Der Standard-URL-Pfad fuer hochgeladene Bilder ist SITE_CODE.kameleoon.io/images/. Das CDN von Kameleoon stellt diese Ressourcen bereit. Wenn Sie einen anderen Pfad angeben, z. B. https://server.mydomain.com/path/resources/images/, muessen Sie Ihr CDN so konfigurieren, dass /path/resources/images/ in /images/ umgeschrieben wird. Wenn Sie keinen bestimmten Pfad benoetigen, verwenden Sie den Standardpfad: https://server.mydomain.com/images/. Sie muessen ausserdem einen Synchronisationsmechanismus fuer das Selbst-Hosting von Bildern verwenden. Dieser Prozess ist komplexer als die Synchronisierung einer einzelnen Datei, da Sie mehrere Dateien beruecksichtigen muessen und die genauen Namen und URLs hochgeladener Bilder nicht im Voraus kennen koennen. Verwenden Sie das Selbst-Hosting von Bildern nur ueber ein CDN, das einen eingebauten Replikationsmechanismus bietet. Stellen Sie Ihr CDN so ein, dass Ressourcen von der Origin-URL SITE_CODE.kameleoon.io/images/ bereitgestellt werden.
Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.

Dedizierte Cluster fuer die Datenspeicherung

Ein separates Cluster fuer die Datenspeicherung trennt die fuer Besucher auf Ihrer Website gesammelten Daten physisch von anderen Kameleoon-Nutzern. Diese Daten befinden sich auf dedizierten, separaten Servern und bieten die folgenden Vorteile:
  • Sicherheit: Die physische Trennung bietet ein hoeheres Sicherheitsniveau als die logische Trennung.
  • Leistung: Dedizierte Server gewaehrleisten optimale Geschwindigkeit fuer Speicherung und Operationen.
  • Zugriff auf Rohdaten: Kameleoon autorisiert Low-Level-Zugriff auf die zugrunde liegenden Datenbanken (hauptsaechlich ClickHouse), sodass Ihre Data Scientists benutzerdefinierte Abfragen ausfuehren koennen.
Die Einrichtung eines dedizierten Datenspeicher-Clusters erfordert die Installation mehrerer Open-Source-Datenbanksysteme. Kameleoon verwendet vier Haupttechnologien: Kafka, HDFS und ClickHouse (obligatorisch) und Cassandra (je nach Modulnutzung).
  1. Kafka (obligatorisch): Produzenten senden alle Datenerhebungsereignisse an Kafka-Topics, sodass sie ETL-Anwendungen zur Verfuegung stehen.
  2. Hadoop File System (obligatorisch): Kameleoon speichert alle Datenerhebungsereignisse in HDFS. Kameleoon rekonstruiert Besuche aus diesen Rohdaten zur Verwendung in anderen skalierbaren Datenbanken. HDFS dient als primaerer Datenspeicher und als Single Source of Truth.
  3. ClickHouse (obligatorisch): ClickHouse ist die OLAP-Engine, die Kameleoon zum Erstellen von Analyseberichten verwendet. Sie koennen benutzerdefinierte Abfragen fuer erweiterte Analysen ausfuehren.
  4. Cassandra (erforderlich fuer Personalisierung oder geraeteuebergreifende Abstimmung): Kameleoon verwendet Cassandra fuer Machine-Learning-Modelle und die geraeteuebergreifende Verlaufsabstimmung.
Die Server-Einrichtung und -Konfiguration wird in der Regel von erfahrenen Kameleoon-Ingenieuren durchgefuehrt. Kameleoon kann diese Vorgaenge in Ihrem Rechenzentrum (Server, die Sie besitzen und betreiben) oder in den Rechenzentren von Kameleoon durchfuehren.
Pruefen Sie die Server-Anforderungen fuer das dedizierte Datencluster.
Die Server muessen physische Bare-Metal-Server sein. Kameleoon unterstuetzt derzeit keine virtualisierten Server.
KomponenteVersionMindestserverOptimale ServerEmpfohlener RAMSpeichertypBemerkungen
Kafka2.3.12232 GBDrehende Festplatten (8 TB+)Confluent v5.3.1
HDFS2.9.12232 GBDrehende Festplatten (8 TB+)Erfordert 2 Server fuer Replikation
ClickHouse22.3.31264 GBSSD empfohlen
Cassandra4.0.11232 GBSSD obligatorisch
Kameleoon empfiehlt die neueste Rocky-Linux-Distribution fuer alle Komponenten.
Verwenden Sie nur fuer A/B-Tests eine Mindestkonfiguration von 5 Servern (6 empfohlen). Verwenden Sie fuer Personalisierung eine Mindestkonfiguration von 6 Servern (8 empfohlen).

Vollstaendiges On-Premises-Modell (getrenntes Backoffice, Datenspeicher-Cluster und Hosting der Anwendungsdatei)

In diesem Szenario hosten Sie alle Komponenten und Funktionen der Kameleoon-Plattform in Ihrem IT-Oekosystem. Dies ermoeglicht Ihnen die Implementierung benutzerdefinierter Sicherheitsrichtlinien, wie z. B. die Beschraenkung des Zugriffs auf Firmenarbeitsplaetze ueber VPN. Die Backoffice-Anwendung laeuft auf einem Tomcat-JEE-Server und nutzt mehrere eigenstaendige Java-Anwendungen, die ueber ActiveMQ kommunizieren. Kameleoon verwendet MySQL als relationale Datenbank fuer das Backoffice und nginx als hochleistungsfaehigen HTTP-Server zum Sammeln von Datenereignissen von Browsern. Pruefen Sie die Server-Anforderungen fuer die dedizierte Datenpipeline und das Backoffice:
KomponenteVersionMindestserverOptimale ServerEmpfohlener RAMSpeichertypBemerkungen
JDK/Tomcat/ActiveMQ1.8/8.0.47/5.14.51132 GBSSD empfohlenEigenstaendige Java-Anwendungen sind kolokiert
MySQL8.0.211132 GBSSD empfohlen
nginx1.20.11232 GBDrehende FestplattenEnthaelt proprietaere Java-Log-Parsing-Anwendung
Kameleoon empfiehlt die neueste Rocky-Linux-Distribution fuer alle Komponenten. Kameleoon stellt die Backoffice-Anwendung als WAR-Datei und andere Module als JAR-Dateien bereit.
Sie koennen den MySQL-Server mit dem Tomcat-JEE-Server kolokieren, aber Kameleoon empfiehlt, eine Kolokation aus Sicherheits- und Leistungsgruenden zu vermeiden, sofern nicht ausdruecklich anders angegeben.
Verwenden Sie fuer A/B-Tests eine Mindestkonfiguration von 9 Servern (11 empfohlen). Verwenden Sie fuer Personalisierung eine Mindestkonfiguration von 10 Servern (13 empfohlen). Berechnen Sie diese Zahlen, indem Sie die Tabellen addieren und einen Server fuer das Hosting der Anwendungsdatei hinzufuegen (einen abziehen, wenn Sie ein CDN verwenden).