Customers
User information
 Loading ...
Knowledge Base Home - Technical - Installed version

 What are the system requirements for the installed version of VisionFlow? Export knowledge base Export     SubscribeSubscribe      Hide article info

If you want to use the installed on-premise version of VisionFlow then you need to set up one or more servers that the system can run on. The server(s) you choose need to be a normal/full Windows or Linux server, it can either a physical or virtual server. See below for the components you need to install and configure and also the performance requirements.

 

Please note that you also need to have a dedicated Operations Technician that have experience managing similar applications (read more in this article). If you don't then you can still purchase and use the installed on-premise version, but you then need to purchase our premium support and remote application management services.   

 

To be able to give you support, and out of safety and quality issues, all installed customers have to upgrade to a new version of VisionFlow at a minimum 1 time every year (however we recommend you to upgrade to a new version at least twice every year). You must comply to the system requirements below and the performance requirements and recommendations to receive support for your system. If these requirements and recommendations are not followed we can not guarantee that VisionFlow works as intended, also any support given will be charged on an hourly basis. 

 

Server  components and requirements

Operating system

 

The server can either be running 64-bit Windows or Linux based (any distribution should work - Debian and Ubuntu has been verified by customers). 
A user account with full/generous rights/permissions needs to be available on the server for VisionFlow so it can execute and read/write to necessary folders.

 

Required components

Java 11

 

VisionFlow supports both 64-bit Java 11 JDK from Oracle and the 64-bit OpenJDK 11 LTS Hotspot from the Eclipse Adoptium project

 

 

Apache Tomcat 8.5

 

VisionFlow runs on Apache Tomcat.

You need to use Tomcat 8.5 version, we recommend using the latest available here: https://tomcat.apache.org/download-80.cgi 

 

 

Database

 

You can either use the Microsoft MS SQL Server or MySQL database (not MariaDB)
 

If you use Microsoft SQL Server, then version 2016, 2017 and 2019 are supported. Please note that MS SQL Server 2014 or older is not supported, since it has reached end-of-life. The Express edition is not supported. If you use Microsoft SQL Server you must have mixed mode authentication activated. You must also enable Snapshot Isolation level for the VisionFlow database and use collation Finnish_Swedish_CI_AS for the VisionFlow database.

 

If you use MySQL, then version 8.0 or above is required, we recommend the latest GA release. If you use MySQL it is important that the utf8mb4_unicode_ci collation is used and utf8mb4 character encoding is used. You must also use the InnoDB storage engine.

 

Please note that if the database is located on a separate server then communication is done via the JDBC protocol over standard ports such as 1433 and 3306.

 

Also note the following requirements:

  • MS SQL Server: Indexes needs to be recreated regularly, nightly is recommended, but weekly also works if you recalculate indexes nightly.
  • MS SQL Server: CheckDB needs to be run regularly, nightly is recommended!
  • MS SQL Server UpdateStatistics needs to run regularly, nightly is recommended!
  • MySQL : Run mysqlcheck (analyze + optimize) regularly https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

 

 

ElasticSearch

 

ElasticSearch provides fast and advanced search functionality and reduces the load on the database server. For best results then this should be run on a server separate from VisionFlow that is not exposed to the internet. It is scalable but a single server should have good performance for most installations.

You can read about how to install it here

Optional but recommended components

NGINX proxy

 

We also recommend that you configure and use the NGINX proxy server "in front" of your Apache Tomcat installation. NGINX will then act as a reverse proxy and only allow access to your Apache Tomcat Server and back end resources through the right protocols and ports to increase security, normally only HTTP/HTTPS. In addition to increased security it is easy to scale-up you VisionFlow installation with multiple servers in a cluster later if you want to.

 

When using NGINX we also recommend that you segment your network and create a DMZ for NGINX to increase security even further. See "Option 2" in this article for more information on this.

 

Also you can find instructions on how NGINX is installed and configured here...

 

Email server

 

Your email server must support SMTP so that VisionFlow can send/relay emails through it. The email server also need to support POP3 or IMAP4 protocols and allow the VisionFlow server to connect and communicate using any of these protocols (we recommend IMAPS). If you use Office365/Azure as your mail servers then VisionFlow can also be configured to use Microsoft Graph API instead of IMAP/POP3.

 

If you want to use full two-way Outlook/Exchange integration with VisionFlow then you need to use Exchange 2016 Server or later.

 

Chat/XMPP server 

 

