Qlik Sense Enterprise Architecture And Scalability

Transcription

White PaperQlik Sense Enterprise architectureand scalabilityJune, 2017qlik.com

PlatformQlik Sense is an analytics platform powered by an associative, in-memory analytics engine. Based onusers’ selections, calculations are computed at runtime against data stored in-memory. Results are returnedto users via a zero-footprint web interface delivered on desktops, laptops, mobile devices, and throughembedded analytics. Qlik Sense offers a highly interactive, associative experience in which users canfreely navigate through data with little to no constraint in their analysis path.Associative, in-memory applicationsQlik’s QIX Engine uses an associative, in-memory technology thatenables users to analyze and freely navigate data in an intuitive way.This second generation of Qlik’s proven data indexing engine allowsusers to freely explore data and create visualizations based on datafrom multiple data sources simultaneously, ranging from Excel andAccess, to databases such as Oracle and SQL Server, to big datasources such as Cloudera and Redshift.Qlik Sense uses columnar, in-memory storage. Unique entries areonly stored once in-memory and relationships among data elementsare represented as pointers. This allows for significant datacompression, more data in RAM, and faster response times for users.What is Associative?Associative refers to the uniquecombination of in-memory datastorage and a patented engine.This allows users to search andnavigate through and createvisualizations upon data with acontinuous context. Thisremoves the constraints imposedby traditional hierarchical orquery based approaches.There are some big data scenarios where data should remain at thesource. Using a built-in technique called On-Demand Application Generation, data sources can bequeried based on users’ selections, yet still provide an associative experience to the user.Qlik Sense ClientsHubThe Hub is the Qlik Sense user environment and is deliveredthrough a zero-footprint web browser interface. Through theHub, all aspects of development, drag-and-drop content creation,and consumption is possible. Qlik Sense delivers a responsivedesign methodology to automatically display and resizevisualizations with the appropriate layout and information to fitthe device, whether it is a browser on a laptop or desktop, tablet,or smartphone. Built with current standards of HTML5, CSS3,JavaScript, and web sockets, Qlik Sense enables you build on anyplatform and deploy to any platform.Qlik Sense Architecture Overview 2

Management ConsoleThe Qlik Sense Management Console allows administrators to govern allaspects of the Qlik Sense platform, ranging from data connectivity,application and task management, to security administration, monitoring,and auditing.Embedded AnalyticsQlik Sense APIs are REST and JSON based and are the sameAPIs that were used to develop Qlik Sense itself. You can extendQlik Sense by adding your own visualizations and your own datasources. You can even integrate Qlik Sense visualizations anddata with other web based applications. Qlik Sense provides abuilt-in web-based editor for working with these APIs.See the data sheet titled Qlik Sense APIs for more information.Architectural OverviewQlik Sense is designed to support visual analytics in a scalable,secure, and governable way. Qlik Sense can be deployed on asingle server and scale vertically and horizontally to address theavailability and processing requirements of your deployment,whether on premise or in the cloud. Qlik Sense Proxy (QPS) is the entry point for users andadministrators via the Hub and Management Console,respectively. This component integrates with many identityproviders. (e.g., Active Directory, SAML, etc) The Proxy alsomanages sessions, provisions licenses, and handles loadbalancing to the other components. Qlik Sense Engine (QIX) is the associative, in-memory dataindexing engine. This RAM-based application tier delivershighly interactive self-service visualizations, search, andcalculations at runtime.Qlik Sense Architecture Qlik Sense Scheduler (QSS) is the scheduling componentthat coordinates data loads. This scheduler supports timebased application reloads, dependancies, and may be driven by enterprise schedulers (e.g., CAAutoSys). Qlik Sense Repository (QRS) is the centralized store of configuration and management informationof the platform. This component manages user definitions, security, and many other elements of theplatform. The data persists in PostGreSQL.Qlik Sense Architecture Overview 3

