High availability is the ability of the cluster to effectively avoid downtime. In general, failover prevents total system unresponsiveness that would happen if a single server failed, but a properly designed cluster must also address the failure of other cluster components.
High availability is usually defined in terms of uptime, such as 99.999%, 24/7/365 (always), or business hours during business days. To design for high availability, all system components must be made redundant or recoverable enough so that no single component can fail and bring the entire environment to a stop in a way that violates the high availability requirements.
Identifying the failure modes of a cluster is good practice for any deployment. For every component in the cluster, analyze what happens to users and overall availability when that component fails. See Session Management and Failover for an explanation of what happens to users on a server instance that fails; you should also consider the overall performance degradation of the cluster and the impact of failures in other cluster components.
A further aspect of high availability is sizing the cluster so that should one server (hardware or software) become unavailable, the rest can still respond to anticipated user demand. If you have strict availability and performance requirements, you may need to plan for additional nodes. As you design your JasperReports Server cluster, you should take all these issues into account in order to properly express your availability requirements.
Another aspect of high availability is the ability of certain clusters to keep operating during planned maintenance and upgrades, called rolling upgrades. JasperReports Server does not support rolling upgrades, because different versions can require different schemas in the shared repository. So your availability planning must include the time to stop the entire cluster and perform upgrades as necessary.
Recommended Comments
There are no comments to display.