Production Platform · Azure Multi-Region

High Level Design
Platform Topology

The full architecture of the Webtrends Optimize production platform — from global ingress to analytics storage.

5+
Azure Regions
4
App Gateways
4
ClickHouse Nodes
3
KAFKA Clusters
12+
Core Services
Architecture Overview

High Level Design

End-to-end view of every layer — from public ingress to the analytics database tier.

Platform Layers · Webtrends Optimize Production
Layer 1 — Public Ingress
🌍
Traffic Manager Profile Collect · Geo-DNS routing
🌍
Traffic Manager Profile PAT · Geo-DNS routing
☁️
Azure CDN Service Static asset delivery
Layer 2 — Application Gateways (WAF + L7 LB)
⚖️
App Gateway · EUW West Europe · v2
Public
⚖️
App Gateway · EUN North Europe · v2
Public
⚖️
App Gateway · UE2 US East 2 · v1
Public
Layer 3 — GEO-Distributed VM Pools
Collect · Event Ingestion · 4 VMs per region
📥
Collect EUW VM 1–4W. Europe
AVST
📥
Collect EUN VM 1–4N. Europe
AVST
📥
Collect UE2 VM 1–4US East 2
AVST
PAT · Test Delivery · 4 VMs per region
🎯
PAT EUW VM 1–4W. Europe
AVST
🎯
PAT EUN VM 1–4N. Europe
AVST
🎯
PAT UE2 VM 1–4US East 2
AVST
KAFKA · Event Streaming · 3 VMs per region
KAFKA EUW VM 1–3
KAFKA EUN VM 1–3
KAFKA UE2 VM 1–3
REDIS · Cache · 2 VMs per region
🔴
REDIS EUW VM 1–2
Cache
🔴
REDIS EUN VM 1–2
Cache
🔴
REDIS UE2 VM 1–2
Cache
Q2DB · Reporting DB · 2 VMs per region
🗄
Q2DB EUW VM 1–2
DB
🗄
Q2DB EUN VM 1–2
DB
🗄
Q2DB UE2 VM 1–2
DB
Layer 4 — Core Application Services (Central)
🖥
Origin VM Node 1Web application server
AVST
🖥
Origin VM Node 2Web application server
AVST
🔑
ACS VM Node 1Access Control Service
AVST
🔑
ACS VM Node 2Access Control Service
AVST
💾
DSS VM Node 1Data Storage Service
AVST
💾
DSS VM Node 2Data Storage Service
AVST
🏷
TMS VM Node 1Tag Management Service
AVST
🏷
TMS VM Node 2Tag Management Service
AVST
🔄
IO VM 1–2Internal orchestration bus
📅
Scheduler VM 1Job scheduling
🧪
Trial VM 1–2Trial account lifecycle
📱
Social VM 1Social campaign scheduler
📊
Reports VM Node 1–2Reporting services
📤
Extracts VMData export service
📁
FTPFile transfer / assets
⚖️
Load Balancer · TMSInternal LB
LB
Layer 5 — Data & Analytics Storage
⚖️
Load Balancer · ClickHouseDB-level LB
LB
🗃
ClickHouse DB Node 1Columnar analytics
Zone A
🗃
ClickHouse DB Node 2Columnar analytics
Zone B
🗃
ClickHouse DB Node 3Columnar analytics
Zone C
🗃
ClickHouse DB Node 4Columnar analytics
Zone D
🗄
WASDB SQLPrimary relational store
DB
🔴
REDIS STACK VM 1–3Session + cache
Cache
Layer 6 — Infrastructure & Coordination
🦁
Zoo VM Node 1Zookeeper · KAFKA quorum
🦁
Zoo VM Node 2Zookeeper · KAFKA quorum
🦁
Zoo VM Node 3Zookeeper · KAFKA quorum
🏛
Asset ServicesStatic asset management
🔒
DSS (Storage)Data abstraction layer
Service Catalogue

Platform Services

Every service in the Webtrends Optimize production platform, its role, and what it connects to.

🖥
Origin
orig

Main web application server. Serves the Webtrends Optimize dashboard, tag delivery, and the platform UI. 2-node Availability Set cluster.

CDN → Origin pullApp Gateway backendAVST cluster
🔑
Access Control Service
ACS

Authentication and authorisation gateway for all platform APIs. Validates tokens and enforces role-based access. Backed by RAS DB and REDIS.

RAS DBREDIS cacheAVST cluster
💾
Data Storage Service
DSS

Persistent data layer abstraction. Handles all read/write operations to underlying databases. Sits between the application tier and storage tier.

WAS DBQ2DBAVST cluster
🏷
Tag Management Service
TMS

Processes and serves A/B test tags to CDN and Origin. Has a dedicated internal Load Balancer. 2-node AVST cluster.

Internal LBWAS DBAVST cluster
📥
Collect
collect