Qlik Sense Applications (.QVF) are comprised of highly compressed data, a data model, andpresentation layer. These applications are persistently stored on a file system and are loaded intomemory by the Qlik Sense Engine as users request them.Ancillary Services (not pictured): Qlik Sense Printing Service (QPR) is used for content exportingand Qlik Sense Service Dispatcher (QSD) calls routines for data preparation, application migration,and on-demand app generation.Multi-Node ArchitectureQlik Sense has a modular architecture designed to meet the unique requirements of your organization.While a single Qlik Sense server can often support hundreds of concurrent users, Qlik Sense can scaleeven further with its multi-node architecture.See the technical brief titled Qlik Sense Performance Benchmark for more information.Distributed WorkloadsThe Qlik Sense components can be deployed on servers in different combinations to accomplish specificfunctions. The table below describes how the components of Qlik Sense are deployed to allow servers tofunction as Consumer nodes, Developer nodes, Scheduler nodes, and the Central Consumption andSelf-Service Analyticsfor UsersDeveloperNodeCreate and reloadnew applications forusersSchedulerNodeApplication and DataReloadsCentralNodeMaster Scheduler,Application Upgrades,misc.XXXEngine SchedulerXXRepository Repository ApplicationServiceDatabase FilesystemCommentXProxy can be separatedto its own server.XFor business users.Isolated non-productionenvironmentsrecommended for IToriented authors.Engine performs reloadsinvoked by scheduler.XXXXXXXXCan be co-located withother nodes.Central NodeEvery Qlik Sense environment has a Central Node that acts the master scheduler that coordinatesapplication reloads, performs application upgrades when the software is updated, and serves extensionobjects to other nodes. By default, the Central Node also holds the Repository Database and ApplicationFilesystem. In a multi-node environment, each Repository Service communicates with the RepositoryDatabase on the Central Node, and each Engine loads applications (.QVF) from the ApplicationFilesystem on the Central Node. Optionally, the Repository Database and/or Application Filesystem canbe moved to dedicated, resilient resources. Finally, because of its limited responsibility the Central Nodecan co-locate on another node, most commonly the scheduler(s). The Central Node functions can benominated to run on one or more nodes, and in the event of a failure one of the candidate nodes willassume Central Node responsibilities.Qlik Sense Architecture Overview 4

Single Node DeploymentThis single-nodedeploymentexample co-locatesall Sensecomponent on asingle node.Two Node DeploymentThis two-nodedeploymentexampleseparates theworkloadgenerated byusers performinganalysis fromdata loadsmanaged by thescheduler.Scaling horizontally – Multiple NodesQlik Sense can scale workloads vertically and horizontally. Within a single site (environment), multipleConsumer nodes and Developer nodes for self-service analytics and Scheduler nodes for data loadsenable Qlik Sense to scale horizontally for resilience and a growing workload.About WorkloadsSecurity Rules areconfigurable and further enableyou to dedicate workloads tospecific nodes. For example,within Consumer andDeveloper nodes, isolatecontent creation fromconsumption or segmentapplications by business unit.Within Scheduler nodes,isolate data layer creation fromapplication creation, or segmentdata loads by complexity orduration.This completely configurablecapability is discussed further inthe document titled“Qlik Security OverviewWhitepaper”Qlik Sense Architecture Overview 5

Qlik Sense APIsMany organizations are tasked with integrating their platforms into an ever more complex and changingenterprise architecture. The Qlik Sense APIs ensure that Qlik Sense can integrate seamlessly into yourenvironment to provide the security, automation, and delivery capabilities that are required.The Qlik Sense APIs are REST and JSON based and are the same APIs used to develop Qlik Senseitself. This gives you tremendous power to build your own applications on the Qlik Sense platform. Youcan extend Qlik Sense by adding your own visualizations and your own data sources. You can leverageyour existing security providers. You can integrate Qlik Sense with web applications or with desktopapplications based on the .NET framework. You can manage licensing, users, and tasksprogrammatically.Qlik Sense Extensions API Create New VisualizationsQlik Sense Capability API / .NET SDK Embed Visualizations and FunctionalityQlik Sense QVX SDK Create Custom Data ConnectorsQlik Sense Proxy Service API Authentication, Load Balancing, SessionManagementQlik Sense User Directory Connector API Create Custom User DirectoryConnectorsQlik Sense Engine / Backend API Communicate Directly with AssociativeEngineQlik Sense Repository Service API Management and AdministrationSee the data sheet titled “Qlik Sense APIs” for more information.Qlik Sense Architecture Overview 6

