You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Blueriq can be used in a hosting environment where high availability is a requirement. This article will talk about the why, the when and the how of setting up Blueriq services in with aforementioned requirements in mind.

Why to Setup Failover

Let's first explore how Blueriq approaches the topic of high availability.

With Blueriq your end users are using a Blueriq application that was designed in our design environment and ultimately it runs on a Blueriq Runtime instance. May it be a simple forms application, several webservices to an entire case management system. All of these Blueriq projects will be hosted and will be running through a Blueriq Runtime.

When this runtime instance has any kind of downtime; maintenance or unforeseen issues, your Blueriq application will naturally not be available anymore. This can become a real problem when you want to minimize downtime on your online services.

Blueriq by its nature is a stateful information system, meaning each end-user using your Blueriq application will have a session that is stored server side. These session are classically stored inside server memory and would be lost if the server goes down.

Therefore making your Blueriq stack highly available and user session data safe, we made Blueriq services store there state in external high performance stores, in our case Redis. With sessions stored outside a specific runtime applications memory we allow multiple Runtimes too exist in your hosting environment. The components of Blueriq that have session management can be setup in a failover cluster, therefore enabling redundancy.

When to Setup Failover

Besides the above mentioned reason too configure your setup in failover configuration you should consider the following when planning your hosting environment setup:

  • Are you running inside a Cloud(like) environment?
  • Are you running inside a containerized (Docker or other) environment?
  • Do you have high availability requirements (I.E. >99% uptimes) with your customers/partners?
  • Do you want to seamlessly update Blueriq services with newer versions?
  • Do you want to seamlessly update Blueriq projects with newer versions?

If any of these questions are answered with a "yes" you might want to consider setting things up in a failover configuration.

Setting Blueriq up with failover support does also bring some downsides that could mean it is no longer worth it:

  • Significant growth of hosted services in your infrastructure.
    Besides all regular Blueriq components there would also be: Load balancers, gateways, external memory stores, etc.
    Is it worth it to include these layers and extra configuration to your infrastructure?
  • Overall performance might decrease.
    Though Blueriq is constantly looking too optimize and monitor general performance, it is not uncommon for request speeds to go up in any sort of failover environment.
    Using external session stores will generally not be as fast as storing state directly in server memory.
    The impact is generally well within acceptable time ranges, but do consider this when thinking about switching to a failover setup.

How to Setup Failover

Below is a guide to configuring Blueriq services inside a highly available environment.

This is done by grouping services inside failover clusters that are each exposed by load balancers.

Consider the guides to be examples of how one could set things up and not as a one and all solution that fits everyone's needs.

With DCM support

Runtime


Security Gateway


Without DCM support

  • No labels