Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
j_twardziak
Partner - Contributor III
Partner - Contributor III

Qlik Sense Multi-Node Architecture - Best practices to separate Production and Development nodes

Hello All, 

Hope this post finds you well. 

I've gone through a lot posts before deciding to post my question. 

I'm going through planning phase of creating a new environment of Qlik Sense (version April 2019). 

My main objectives are:

1. Separate Production and Development nodes. 

2. Use Development node resources if required (hence the idea of the multi-node architecture).

3. Allow developers to create Streams on the Development node and published their apps to them only. 

4. Developers shouldn't be able to open their apps on the Production node (no MyWork stream on the Production node). 

5. Developers shouldn't see Production streams and apps on the Development node. 

Would you share your best practices to achieve the above based on your experience and knowledge, please?

Many thanks in advance for your help.

Best regards,

Janusz

1 Solution

Accepted Solutions
s_kabir_rab
Partner Ambassador
Partner Ambassador

Hi @j_twardziak, you will have to have lots of strict security rules and load balancing rules to achieve what you suggested. There are some pros and cons to this.

Having this central node(production node) and a developer node setup, one of challenges would be managing true separation for development environment, ex - qvd folder structure. You do not want your developers to use the same qvds which are being used in production apps etc. So you end up using conditional connection statements in your scripts which poses some challanges, specially if the condition is based on node.

You will also have to consider the app reloads, which nodes to perform that etc. Need to set up rules for this too. 

Have you considered 2 seperate environments instead? I would favour 2 seperate environments to seperate the development from production. You can keep all the connection names the same on both environments, so no script changes required when you move an app to dev environment to work on or when you promote it to production. You do not run the risk of accidentally effecting production files. You also do not need to worry about reload impact on production when developers reloading during peak times. Access control goes away as not all developer need access to the production. And produntion users do not see the developers app. 

As for the app migration process between servers- I believe theres a EA powertool that can do this. You can build a process using powershell too to automate this migration. Another pros of this solution is that you can build a version control in the process. 

I did a demonstration on similar scenario using a .net tool i built. This is a quite common issue faced by many of us and i found total seperation worked better but might not be the answer for everyone.

Hope this helps. You have my deatils, give me shout if you need any further information on this.

Kabir
Please do not forget to the mark the post if you find it useful or provides you the solutions 🙂

View solution in original post

2 Replies
s_kabir_rab
Partner Ambassador
Partner Ambassador

Hi @j_twardziak, you will have to have lots of strict security rules and load balancing rules to achieve what you suggested. There are some pros and cons to this.

Having this central node(production node) and a developer node setup, one of challenges would be managing true separation for development environment, ex - qvd folder structure. You do not want your developers to use the same qvds which are being used in production apps etc. So you end up using conditional connection statements in your scripts which poses some challanges, specially if the condition is based on node.

You will also have to consider the app reloads, which nodes to perform that etc. Need to set up rules for this too. 

Have you considered 2 seperate environments instead? I would favour 2 seperate environments to seperate the development from production. You can keep all the connection names the same on both environments, so no script changes required when you move an app to dev environment to work on or when you promote it to production. You do not run the risk of accidentally effecting production files. You also do not need to worry about reload impact on production when developers reloading during peak times. Access control goes away as not all developer need access to the production. And produntion users do not see the developers app. 

As for the app migration process between servers- I believe theres a EA powertool that can do this. You can build a process using powershell too to automate this migration. Another pros of this solution is that you can build a version control in the process. 

I did a demonstration on similar scenario using a .net tool i built. This is a quite common issue faced by many of us and i found total seperation worked better but might not be the answer for everyone.

Hope this helps. You have my deatils, give me shout if you need any further information on this.

Kabir
Please do not forget to the mark the post if you find it useful or provides you the solutions 🙂
j_twardziak
Partner - Contributor III
Partner - Contributor III
Author

Hi @s_kabir_rab , 

Many thanks for your throughout reply. 

The complete separation makes sense to me too from all the points you have mentioned in your reply. I just thought Qlik has come up with something new that would remove the need to do that. 

Again, many thanks for your help.

Best regards,

Janusz