High-throughput event ingestion endpoint. Receives visitor tracking data from client JS tags across all regions. 4 VMs per region, 3 regions.

ClickHouse DBEUW / EUN / UE2Traffic Manager
🎯
PAT
Test Delivery

Captures conversion and interaction events. Streams into KAFKA which feeds ClickHouse. 4 VMs per region, 3 regions.

KAFKA streamClickHouseTraffic Manager
🔄
IO Service
io

Internal orchestration bus. Routes messages between services and triggers schedulers, trial provisioning, and social campaigns.

WASDBREDISScheduler / Trial
📊
Reporting Services
reports + extracts

Generates experiment reports and data exports. Reports VM Node 1–2 plus a dedicated Extracts VM for batch export jobs.

ClickHouseQ2DB GEOREDIS GEO
KAFKA
kafka

Distributed event streaming for PAT and Collect pipelines. 3 VMs per region across EUW, EUN, UE2. Coordinated by Zookeeper cluster.

Zookeeper quorum→ ClickHouse3 regions
🦁
Zookeeper
Zoo cluster

3-node cluster providing distributed coordination and leader election for KAFKA. Required for KAFKA quorum to function correctly.

KAFKA coordination3-node quorum
🗃
ClickHouse
clickdb

Primary analytics database. Columnar storage for high-speed event queries. 4-node cluster with zone redundancy (A, B, C, D). Fronted by an internal Load Balancer.

Zone A–D redundancyInternal LBCollect + PAT writes
🔴
REDIS
redis / redis stack

In-memory cache and session store. GEO-distributed (2 VMs × 3 regions) plus a central REDIS STACK cluster (VM 1–3) for the application tier.

Session storeApp cacheGEO + central
Traffic Flows

How Requests Move Through the Platform

Traced end-to-end for each major traffic type — public ingress to storage write.

Collect — Event Ingestion
1
Client JS tag fires
Browser sends event beacon
2
Traffic Manager · Collect
Geo-DNS routes to nearest region
3
Application Gateway
WAF inspection + L7 load balance
4
Collect VM Pool (1–4)
EUW / EUN / UE2 · AVST
5
ClickHouse LB → DB Node
Columnar write · zone-redundant
PAT — Test Delivery
1
Visitor action event
Click, conversion, form submit
2
Traffic Manager · PAT
Geo-DNS routes to nearest region
3
Application Gateway
WAF + regional LB
4
PAT VM Pool (1–4)
EUW / EUN / UE2 · AVST
5
KAFKA GEO
Streamed to regional KAFKA topic
6
ClickHouse DB Cluster
Consumed from KAFKA → analytics store
Dashboard — User Request
1
User browser HTTPS
webtrends-optimize.com
2
Azure CDN
Static assets served at edge
3
Application Gateway · Central
webtrends-optimize.com_v1
4
Origin VM Cluster
Node 1 or 2 · AVST
5
ACS · DSS · TMS
Auth → data → tag resolution
Reporting — Data Read
1
Dashboard report request
User opens experiment report
2
IO Service
Orchestrates report job
3
Reports VM Node 1–2
Runs aggregation query
4
Q2DB GEO + REDIS GEO
Query DB; check cache first
5
Results returned
Cached in REDIS for repeat reads
Service Map

Component Connections

All defined data flows between platform components, from the HLD diagram.

From To Traffic / Purpose
Traffic Manager (Collect)Application Gateway (EUW / EUN / UE2)Geo-DNS load balancing
Traffic Manager (PAT)Application Gateway (EUW / EUN / UE2)Geo-DNS load balancing
Azure CDN ServiceOrigin VM ClusterCDN origin pull for static assets
Application GatewayOrigin VM ClusterDashboard HTTPS requests
Application GatewayCollect GEO VM PoolsEvent ingestion traffic
Application GatewayPAT GEO VM PoolsTest delivery traffic
Collect GEO VMsLoad Balancer · ClickHouseWrite analytics events to DB
PAT GEO VMsKAFKA GEOStream test events
KAFKA GEOClickHouse DB ClusterEvent consumption to analytics store
Zoo Cluster (3 nodes)KAFKA GEODistributed coordination / quorum
Load Balancer · ClickHouseClickHouse DB Nodes 1–4DB-level traffic distribution
Load Balancer · TMSTMS VM Node 1–2Tag management requests
Origin VM ClusterACS VM ClusterAuth token validation
Origin VM ClusterDSS VM ClusterData read / write
IO ServiceScheduler / Trial / Social VMsJob orchestration triggers
IO ServiceWASDB SQL + REDIS STACKState + session management
Reporting ServicesQ2DB GEOReport data reads
Reporting ServicesREDIS GEOReport result caching
DSS VM ClusterWASDB SQLPrimary application data writes
ACS VM ClusterREDIS STACKSession token cache