Qlik Sense Enterprise (QSEfW) is a Windows-only product that can be managed and accessed using a browser. All nodes in the deployment interact with the Qlik Repository Service (installed locally) to determine their configuration and the topology of the deployment from the Qlik Repository Database (installed centrally).
The components can be grouped into three classes:
Load Balancer – required only when multiple Qlik Proxy Services are deployed. Use the TCP Load Balancer because this supports long duration websocket connections better than the HTTP(S) Load Balancer. Load Distribution amongst other clustered components is managed within Qlik Sense.
Qlik Proxy Service (QPS) provides similar function as a WebServer and performs Authentication and Session management. IIS is not The QPS is the endpoint used by Users to reach the “Hub” portal and for Administrators to reach the “QMC” Management Console. Install your own SSL Certificate using the QMC.
Qlik Engine Service (QES) – the Associative Engine. RAM & CPU intensive and may be clustered at application level for Load Distribution. All Engines interact with the Qlik Repository Service (QRS) where Security Rules are recorded and as an index of the available Qlik Sense content. Documents are read from the Qlik Sense Persistence Store.
Scheduling Service (QSS) – This manages the reloading of Qlik documents from their underlying datasources. All QSS instances interact with the Qlik Repository Service (QRS) and Documents are read/written from/to the Qlik Sense Persistence Store.
Repository Database – an embedded PostgreSQL database that is interacted with from all Nodes in the deployment, and contains Security Rules, Deployment Topology (configuration) and an index of the Qlik documents that are being managed/used. Content is managed using the Qlik Management Console (QMC) by browsing to a Proxy node. Interaction with the Repository Database is performed only by the Repository Service (QRS) which is installed on every node. The database may be replaced with an equivalent Cloud service.
Persistence Store – a CIFS/SMB File Share where the Qlik Sense Documents (QVF), logfiles and other common content are stored. All nodes in the deployment interact with this location.
All Qlik Sense components can be deployed on a single Google Compute Engine. Authentication may use local Windows accounts, Active Directory or typically a SAML interface to the User Repository.
A PostgreSQL database is supplied together with the product as the Repository Database. A File Share must be enabled on the local machine as the Persistence Store.
The Compute Engine is shown attached to a Regional Persistent Disk for storage durability.
A common early pattern for scaling-out will be to move User utilization from a single Node to one/many Rim Nodes which each contain the user-accessible Qlik Proxy Service (QPS) and the associative Qlik Engine Service (QES). All nodes must have an instance of the Qlik Repository Service (QRS) which interacts with the Qlik Repository Database.
The original Single Node may still be maintained as a Central Node which continues to manage Persistence and Reloads. The Qlik Proxy Service remaining on the Central Node may be used for Administration.
The embedded PostgreSQL database that is used as the Repository Database may be replaced with an equivalent Cloud service such as Google Cloud SQL (Postgres).
As concurrent Document Reload activity grows, it may be worthwhile to implement separate infrastructure for reload activity, reducing contention on the Central Node. The Engine on these nodes will interact with Datasources when reloading documents that will be written into the Persistence Store.
A large Multi-Node deployment of Qlik Sense may resemble this diagram, containing Load Balanced browser interactions with the Rim Nodes; multiple Reload Nodes interacting with Databases; and the Persistence Tier implemented using a CIFS FileServer (implemented as Persistent Disk attached to a Compute Engine) and Google Cloud SQL as the Qlik Repository Database.
The Qlik Engine Service does not have to be implemented on the same nodes as the Qlik Proxy Service, though this practice is common as the Proxy nodes require access to the Persistence Store regardless.