Yellowfin Evaluation Guide

Yellowfin is used for both enterprise analytics and embedded analytics use cases and for building bespoke analytical applications. Use this guide to ensure Yellowfin is the right technical fit for your requirements.

  1. Evaluation Guide
  2. Deployment
  3. Deployment Overview

Deployment Overview

  • In this section

    Updated 16 September 2020
  • Overview

    What deployment options does Yellowfin support?

    Yellowfin is platform agnostic – you can deploy it anywhere you choose. This includes on-premise or in the cloud. You can choose whatever operating system you want, provided it supports a JVM. You also have a wide range of choices for the configuration database.
    Many customers choose to deploy Yellowfin using container technologies such as Docker.

    Which Cloud Providers can I use with Yellowfin?

    Yellowfin will work with all of the major cloud providers including AWS, Azure, GCP and more.

  • Environments

    What platforms does Yellowfin run on?

    Yellowfin can be installed on Windows, Linux or Mac OSX based desktop or laptop for evaluation or training purposes and installed on Windows, Linux or Mac OSX based servers for evaluation, training and production purposes.

    Further Reading:

    What is the architecture?

    How much capacity will I need and what are the prerequisites?

  • Databases

    Where does Yellowfin store configuration data?

    Configuration data is stored within the Yellowfin database, this database is created as part of the standard installation process. In the installation you define the location, type and connection details of this database.

    What database choices do I have?

    The Yellowfin configuration can be hosted on a range of databases

    The full supported list is here 

  • Cloud & On-Premise

    What cloud platforms does Yellowfin support?

    Yellowfin will work with all of the major cloud providers including AWS, Azure, GCP and more.

    Can I choose to run on-premise?

    Yellowfin can be deployed into any environment as it is both OS agnostic and self-hosted. This can range from physical servers on a private internal network, to highly dynamic cloud container services such as AWS ECS or Kubernetes.

    How does Yellowfin support Docker and containerization?

    In docker deployments, the container itself will hold individual application servers that act as cluster nodes, communicating with a static configuration database (often located in something like AWS RDS). The application is then scaled horizontally by deploying additional containers.

  • Hosting

    A fully managed hosting service for Yellowfin is available in all regions through our global trusted partner, Toustone. Since 2014, Toustone have been providing this service for Yellowfin customers in Europe, APAC, and North America. The following sections provide more information on the nature of the hosting services provided by Toustone.

    AWS

    Is the hosting with AWS?

    Yes, the hosting environment can be spun up in any AWS region globally. 

    Is hosting available with cloud providers other than AWS?

    No, it is available on AWS only at this stage.

    What AWS specification is selected for the servers and associated settings (i.e. if I were to buy the equivalent myself, what would I choose)? 

    There are many AWS components that form best practice Toustone Hosting.  These range from EC2 for compute, EBS for storage and backup, load balancer for networking, cloud watch for monitoring, Aurora RDS for config database and CloudFront. Toustone’s solution brings these components together into an automated solution that is tuned for Yellowfin and a specific client’s needs. 

    What percentage of the fee goes to AWS hosting, versus for management?

    This percentage varies depending on the specific setup of each environment and its specific usage patterns over time.

    I already have an AWS account, can I pay for the hosting and just pay you for the management portion?

    Not at this stage. 

    Will my Yellowfin instance be on its own server, or in a container on a shared server?

    For ISV and Enterprise customers we utilise a dedicated environment for best performance and provide high availability. 

    Where will the AWS servers be located? Can we choose?

    Yes you can choose. For best performance the Yellowfin environment should be located close to your data source or data warehouse. Toustone can spin up an environment in any AWS region globally.

    What AWS services do you use?

    •   Amazon EC2
    •   Amazon Auto Scaling
    •   Amazon Elastic Container Registry
    •   Amazon Elastic Container Service (ECS)
    •   AWS Step Functions
    •   Amazon Simple Notification Service (SNS)
    •   Amazon Chime
    •   AWS Fargate
    •   AWS Lambda
    •   AWS Corretto
    •   AWS Cloud Development Kit (CDK)
    •   AWS Code Commit
    •   Amazon Cloud Watch
    •   AWS Cloud Formation
    •   AWS Cloud Trail
    •   AWS Organizations
    •   AWS Trusted Advisor
    •   Amazon API Gateway
    •   Amazon CloudFront
    •   Amazon VPC
    •   Amazon Route 53
    •   Elastic Load Balancing
    •   AWS Identity & Access Management
    •   Amazon Cognito
    •   Amazon GuardDuty
    •   AWS Artefact
    •   AWS Certificate Manager
    •   AWS Key Management Service
    •   AWS Secrets Manager

    Performance and Security

    How do back-ups work? What redundancy is included? 

    Environments are backed up daily, can be backed up on request and also depending on the quantity and each configuration of environment’s point in time recovery may be requested as well.  All our dedicated environments have fail over or high availability at every layer of the stack and are highly reliable.   

    If there is an outage/failure, what is the recovery time to be 100% functional again?  

    If there is any major failure it can usually be resolved within 1 hour. In the event that outage is caused by AWS itself and multi-availability zones are impacted it may be up to 12 hours to resolve.  

    Does Toustone set up Yellowfin and send a login? What still needs to be done on the customer side?

    Depending on the authentication configuration we can set up users or have users controlled by the client’s authentication source.

    What security provisions are in place at Toustone to protect access to my data? 

    Only the Toustone infrastructure team will have access to your environments, plus any other staff you specifically authorise.  Those staff only access your environment to resolve any issues that our systems detect or to provide any specific support at your request.

    Do you comply with GDPR (General Data Protection Regulation)? 

    Toustone is classified as a Data Processor when hosting Yellowfin as we don’t specifically host end user data and user details are usually managed by the Client.

    If we need to add/delete/modify data sources connected to Yellowfin, how does that work? Depending on the specific license agreement, the type of data source and how your data source will be accessed we will usually work with the client to set these data sources up.  However, if it’s a common database accessible to the internet then these can usually be set up by the client.

    What form is Toutsone’s end to end (E2E) encryption? What is needed on our end to utilize this? 

    All Yellowfin hosted environments use end to end encryption using standard TLS1.2 for communications between browser and Yellowfin. All communications between Yellowfin and its configuration database are also encrypted.

    How does Toustone optimize the CDN (Content Delivery Network)? What benefit does this provide? 

    Yellowfin can make up to 300 requests to the server to fulfill some page requests. Using a CDN reduces the load on the servers by caching static content that doesn’t change often. This allows more concurrent users per server. Where the site is being accessed from outside of the region in which it is hosted, a significant user experience speed increase is also seen as many of the requests are served from a locally cached copy.

    What is the “isolated network” approach? What benefit(s) does this bring? 

    Each client has its own networking infrastructure allocated and is not shared with any other client.  While this increases some costs it does ensure that no client can access any underlying services of another client. 

    What are Toustone’s uptime SLAs? 

    As the environment is high availability we offer 99.5 to 99.9 SLA’s.

    What is the maximum unplanned downtime hours (per year) SLA? 

    Between 8.76 and 4.38 hours per year.

    What performance reports do I receive, and how often? 

    None automatically, but these can be discussed during onboarding and specific metrics provided on demand based on your environment’s specific usage patterns.

    Can Toustone sync content between multiple instances of Yellowfin (e.g. if I have two clients in different locations, even continents)?  

    This can be done manually by exporting and importing content. Unfortunately not automatically at this stage.

    Does Toustone support SSO (Single Sign-On)? How do we set up and maintain this? 

    Yes, we do support SSO. Toustone would work with you to set up and configure SSO. This would be treated as a small project outside the normal managed service offering.

    Support

    Is support for hosting provided by Toustone or Yellowfin? 

    Support for hosting is provided by Toustone. 

    We are an ISV (independent software vendor). How do I know whether an issue is caused by hosting or Yellowfin software?  

    If the site is not available or responding or performing as desired it is likely to be hosting. If it is a functionality issue it is likely to be Yellowfin. Toustone will always be happy to review and provide a recommendation on what should be done next if it cannot be resolved or is not a hosting issue.

    What are the support hours? 

    Toustone provides 24×7 support for the hosting environment. 

    How do we contact Toustone for urgent requests or queries?

    For priority 1 issues Toustone offers a 24×7 service. 

    How do we contact Toustone for non-urgent requests or queries? 

    Toustone has a ticketing system. Non-urgent requests can be entered via our support webpage. https://support.toustone.com/

    Upgrades

    When Toustone does a version upgrade, what work is required on the customer side? 

    Yellowfin provides two upgrade processes. 

    1. Small frequent patches that cover bugs and security, generally these can be applied to your environment without requiring testing. 
    2. For larger version upgrades we can spin up a clone of your production environment to allow full testing. We can then promote this clone environment to production reducing downtime to your customers.

    I’m an ISV (independent software vendor). In version upgrades, will my end-users be required to do any work? Will they be impacted by downtime during changeovers? 

    This is your decision based on how you manage your reporting environment. Tosutone can provide a clone of your production environment for you to carry out testing. Once signed off by you and/or your client Toustone can then promote this clone to production reducing downtime.

    Will Toustone force me to do upgrades? 

    We will not force you to do upgrades. However, you must maintain a certain version of Yellowfin. For example N-2. If for some reason you can’t do this then we are open to discussions on how we maintain and support older versions of the software. Please note there may be an increased charge for this service.

    How does the upgrade process work?
    There are two types of upgrades for Yellowfin:

    1. Quarterly patch releases, Toustone will test these releases and then notify  you before upgrading your environment. 
    2. Major version releases are approximately yearly, these would require more detailed planning and testing. 

    Toustone will reach out to you to plan and communicate the upgrade and what new features, bugs fixes, etc are available in the new release. Toustone recommends that any release is fully tested by you before going live.

    General

    Is the hosting pricing in USD? Is pricing available in my local currency?  

    USD and AUD are the primary currencies at this time. It may be possible to price in local currency at the time of purchase, please discuss this with your Yellowfin and Toustone representatives.

    Can we contract directly with Yellowfin, or do we need a contract with Toustone? 

    At this stage you need to contract with Toustone. Toustone and Yellowfin are working on a joint contract, which will allow one contract to cover both Yellowfin licences and hosting.

    Can Toustone also host our data warehouse/lake/etc? 

    Yes. Toustone is very experienced in building and hosting data warehouses and data lakes. We have a number of customers who we provide the full end to end hosting solution for. 

    Can Toustone also provide assistance with data preparation/ETL (Extract, Transform, Load), etc?

    Yes. Toustone can extract data out of any system and are very experienced at data modelling, transformation and automation of data flows. 

    If Toustone goes out of business, what happens to our data? What continuity or escrow plans are in place?

    A copy of all environment configuration databases can be provided to clients in the event Toustone goes out of business and another hosting provider can take over. 

  • Regional Deployments & Synchronization

    How can I deploy Yellowfin across geographically distinct regions? What models are supported?

    Global deployments of Yellowfin are possible, in several distinct implementation models.

    To enable local administration of users, and groups, separate instances of Yellowfin can be deployed regionally that give access to the same report content. This requires the synchronization of content across instances. Local administrators can manage local users and their access to the shared content.

    A single global instance of Yellowfin can be deployed in a central region but with separate regional entry-points. Each entry point caches static content in the region, only forwarding requests for dynamic content to the server. Having a central single instance (which could be clustered in the same datacenter) means that no content migration is necessary and upgrades are relatively straight forward. Global entry points in this model can be implemented with a webserver with specific proxying and caching rules. Location based DNS services can direct users to the nearest regional entry-point when using a common URL.

    It is also possible to implement a global cluster of Yellowfin with regionally positioned application servers, with local copies of the Yellowfin repository database. This deployment method relies on a multi-write database cluster, allowing distributed nodes of Yellowfin to share the same repository database. Yellowfin supports the TiDB repository database for this type of deployment.

  • Internationalization

    Does Yellowfin support multilingual deployments?

    Yellowfin does support multilingual deployments where different users can use specific languages within the same instance. The user’s language selection can be inherited from their internet browser, or by profile settings within the application.

    Does Yellowfin support double Byte character sets?

    Yes, the Yellowfin interface is double byte enabled. Users can also choose specific font sets for content exporting such as to PDF to ensure readable content is generated.

    What languages does Yellowfin support out of the box?

    As of now the following languages are supported:

    • English
    • Spanish
    • French
    • Japanese
    • Chinese Simplified
    • German
    • Brazilian Portuguese
    • Italian
    • Dutch

    Check out our support offering for updates

    Can I translate content dynamically based on the user’s preferred language?

    Yellowfin has a mechanism for content to be translated into the languages supported by the application instance. This allows content meta-data, such as Report Titles, Report Descriptions and Field Names to be displayed in a user’s preferred language. Translation of this content can be performed via a bulk export/import process.

    Find out more here

    Can date formats be dynamically altered to suit a users locale?

    Yes, date formats can be rendered differently to suit their locale and personal preferences.

    Can I dynamically change the units of measure (eg. miles to km) based on a users profile?

    Yes, you can create dynamic filters in the meta-data layer and apply these to tables so that depending on the user you can show metrics in their preferred format.

    This can be used to:
    Convert sales amounts in a person’s preferred currency
    Convert volume or distance in their preferred formats etc

    Read more here

    What elements of Yellowfin can be configured for each applicable region?

    Yellowfin allows for datasource, report, dashboard and view meta-data to be translated into supported languages. Other regional settings allow for timezone, and date and time formats to be configured based on a user’s locale.

    Read more here

  • High Availability

    How can I cluster Yellowfin to provide for high-availability?

    Yellowfin can be clustered by layering multiple application servers on top of a single shared configuration database. Application nodes can reside wherever you choose  as long as they are able to communicate between each other. Additionally it is possible to configure each cluster node to run specific tasks, allowing you to dedicate servers to high resource processes such as signals or broadcasts.

    Further Reading:

    Yellowfin Clustering Guide 

    Yellowfin Disaster Recovery

    How does licensing work

    Yellowfin provides a single license file which is uploaded through the application’s UI (also possible to do through WS). Once the licence has been applied, the licensing parameters are stored in the shared configuration database. As new application nodes connect to that database, they compare themselves against the stored licence.

  • Upgrades

    How frequently does Yellowfin release new versions

    Yellowfin releases “minor” updates to the application on a quarterly basis and “major” version updates annually. Minor releases contain small improvements, changes, and fixes, while major builds feature larger changes in the form of new or re-worked functionality.

    How does Yellowfin manage upgrades?

    As a self-hosted solution, upgrades are scheduled and managed by you. Upgrades are performed by downloading an executable application from the Yellowfin web-site and pointing that application to your current Yellowfin installation, where it will perform the necessary schema and application updates automatically.

    What are the best practises for managing upgrades?

    When performing an upgrade we recommend that you first test the process in a development environment. While Yellowfin upgrades are generally smooth, this will give you the opportunity to vet any changes, and limit access to new features prior to their release to your general user community.

    We also recommend that you first backup both the configuration database as well as the application server, as this will allow us to easily roll-back should that be required.

    I have a 24×7 clustered environment, how can I upgrade without an outage?

    On a single node server, it is necessary to shutdown the Yellowfin application prior to upgrading. However in a clustered environment we are able to offer zero down-time upgrades, by rolling the update across the application nodes. By maintaining two copies of the configuration database, one on each version, we can steadily bring nodes off and online, migrating/upgrading them to the newer version, without the users ever noticing.

  • Debugging & Auditing

    As a self managed solution, it is necessary for our clients to have a clear picture into what is happening within their instance, and where to look when things go wrong. To facilitate this Yellowfin provides several resources both within and outside of the application.

    Monitoring Usage

    The Yellowfin configuration database maintains a record not only of the content and users that currently exist within the application, but of the events that have occured as well. By querying this database we are able to obtain a clear picture of how the application is being used.

    To do this Yellowfin provides an importable set of “Audit Content”, that is essentially a collection of pre-built views and reports designed to answer the most common questions a typical Yellowfin administrator may have of their instance:

    • Which reports are the most popular?
    • How many users logged in today?
    • What content has been created and deleted recently?
    • What tables and columns does/has a specific user have/had access to

    I have sensitive data, can I get a record of all data that a user has had access to?

    By default, Yellowfin will not store any report data. However, it is possible to configure Yellowfin to store the result set of every report that has been run along with a record of what user ran it and at what time, providing you a clear audit history of all data transactions.

    What server metrics should I monitor to scale the Yellowfin server?

    When scaling the Yellowfin application, you need to monitor two primary metrics:

    CPU – Each process in Yellowfin will consume a thread, so how many processes can be run at any given time is determined by the number of threads available on the CPU. The more users that are in the application, the more threads will be consumed by their activities. This will be directly reflected in the server’s CPU usage. Once the CPU usage approaches its limit, additional requests will be delayed, and users will notice a sharp decline in performance.

    Memory – Many processes in Yellowfin consume application memory, proportional to the size of the data being processed, and the amount of work that needs to be done on that data. As Yellowfin approaches the limit of the memory allocated to the JVM, it will need to work harder to free space for additional processes, and may eventually crash.

    Monitoring Performance

    Performance in Yellowfin is comprised of several different factors, so monitoring performance means looking at each of these components individually

    How fast are Yellowfin’s reports?

    As a primarily direct read application, the speed of a Yellowfin report s broadly based on two factors:

    1. How long the query takes
      Each report run will consist of at least one database query, and how long the database takes to process the query will directly impact the time it takes to render within Yellowfin
    2. How large the result set is and how much post processing occurs on that result set
      The subsequent processing of a report after the query has returned, such as advanced functions and charts, is done in Java and will consume resources on the server appropriate with the complexity of that report.

    How do I monitor the reports being run?

    The Yellowfin audit content contains several useful reports that can be used to monitor and optimize report usage. This includes a record of every report run along with key information relating that run including how many rows it returned and how long the query took to process.

    How can I limit users from creating long-running resource intensive queries?

    To prevent long running queries you can set a timeout on your database. By default this is 3 min.

    To prevent excessively large result sets you can place a row limit on all queries on that database.

    Most content can also be created with “dummy data” rather than live data limiting the number of times the report query needs to be run.

    Read more about data source restrictions here 

    Can background tasks be scheduled to run at low usage times?

    All background tasks in Yellowfin are run on a set schedule, typically defined when the task is first created. These schedules can be through the “schedule management” page of the administration console, allowing you to optimize when high resource processes are run.

    Can I stop long running processes?

    All long running background processes can be stopped from the “background execution” page in the administration console.

    Users who initiate long running processes within the application are provided the option to cancel the request at any time.

    Read more about the background execution queue here

    Debugging and Error Logging

    Sometimes things go wrong, and most of the time, Yellowfin will provide a clear error that indicates why. For the other times, the first place we suggest looking is in the log files. Each Yellowfin server has a folder called “/appserver/logs” that contains several files tracking the various components of the application. General logging is stored in the primary “yellowfin.log” file.

    These logs can be toggled to show more or less information by configuring the log4j properties file.

    Can I forward my logs to a monitoring program such as datadog or splunk?

    In a clustered environment it is common to use a log forwarding service (aws cloud watch, splunk forwarding, etc) to enable the analysis of errors across all application nodes simultaneously.