Website availability and platform stability are essential for any organization. Unavailability of your website can lead to problems like unhappy end-users, damaged user experience resulting in lost sales, and compliance & governance issues – all of which translate into degraded industry reputation that can negatively affect revenue models.
An effective strategy to increase the availability of your website and web applications should include a plan for restructuring and optimizing existing code, enhancing design architecture, analyzing and categorizing points of failure based on severity, and then designing a solution based on the analysis for high availability.
By eliminating single points of failure and finding workarounds, you can dramatically increase site or application availability and reliability. Instead of having a single point of failure that makes all features unavailable, a better approach from a user experience and compliance standpoint is to identify multiple points of failure that make basic functionality available to use.
The solution should provide transactional integrity and transparent failover to ensure high availability, high reliability, and consistent response times. Though this exercise is very time consuming as there may be many areas to address like the complexity of the system, disparate technologies, different teams, lack of skilled resources, and inability to articulate ROI, the benefits outweigh the challenges as will be shown below.
Options to Achieve High Availability for Websites and Web Applications
First and foremost, your high availability initiative needs to start with complete research and assessment of the code and architecture to identify key areas for improvement. After identification of key areas, focus on the components of that particular layer. The following are some recommendations for each layer.
A customized solution for dynamic content caching, or use of the relevant built-in feature of your UI technology, will improve availability.
A well-designed Service-Oriented Architecture (SOA) will help to achieve high availability as the design will ensure that various versions of a service serve different failure points.
There are many industry-proven techniques and tools, including Service-Oriented Architecture (SOA) appliances, which can be used for services orchestration, handling service failovers, and object caching, to name a few. One such appliance is IBM DataPower, which has unique features like seamless failovers, service versioning, and service timeout configurations, which can be leveraged to make the applications more robust and make enterprise services more scalable.
A caching solution can improve application performance, which is an important factor for ensuring high availability.
It is crucial, especially in distributed environments, to make applications more flexible, scalable, and efficient in their utilization of backend resources. Be sure to implement a caching solution that leverages object cache by integrating products like IBM WebSphere eXtreme Scale (WXS), Oracle Coherence, GemStone GemFire, GigaSpaces XAP, or open-source solutions like Ehcache, HazelCast and Memcached to store frequently accessed data and session data.
Database maintenance operations, such as the purging of high volumes of data, are a bottleneck in achieving high availability as these operations require application downtime.
By analyzing, redesigning, and aligning such database operations to ensure they do not hamper the real-time database operations, you can effectively eliminate the need for application downtime.
High Availability Architecture
The following diagram represents a sample architecture that can achieve high availability based on Bitwise’s customer projects.
A distributed architecture can have front end load balancer, multiple sets of web servers’ cluster, application servers’ cluster, SOA appliance, and multiple web services accessing various databases. This architecture can allow for multiple failover points to be introduced:
- If any of the server clusters fail, seamless failover can be achieved with the help of a load balancer.
- If any of the primary web services become unavailable, the SOA appliance will failover to a secondary web service.
- If any of the primary databases are not available, the information can be retrieved from secondary data storage with the help of web services.
High Availability Case Study
When a leading credit card company in the U.S. faced challenges delivering a reliable user experience, Bitwise provided a solution that achieves 99.999999% availability for its card member website.
- Card members were not able to login on Sunday as key account-related data was stored in a mainframe database that had scheduled maintenance on every Sunday.
- There was a single point of failure resulting in the unavailability of the entire website for a significant amount of time. None of the functionalities could be served even if one service/functionality went down due to a single point of failure.
- Unavailability of website introduced compliance issues.
- There was difficulty in detecting slowness in RMI and CICS environments.
- The scheduled maintenance every week caused a loss of business.
- Bitwise migrated log in and registration data from DB2 (Mainframe) to Oracle. Migration and testing were done through automated scripts.
- Several Mainframe DAPs were converted to Microservices and Oracle stored procedures.
- Mainframe batch processes were migrated to standard batch processes.
- We analyzed applications then designed and introduced five failure points based on functionality to be served to cardmembers. This helped in the partial availability of the website.
- We built functionality to allow card members to log in even if any of the other functions were not available and they could browse/use available functions.
- We achieved high availability using load balancing and failover maintenance tools like IBM DataPower and IBM eXtreme Scale. DataPower’s unique features were leveraged to make the applications more robust and make enterprise services more scalable.
- There was an increase in revenue and customer satisfaction due to the high availability of website applications and customers’ experience improved with seamless failover.
- The solution enabled site compliance for audits related to governmental regulations.
- The required time for the maintenance window was reduced by 30%.
- It improved overall reliability as the system was made more resilient to hardware/network/server/software failure.
- It also enhanced web application security through DataPower usage.
Your customers expect your website to be available and functioning whenever they seek to access your web applications. What are the deficiencies preventing you from achieving high availability for your website and web applications?
The critical first step in implementing a high availability solution is to review your code and architecture to identify key areas for improvement. With cloud technology, designing and implementing failovers has become easier, but complexities remain.