Skip to content
This repository has been archived by the owner. It is now read-only.
Qlik Core use case Assisted Prescription (also known as Custom Analytics).
Shell JavaScript Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Deprecate this repo (#451) Aug 12, 2019
.github Refernces updated (#329) Apr 6, 2018
configs Update logstash.conf (#435) Apr 18, 2019
data Adding qvf file (#8) May 17, 2017
docs Add support for running Community Version and update docs on licensing ( Jul 4, 2018
scripts
secrets Adding alertmanager with notification to Slack (#264) Dec 6, 2017
test Bump eslint from 5.6.0 to 5.6.1 in /test (#397) Sep 30, 2018
.editorconfig Added our recommened eol settings (#115) Jun 28, 2017
.gitattributes Readify custom analytics (#289) Dec 18, 2017
.gitignore Added session placement diagram (#345) May 21, 2018
LICENSE Readify custom analytics (#289) Dec 18, 2017
README.md Deprecate this repo (#451) Aug 12, 2019
docker-compose.circleci.yml Mount a volume to save the logs to the VM (#336) Apr 11, 2018
docker-compose.licensing.yml Automated: Bump Docker images (#427) Feb 18, 2019
docker-compose.logging.yml Update minor and patch Docker tags (#447) Jun 22, 2019
docker-compose.monitoring.yml Update prom/alertmanager Docker tag to v0.18.0 (#448) Jul 13, 2019
docker-compose.override.yml Update minor and patch Docker tags (#447) Jun 22, 2019
docker-compose.pregen-ssl.yml Cert deploy (#176) Sep 4, 2017
docker-compose.yml Automated: Bump Docker images (#446) Jun 19, 2019
local.sh Add support for running Community Version and update docs on licensing ( Jul 4, 2018
swarm.env.example Add support for running Community Version and update docs on licensing ( Jul 4, 2018
swarm.sh Fix ap.qlikcore.com deployment bug (#372) Jul 4, 2018

README.md

This project has been deprecated

The project will be kept here for reference only. The repo will not be continuously updated and supported.

Qliktive Assisted Prescription

CircleCI

This repository contains the implementation of a medical data web application called Qliktive Assisted Prescription. Qliktive is a fictive company used to showcase different solutions built using Qlik Core.

Qliktive Assisted Prescription provides some advanced analysis capabilities on drugs, treatments, and reactions. It targets the world-wide population of doctors. Even if the audience is more or less predictable, some seasonal or sudden epidemic events can affect the traffic.

How Qlik Core Is Used

The application has a custom visualization web UI. The application uses Qlik Core on the backend to serve multiple users with medical analysis capabilities using one single Qlik Associative Engine document. To balance the load, multiple Qlik Associative Engine instances serve the same document, and users are assigned a Qlik Associative Engine instance based on a simple round-robin load balancer.

The application is hosted on AWS and uses Docker Swarm for container orchestration, but it could also be deployed to other cloud providers if needed.

Repository Contents

This repository contains

  • Background information and rationale for the Qliktive Assisted Prescription application.
  • Documentation on how to develop, test, and deploy Qliktive Assisted Prescription.
  • The backend service stack built on Qlik Core, with additional services to host the web application, handle authentication, and to provide logging and monitoring capabilities.
  • Various scripts and tools to deploy the stack, and to enable developing and testing locally on a developer machine.

Getting Started

To run the stack, Docker stable version 17.06 or later is required. Development is supported on both Docker for Windows and Docker for Mac.

Note that before you deploy, you must accept the Qlik Core EULA by setting the ACCEPT_EULA environment variable.

If you are running Qlik Associative Engine under a license obtained from Qlik, the license information shall be provided in the LICENSES_SERIAL_NBR and LICENSES_CONTROL_NBR environment variables. Omit these environment variables to run the Community Version.

Deploying to Local Docker Engine

The stack can be deployed to the local Docker engine (without Docker Swarm) using the local.sh script. It uses docker-compose. Run:

$ ACCEPT_EULA=yes LICENSES_SERIAL_NBR=<serial nbr> LICENSES_CONTROL_NBR=<control nbr> ./local.sh deploy

Replace <serial nbr> and <control nbr> with proper license numbers provided by Qlik, or omit these environment variables to run the Community Version.

The application can now be accessed at https://localhost. Login in with: "admin" and "password".

Deploying to Docker Swarm

The stack can also be deployed to Docker Swarm using the swarm.sh script. More information on how to deploy to Docker Swarm can be found here.

Live Environment

Try out the live demo of the application at ap.qlikcore.com. It is hosted on AWS and is a deployment of the latest master build. A GitHub account is needed to sign in to live demo application.

Services

The application consists of multiple services, based on Docker images developed in other repos. There are several Docker Compose files defining different parts of the stack:

  • docker-compose.yml contains all mandatory services. This includes the Qlik Core services, the web server and gateway, and some other essential services.
  • docker-compose.override.yml provides some overrides to docker-compose.yml for running the stack on the local Docker engine.
  • docker-compose.logging.yml contains services for logging, which is the ELK stack together with Filebeat.
  • docker-compose.monitoring.yml contains services for monitoring, which is Prometheus, Alertmanager, and Grafana, together with some assisting services to extract metrics from different parts of the deployment.
  • docker-compose.pregen-ssl.yml contains secrets provided to the OpenResty web server for HTTPS communication. This is only used if the user has a "real" certificate signed by a root CA and does not use the self-signed certificate that OpenResty generates.

Routes

The application provides a few different endpoints, serving different purposes:

  • / - The Assisted Prescriptions main UI to be consumed by the end user.
  • /kibana - The Kibana dashboard used to view logs from the different services — only available if the logging stack is included during deployment. Mainly to be consumed by sys admins.
  • /viz - The Docker Swarm visualizer used to see an overview of the deployment, and where services are running. Only available in Swarm mode. Manly to be consumed by sys admins.
  • /grafana - The metrics dashboard towards Prometheus. Used to see an overview of monitoring and performance of the deployed services. Only available if the monitoring stack is included during deployment. Mainly to be consumed by sys admins.

Since OpenResty serves the application over HTTPS, port 443 is used. To host the application, the firewall must allow access to this port.

Further Reading

Requirements on the Assisted Prescription application are given in:

A system design overview is given in:

More information related to development can be found in:

  • Developing - Developing and running the application on a developer machine.
  • Testing - Information on how the application is tested and how to run tests.
  • Secrets - Docker secrets and options for secret management in the application.
  • Deploying - Information on deploying the application to Docker Swarm clusters, including AWS.
  • Performance Benchmarking - Information on how to do performance benchmarking on a deployment of the application.
You can’t perform that action at this time.