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 and governance issues – all of which translate into degraded industry reputation that can negatively affect revenue models.
An effective strategy to increase the availability 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 makes 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 complexity of 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 will help to achieve high availability as the design will ensure that various versions of a service serves different failure points.
There are many industry-proven techniques and tools including Service-Oriented Architecture (SOA) appliances that can be used for services orchestration, handling service failovers and object caching, etc. One such appliance is IBM DataPower, which has unique features like seamless failovers, service versioning, and service timeout configurations that 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 of application downtime.
High Availability Architecture
The following diagram represents a sample architecture that can achieve High Availability based on Bitwise 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 load balancer.
- If any of the primary web services becomes unavailable, the SOA appliance will failover to a secondary web service.
- If any of the primary databases is 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 which had scheduled maintenance on every Sunday.
- There was a single point of failure resulting in unavailability of the entire website for a significant amount of time. None of the functionality could be served even if one service/functionality went down due to 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 loss of business.
- Bitwise migrated login and registration data from DB2 (Mainframe) to Oracle. Migration and testing was 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 card members. This helped in partial availability of website.
- We built a functionality to allow card members to login even if any of the other functions are 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 are leveraged to make the applications more robust and make enterprise services more scalable.
- An increase in revenue and customer satisfaction with high availability of the website application and customers’ experience with seamless failover.
- The solution enabled site compliance for audit related to governmental regulations.
- There was a 30% reduction in required time for maintenance window.
- Improved reliability as the system is made tolerable to hardware/network/server/software failure.
- Enhanced web application security through DataPower usage.
Getting Started with High Availability
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.
If you need help getting started with high availability, contact us for guidance on assessment and strategy development. Our team of experts will help you identify an appropriate solution with technology recommendations to deliver a reliable user experience.