Scalability at a glanceQlik Sense ScalabilityAs the needs increase to deploy a system to larger numbers of users containinglarger volumes of data and larger numbers of applications, scalability becomesincreasingly important. Scalability is defined and measured along severaldimensions and are categorized into five main areas: architecture, data,applications, users, and delivery.Through these areas we will discuss Qlik Sense’s ability to scale.Architecture: In-memory,distributed, and performanceand capacity scales linearlywith processor cores andservers.Data: CPU, RAM, andresponse times scale linearlywith data.ArchitectureQlik Sense is comprised of five modular primary services that can be scaledvertically and horizontally to meet demand. This simple architecture ensurespredictability in performance and scaling.Applications: performanceis additive, ensuringpredictability.DataQlik Sense scales linearly with data volumes. Response times for analysis andETL from multiple data sources are predictable as data volumes grow.Users: CPU, RAM, andresponse times scale linearlywith users.ApplicationsQlik Sense is predictable in how resource consumption scales with applications.The resource requirements of each individual application can be added tounderstand the requirements of a group of applications.UsersDelivery: feweradministrative resources andself-service content creationallows Qlik Sense to scalewith your organization.Qlik Sense scales linearly with users. As the number of content creators andconsumers grow, their response times and impact on server resources growspredictably and linearly.DeliveryQlik Sense enables your organization to align the work with the people mostsuited to do it. IT can efficiently manage hardware and secure and govern data,while users create content, self-serve, and collaborate. Fewer resources canempower many.Qlik Sense Architecture Overview 7

Scalable architectureQIX EngineThe QIX Engine is an associative, in-memory data indexing engine.This RAM-based application tier delivers highly interactive self-servicevisualizations, search, and calculations at runtime.Qlik Sense calculates aggregations at the time it is requested. Forexample, when the user interface requires aggregates to show a chartobject or to recalculate when selection is made, the aggregation is doneat the same time. The QIX engine is a 64-bit process, is multi-threaded,and is optimized to take advantage of all available processor cores. Asyou will see, available cores will be used linearly when performingcalculations for growing data volumes and users.Memory and Cache ManagementQlik Sense uses RAM efficiently and in three ways. Qlik Sense usesRAM to store:Memory ManagementApplicationsHighly compressed data; The dataset that is defined by the application data modelThe cached results that are a result of engine calculations anduser selectionsThe session state for each usercolumnar storage; singlecopy of application data inRAMResult CacheQlik Sense applications persist on disk on a server, and when a userrequests an application it is loaded into RAM if it had not been loadedby a previous user. Multiple users leverage this application in RAM; itis loaded a single time and is not duplicated for multiple usersaccessing and analyzing it. RAM is freed when the application is nolonger used.Stores calculation results;automatically reused; selfmanaging and never out ofsync with application dataAs users make selections within applications, the QIX Engine performscalculations in real time. During a calculation, RAM may betemporarily allocated to perform the calculation. The results are storedin a Result Cache and are reused if any user makes the sameselection (provided security allows for the same data visibility). Thissimple caching mechanism frees the CPU from doing additional,duplicate work and is automatically managed by Qlik Sense, requiringno administration.Finally, each user uses a small amount of RAM to maintain sessionstate information.Qlik Sense Architecture Overview 8

Distributed ArchitectureQlik Sense has a modular architecture that can be deployed to multiple nodes and is supported onphysical hardware, virtual platforms, and cloud environments.With this multi-node architecture, Qlik Sense can scale linearly when additional QIX Engines are added toa deployment. Qlik

Qlik Sense Architecture Overview 8 Scalable architecture QIX Engine The QIX Engine is an associative, in-memory data indexing engine. This RAM-based application tier delivers highly interactive self-service visualizations, search, and calculations at runtime. Qlik Sense calculates aggregations at the time it