Overview

The easiest way to ensure the smooth implementation of your analytics system is to fully understand the requirements of the system and prepare as much in advance as possible.

This article covers everything you need to know about preparing for an install of AppsAnywhere Analytics

  1. Ensuring you have sufficient server resources

  2. Creating the relevant DNS records

  3. Enable Server Communications

  4. Preparing SSL certificates

  5. Creating the databases and database users

  6. Preparing for the growth of the analytics database

  7. Setting up a backup policy

Server Requirements

The server is delivered as a virtual appliance. You will be sent details of how to download the appliance, ready to import into your environment. 

When you create the server from the virtual appliance, you will need to assign the following minimum resources:

  • 1.2 GHz CPU with 4 or more cores

  • 8 GB RAM

  • 10 GB Disk

These are our basic recommended specs. If you experience performance issues with queries running on Analytics Server, you may wish to try increasing these resources, but these should be sufficient.

Networking

The appliance by default has its network adapter disabled. Use the Appliance Configuration Console as detailed in the First-time Configuration section to enable networking and configure the required IPv4 settings.

DNS and SSL

In order to prepare for installation of Analytics, the following are required:

  1. A fully-qualified DNS entry for the sever

  2. A valid SSL certificate

AppsAnywhere will need to apply certificates to the Analytics server itself, please refer to SSL Certificates for the requirements and format of the certificate.

Firewall

The analytics server appliance has its own firewall enabled by default which restricts communications to only those that are required. 

For information on all communications that will go in and out of the analytics server, see the Server Communications article. 

If you have any additional firewall requirements, these should be implemented at a network level. 

Database Requirements

Overview

AppsAnywhere Analytics uses a completely separate database for analytics data and does not read or write any information to the main AppsAnywhere database.

The new analytics database will consist of:

  1. Data tables - store the actual information used by analytics. These will grow incrementally over time

  2. Scratch tables - temporary tables that are generated by analytics server to make it easier to calculate more complicated result sets. Many of these will be re-built entirely each day

We recommend creating a new database user, specifically for use by AppsAnywhere analytics, with the following permissions

  • READ access to the appsanywhere database (the main product database)

  • READ/WRITE access to the appsanywhere_analytics database

  • READ/WRITE/EXEC on the analytics_cache database/schema

This section of the documentation will detail exactly how to set everything up in advance of the installation and everything else you need to know about the analytics database.

Compatibility

The following database technologies are supported:

Size and Growth Requirements

The analytics database stores information about every user, login, known device and launch that occurs through AppsAnywhere, as well as a wealth of meta-information that helps produce useful reports around this data. 

To help you get an idea of the sizing requirements for the new database, we created the attached sizing guide spreadsheet. The provided values are based on information kindly provided by Durham University and represents a fairly average customer. Obviously these calculations are our "best estimate" and you should always try and account for the worst-case scenario when putting in your own values. 

Take a look at the Analytics Database Growth Calculator.xlsx

Creating the database

For the installation of AppsAnywhere Analytics to proceed, you will need to create the database container, database login and assign the correct permissions. 

A SQL script is also provided below to create the required SQL logins.

The Analytics database should be created in the same SQL instance as the AppsAnywhere database.

Before running any of the scripts below, you must create the database container appsanywhere_analytics as shown.

The script will then set the existing appsanywhere_user SQL login to have db_owner user mapping role membership on the appsanywhere_analytics database.

As the script is creating and editing SQL logins, it must be edited so that an appropriate password is set by replacing the [Password] variable shown below and the existing appsanywhere_user SQL login is correct.

The below script will help you get everything set up as required and set the following

Database name:

appsanywhere_analytics

Usage:

This database will be used to store all Analytics configuration and details of the applications.

Permissions:

A SQL login named appsanywhere_user assigned with db_owner permissions for the appsanywhere_analytics database.

Password:

Must not contain any special characters (£$%^*@ etc.) but must include at least one number, one uppercase letter and one lowercase letter.

Initial Sizing:

50MB-100MB (.mdb)

Create Analytics SQL Login and User

Use appsanywhere_analytics;
GO
CREATE LOGIN appsanywhere_analytics_user WITH PASSWORD = '[Password]', DEFAULT_DATABASE = appsanywhere_analytics;
GO
CREATE USER appsanywhere_analytics_user FOR LOGIN appsanywhere_analytics_user
GO
ALTER ROLE db_datareader ADD MEMBER appsanywhere_analytics_user;
GO
GRANT CREATE TABLE to appsanywhere_analytics_user;
GO
GRANT CREATE VIEW to appsanywhere_analytics_user;
GO
CREATE SCHEMA appsanywhere_analytics_cache AUTHORIZATION appsanywhere_analytics_user;
GO
ALTER ROLE db_owner ADD MEMBER appsanywhere_user;
GO
SQL

Add SQL Server permissions to the Analytics login

USE Master;
GRANT ALTER ANY CONNECTION TO appsanywhere_analytics_user;
GRANT VIEW SERVER STATE to appsanywhere_analytics_user;
GO
SQL

Analytics will continue to function without adding SQL Server permissions to the Analytics login, but it will not be able to terminate any long running queries.

This is unlikely to cause an issue due to the low volume of data collated.

Monitoring should be configured in SQL server to track and kill long running queries.

Please refer to https://docs.microsoft.com/sql for more information on configuring SQL server monitoring.

Backups

Only historical usage information is stored in the analytics database so a complete loss of data would not effect the operation of AppsAnywhere itself. 

However, we would obviously recommend you implement a backup strategy for your analytics data so that this is not lost in the event of a loss of the analytics database. 

We recommend a nightly, full backup of the database with a 7-day retention policy. 

High Availability

As AppsAnywhere Analytics captures data of every launch initiated through AppsAnywhere, the analytics database must be available at all times for the system to operate.

We strongly recommend that the analytics database should be installed alongside the main AppsAnywhere database in a high-availability, clustered database environment.

Just as a failure of the main AppsAnywhere database would render the service inoperable, a failure of the analytics database will stop the service from being able to function.

Ensure that both databases reside in a high-availability environment for production systems.

Next Step

Once the system requirements have been configured, the next step is Deploying Analytics .