Applications today are no longer single entities residing on a single device. They have become a collection of disparate and cooperating services and devices that come together into what a business designates as an application. Businesses today are only capable of managing individual services and are challenged with providing high availability, transaction persistence, transaction integrity and maintenance for these applications across multiple sites.
Businesses are trying to solve this problem with a manual approach that is costly, error prone and slow. They experience broken transactions, customer dissatisfaction and downtime costs that severely disrupt their business and decrease profitability.
This article will talk about how businesses can holistically manage multi-service applications across multiple sites while providing:
Application high availability by tracking and managing all the services that work together to create the application. This involves automating the tracking of dependencies between thousands of services and ensuring that clients are redirected to an available site when one of those services is down while eliminating cost of downtime
Application state and persistence tracking to ensure that clients persist to the application services in the same site eliminating broken sessions and corrupted data.
Application maintenance to ensure that applications can now be brought up or down holistically across multiple sites eliminating the errors and guesswork with reduced management overhead
Keeping Multi-Service Applications Up and Running
Applications have come a long way since the 1990s. They are no longer monolithic entities residing on a single megaserver serving content to users. They have become a collection of disparate and loosely-coupled services from different applications hosted at different sites to form a new breed of applications.
This trend has accelerated with the emergence of service oriented architecture (SOA), where SOA applications composed of independent application units work together to deliver business services. For example, the patient records application actually consists of three independent services: clinical record service, employee information service and personal information service.
Organizations are eagerly deploying these types of multi-service applications, but with services originating from applications that are hosted on different, geographically-dispersed data centers. Keeping this type of application available poses a variety of challenges:
Lack of visibility into application health – When organizations combine multiple services into a single, Web-based application, how do you gauge the application’s health? Are all the component services up and running? What happens to the application when one of the services goes down?
Sub-optimal end user experience – When organizations attempt to deliver these services across multiple data centers, how do they handle broken sessions, lost data, and secure personal information?
Maintenance overhead – Every organization needs to periodically take down a system for maintenance. What happens to the SOA application when a server with one of its services is offline? Too often, organizations have no choice but to shut down the entire data center to do their upgrades. If you’re an e-commerce site, can you image the lost revenue?
Impact of DNS mistakes – DNS continues to be the least understood and the most pervasive networking technology used by businesses. What happens when DNS management errors break your entire SOA infrastructure?
Conquer the Beast
All too often, keeping SOA applications up and running consists of running the treadmill of fixing broken transactions, minimizing customer dissatisfaction, and juggling downtime. Using a manual process to solve these challenges can be costly, error prone, and slow, disrupting business and decreasing profitability.
What organizations need is a solution that enables them to solve these challenges and provide:
Superior application availability and performance
Reduced management overhead
Improved operational efficiency
The ultimate solution should give organizations an intelligent way to manage the services that comprise multi-service applications. They need a way to detect the application’s health including all its component services. In the event of a problem in any of the application’s components, the solution needs to automatically and transparently reroute the user to a functional application with all the services running properly. By binding an application’s services together, the solution gives organizations the tools they need to keep their SOA applications running.
Sounds great, but what exactly does a solution like this need?
- Holistic monitoring ─ It’s not enough to check if the application is up or down. With SOA applications, the solution must take a holistic approach, checking both the application and factoring in the dependencies between component services.
In the following example, the solution should automatically track the dependencies between shopping cart, checkout, and user database services, marking down the entire application if any one of these services fails. Automating the failover process eliminates management overhead, minimizes the cost of downtime, and removes the guesswork involved in tracking service interdependencies.
Client continuity – The solution should be able to direct end users to the appropriate service based on the state of the application, dependencies between services, and identity of the end user. Tracking the application state is essential to making sure that the end users are delivered the right content without broken sessions or lost data. The solution should also be able to automatically route users to the appropriate data center or server to protect the integrity of the application session.
This following example shows an online e-commerce application that consists of the shopping cart service, a checkout service, and a user database service. The end user adds items to a shopping cart and comes back after an hour to check out the items. If the end user were resolved to data center No. 2 for the checkout process, the session would break because all the end user’s information (items purchased, login information) resides in data center No. 1. The transaction would fail and the end user would have to start all over again.
An intelligent solution would be able to maintain the end user’s session by resolving the end user back to the same data center, tracking the end user’s identity, transaction history, and the dependencies between services. Since the shopping cart in data center 1 is filled with items to check out, the solution would persist end users across multiple services to the same data center so that session is preserved.
Service management and maintenance – Following good management guidelines, the solution should manage distributed services as part of a collective application group. From a single interface, the solution should be able to intelligently track and manage service dependencies in a multi-service application infrastructure. The most helpful management tool would facilitate the identification and monitoring of the application’s service dependencies for at-a-glance operational efficiency.
DNS management – The best solution should make the job of managing DNS simple and error free, especially because one minor configuration error can bring down your entire SOA infrastructure. Easy fixes to this problematic scenario include an easy-to-use user interface, DNS error checking, transaction rollbacks, and automatic reverse lookups.
With the widespread adoption of SOA applications, organizations face a continual challenge to keep their applications with their interdependent services up and running. Much like watching your stocks, only those that pay attention to their SOA applications will ensure continuous availability.
Satya Vardharajan is a product manager at F5 Networks. For more information about F5, go to www.f5.com.
"Appeared in DRJ's Winter 2007 Issue"