Out with the old, In with the new

TL;DR – We demonstrate the process of enabling AMC in QSEoW, a separate management console that is lightweight in design and in its usage, which allows users to manage applications and streams in their Qlik Sense environment.

Qlik Sense administrators are well versed and familiar with the usage of the Qlik Sense Management Console AKA QMC. QMC allows site administrators and other users with administrative roles/rights to manage various aspects of the Qlik Sense environment. The most common scenarios that a Qlik Sense site administrators face are management of streams and Qlik Sense applications, be it changing ownership of applications to moving, duplicating, exporting applications between users and streams, but also managing associated reload tasks and data connections. These are relatively simple tasks, however, require the users/administrators to log into QMC to perform those tasks.

QMC by default is quite resource heavy. When accessing QMC just to perform these relatively simple tasks, it will fetch a much larger data set from the Qlik Sense repository and then apply the filter based on user’s access. This is not optimised when you have large volume of applications or user base, especially if the Qlik Sense environment has very complex security set up. This is where Application Management Console AKA AMC comes into the picture.

Qlik R&D acknowledged that the QMC had initially been designed for a limited number of system administrators. The design of the QMC was therefore optimized for unfiltered requests, typically when all resources like apps, streams, tasks, … are visible without any restrictions. When an installation grows you typically want to give certain users a limited access to the environment. This can be achieved by utilizing the very flexible security rule system provided with Qlik Sense, but doing so comes at a cost. As the environment grows, the security rule evaluation can become a performance bottleneck, and in the worst case it can cause your environment to become unresponsive.

For those who like to have a look under the hood, it is worth sharing as well that most QMC requests are executed against the QRS API on the central node. In other words, when too many non root admin users enter the QMC to look at the list of their apps they can make the whole Qlik Sense site unresponsive for hours. In such an event, you would notice the central node repository service threadpool request queue size ramping up and going out of control. Since that is unusual with Qlik Sense, you can expect users to refresh the QMC in their browser. That has the effect of making the situation even worse, till a point where a system admin needs to restart the central node repository service and “hide” the QMC temporarily.

That’s when using the QMC becomes problematic that you fall in love with the AMC! (it saves your job basically)

The credits for AMC go to Øystein Kolsrud, a Software Architect at Qlik, and his peers of course.

What is AMC?

What is AMC?

The AMC will load for each user the list of streams they have access to, followed by the applications within the previous streams and their associated tasks. It looks similar to the QMC, but it’s actually different since the QMC would evaluate permission for each user against all the applications and all the possible security rules.

Having a quick look under the hood again, we notice that most of these AMC related API calls go against the local repository service where the user was load balanced by the virtual proxy. This means that not only the server efforts to list the apps for a user are very low, but that effort is also shared cross servers in a multi-node deployment. Having tested the AMC with 2 000 users who have access to the AMC, we did not face any significant issues. In comparison it was enough to bring 10 users in the QMC to make the whole site unresponsive, probably because we had 20 000 Qlik Sense applications to evaluate for each user against complex security rules.

Now that we have gone over the what and whys, let’s move on the practical part of the blog. There are number of tasks you will have to complete before you can start playing with the new and shiny toy!

AMC is not a third-party solution, it (content library, provided by Qlik) is shipped with QSEoW installation and will work with Qlik Sense September 2018 or later versions.

Let’s do this..

Now that we have gone over the what and whys, let’s move on the practical part of the blog. There are number of tasks you will have to complete before you can start playing with the new and shiny toy!

First things first, please make sure you have backup before attempting the steps from this blog. Also, please make sure you test this on a test/development environment before attempting on production site.

Step 1: Navigate to “%programfiles%\Qlik\Sense\Tools\AppManagementConsole”.

Step 2: Copy all contents from the folder “amc” to a location that is accessible from where you will use Qlik Sense Management Console from. E.g., if you are using your laptop to access QMC, then copy these files to a directory in your laptop. You will need those later on.

Step 3: Log onto Qlik Sense Management Console.

Step 4: Navigate to the content library.

step-4-qlik-sense-management-console-content-lib

Step 5: Click on “+ Create a new” at the bottom of the window.

step-5-qlik-sense-management-console-content-lib-new

Step 6: Name the new library “amc” and click on “apply”.

step-6-qlik-sense-management-console-content-lib-amc

Step 7: When the new security prompt appears, create a security rule that will be applicable to you AMC user base. You can follow your organisation’s security rule policies here. Below is an example we have used for this demonstration. Please note: all security rules for AMC will use the QMC context.

step-7-qlik-sense-management-console-content-lib-security

Step 8: Click on “Contents” from the right-side navigation panel under “Associated items”.

step-8-qlik-sense-management-console-content-lib-contents

Step 9: Now click on “+ Upload” button at the bottom of the screen, and the click on “Choose files” button from the prompt.

step-9-qlik-sense-management-console-content-lib-upload

Step 10: Now navigate to the directory where you copied the files from the server in “Step 2“ and upload all the files with in the “amc” folder. Note: The file “amc/extras/data-connection.js” is optional.

Step 11: Once you have uploaded all the files, you are ready to test your new and shiny (not so much) Application Management Console. Just navigate to –

 https://servername/[VIRTUAL_PrOXY_IF ANY] /content/amc/home.html
step-11-qlik-sense-application-management-console

You will also find an extra file to import in case you also want to add a tab for managing data connections: data-connections.js

Now time for some caveats

error

AMC support for browser seems as wide as it is for the usual Qlik Sense client library. If you are still using Internet explorer then you may find that AMC will not load, and you will see a warning as shown below. This is due to IE not supporting ECMAScript 6. There are ways around it, you can compile the JavaScript files using modern built tools to make it compatible with IE, but I think you will have bigger issues to tackle than fixing AMC if you or your users are still using Internet explorer.

What else?

what else?

Now you have a new shiny AMC for your end user to manage their applications and tasks. However, that doesn’t stop the user from side stepping into QMC and doing what they did before and causing the service issues. You may want to consider locking them out of QMC, you can do it with the QMC section resources. But this is a topic for another day.

If you had attended Qlik World 2020 and missed that session about the AMC, you can still watch it with the email you had used when registering to the event.

Hope you have found this useful. Please feel free to share your ideas and thoughts on this via comments section or reach out to us if you would like us to expand on this topic on another blog post. Thank you for reading. Have fun Qliking…