To get chat and push functionality in the system you also need to download and install the latest version of Tigase (https://tigase.net/). This is an open source XMPP server. This is also part of the installation process, more on this here.

 

Please note that to be able to use push/chat, you also need to choose a subdomain for your server such as VisionFlow.mycompany.com (configured in your DNS)

Please also note that the minimum required version of the XMPP server for VisionFlow currently is Tigase 7.1.3 or later.

 

Centrifugo

 

Centrifugo is a component that handles Push functionality in our flat interface. 

You can read about how to install it here.

 

Other components and requirements

The server must be allowed to connect and communicate with any server that you want to integrate with using the correct protocol, such as:

  • Active Directory (AD) server if this is used for using LDAP protocol (using any port)
  • You must use SSL encryption for VisionFlow to make it secure, otherwise data is transferred between the client and server is unencrypted. To enable this you need to purchase and install a SSL certificate. Can be purchased from several vendors, such as GoDaddy, Digicert, Thawte or Verisign. If you already have a wildcard certificate then this can be used for VisionFlow. 
  • For Single Sign On (SSO) with Kerberos the following is required:
    • The VisionFlow server needs to be installed on a Windows server machine in a running in a windows network (with domain controller and proper domain names)
    • The server needs to be able to connect to the Active Directory server (AD) and Kerberos Key Distribution Center (KDC). The KDC runs on each domain controller as part of Active Directory Domain Services (AD DS). 
    • You also need to set up a Domain User in the Active Directory for VisionFlow.
    • Also important is that the date and time settings on the server must be in synch with the AD server. 
    • For more information about the SSO configuration with Kerberos, see here.
  • Provide VPN connection to your system environment for Visionera's support staff when required. We recommend that you set this up as a part of the installation process and contact our support staff to test this. The benefit is that our staff can help quickly if needed in the future. If VPN connection can't be provided for security reasons (or other reasons), then Visionera can't offer full support to the customer. Then extra charges may incur for helping and resolving support issues for the customer. 
  • You need to set up a backup scheme that is suitable for your organization. for example: 
    • Documents and files should be backed regularly. We recommend continuous data protection for point-in-time backup.
    • Database transaction log backups should be taken every 10 minutes or so. This is a must to be able to restore the database "point in time".
    • You should do a full database backup nightly or weekly
    • For details about the things you need to backup in the system, see here.
  • Configure monitoring for at least the following things:
    • Network and disk IO performance
    • Server ping
    • HTTP access, for example to : https://<your server url>/logon.do
    • Disk space
    • CPU usage
    • JMX (Java Management Extensions) for monitoring Java performance (for example heap space usage)
    • Also recommended:

 

Server performance requirements


Performance requirements vary and depend on several things, mainly the number of users that are simultaneously using the system and the data volume you have.  We recommend using a virtual server environment, then starting small and scaling up as your requirements increases. The better the performance on the server(s) have, the faster the system will feel and the more users it can handle. 

 

The server(s) you use should be fast and dedicated for VisionFlow, i.e. not used for other applications since this may affect performance and it will also be hard to monitor the servers. 

 

For VisionFlow you need a modern and fast hardware architecture with :

  • Fast CPU's with enough cores (< 2 cores). Since the system is CPU intensive the cores needs to be fast, see examples below***.
  • Generous amount of memory is needed, see below for detailed recommendations. An absolute minimum of 4 GB RAM allocated to Tomcat for a tiny server instance (<= 5 users). 
  • Fast disks with good IO throughput (> 10000 IOPS) and low latency (2-4 ms average), SSD drives are recommended. At least 100MB/s speed is required for the application server and > 200 MB/s on the database server. Please note that for the database you should use separate disks for the operating system, for the data and log files, as well as other IO intensive files. For example if you are using MS SQL Server then the ldf, mdf and tempdb files should all be located on different disks.
  • If you use multiple servers, you should at least have a 1 Gbit network backbone that connects the servers, but a 10 Gbit backbone is preferred. It is important that the network is not over-used by other systems or servers since this will affect performance. 
  • If you are using multiple servers, the network must also have low latency, i.e. low ping time between application servers and database servers, preferably < 1 ms but at least < 5 ms. 
  • If you use virtual servers please see here for more information.

  

Server example, up to 25 normal system users

 

Below is a real-life examples taken from one of our customers using one virtual server used for both database and the application server, and a separate ElasticSearch server.

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components Database, Tomcat, Nginx, Tigase
Database MySQL Server (community/free edition)
CPUs 3 Virtual CPU's  ***
RAM 12 GB RAM on the server
Memory allocated for Apache Tomcat 6 GB (-Xmx6144 -Xms4096)
Memory dedicated for the database 4 GB
Disk SSD with 300 MB/s IO performance

 

 

ElasticSearch server:

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components ElasticSearch
CPUs 2 Virtual CPU's ***
RAM 6 GB RAM on the server
Memory allocated for ElasticSearch  3 GB (-Xmx3072 -Xms3072)
Disk Regular disk with 300MB/s IO performance

 

 

 

   

Server example for 50 normal system users

 

Below is a real-life examples taken from one of our customers using one virtual server used for both database and the application server, and a separate ElasticSearch server.

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Database version MySQL Server (community/free edition)
Components Database, Tomcat, Nginx, Tigase
CPUs 4 Virtual CPU's  ***
RAM 16 GB RAM on the server
Memory allocated for Apache Tomcat 10 GB (-Xmx10240 -Xms7168)
Memory dedicated for the database 4 GB
Disk SSD with 300 MB/s IO performance

 

 

ElasticSearch server 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components ElasticSearch
CPUs 2 Virtual CPU's ***
RAM 8 GB RAM on the server
Memory allocated for ElasticSearch  4 GB (-Xmx4096 -Xms4096)
Disk Regular disk with 300MB/s IO performance

 

  

Server example for 100 normal system users

 

Below is a real-life examples taken from one of our customers using three virtual servers, one for the application server and another for the database, and one ElasticSearch server. 

 

Application server:

 

Server type Virtual (VM Ware)
Operating system Windows 2012 Server 
Components Tomcat, Nginx, Tigase
CPUs 4 Virtual CPU's ***
RAM 13 GB RAM on the server
Memory allocated for Apache Tomcat 10 GB (-Xmx10240 -Xms7168)
Disk Regular disk with 150MB/s IO performance

 

Database server:

 

Server type Virtual (VM Ware)
Operating system Windows 2012 Server
Components Database
Database version MS SQL Server 2014 (standard edition)
CPUs 4 Virtual CPU's  ***
RAM 16 GB RAM on the server
Memory dedicated for the database 14 GB
Disk SSD with 300 MB/s IO performance

 

ElasticSearch server:

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components ElasticSearch
CPUs 2 Virtual CPU's ***
RAM 12 GB RAM on the server
Memory allocated for ElasticSearch  6 GB (-Xmx6144 -Xms6144)
Disk Regular disk with 300MB/s IO performance

 

 

 

Network: Fast, stable and a low latency (10GB) network connection between servers

 

SAN: Separate file storage of documents 

 

  

Server example for 500 normal system users

 

Below is a real-life examples taken from one of our customers using five separate servers , one server for proxy and chat, two application servers in a cluster configuration, one for ElasticSearch and another server for the database. 

 

Proxy / chat server:

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components  Nginx, Tigase
CPUs 1 Virtual CPU's  ***
RAM 2 GB RAM on the server
Disk 20 GB size regular disk with 150 MB/s IO performance

 

 

Two application servers with the configuration below:

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components Tomcat
CPUs 4 Virtual CPU's ***
RAM 13 GB RAM on the server
Memory allocated for Apache Tomcat 10 GB (-Xmx10240 -Xms7168)
Disk Regular disk with 150MB/s IO performance

 

 

Database server:

 

Server type Virtual (VM Ware)
Operating system Windows 2012 Server
Components Database
Database MS SQL Server (standard edition)
CPUs 8 Virtual CPU's ***
RAM 36 GB RAM on the server
Memory dedicated for the database 34 GB
Disk SSD with above 300 MB/s IO performance

 

 

ElasticSearch server: 

 

Server type Virtual (VM Ware)
Operating system Linux (Ubuntu)
Components ElasticSearch
CPUs 2 Virtual CPU's ***
RAM 16 GB RAM on the server
Memory allocated for ElasticSearch  8 GB (-Xmx8192 -Xms8192)
Disk Regular disk with 300MB/s IO performance

 

 

Network: Fast, stable and a low latency (10GB) network connection between servers

 

SAN: For file storage of documents and files

 

 

Special considerations for virtual servers

 

Please note, if you use a virtual platform you must make sure that you use reserved memory, since VisionFlow will not perform well with dynamic memory. Also, other resources such as CPU and disk performance must be fast. 

 

For VM Ware, you can read more about this here:

https://www.vmware.com/files/pdf/techpaper/Enterprise-Java_Applications-on-VMware-Best-Practices-Guide.pdf

 

*** CPU performance in examples above

 

In all examples above 1GHz VCPU's are used based on a modern Intel Xeon CPU platform with fast single core performance, such as any of the following:

You can also use any equivalent platform for performance, but it is important that the individual VCPU performance is clocked high > 800 MHz for good performance. The performance score should be equivalent to any of the platforms above i.e. give you about 3000 Geekbench score or 2000 Passmark score.   

  

Do you need help?

 

If you need any help with configuration of your new server infrastructure, scaling up you existing servers, or just need help to benchmark your current server infrastructure please let us know by contacting our support team (support@visionflow.com) and we will be able to send you a quote for this work. 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.


User comments
 Loading ...