By Steve Bigelow, Features Writer
Your clients rely on their applications. Everything from basic word processing software to rich streaming media like voice and video can serve the business and drive it forward. However, applications and their data must be available in order to be useful -- otherwise productivity is impaired and the business suffers. Value-added resellers (VARs) and solution providers must ensure application availability any time new software is added or updated, or when changes are made to the client's network. This first installment of our tutorial on network upgrades for high-availability applications explains the fundamental importance of application availability and highlights related network considerations.
What are high-availability applications?
High-availability applications represent a broad category of software products that many businesses today depend on. These applications may be essential end-user programs such as e-commerce systems, email software, customer relationship management (CRM) software or online transaction processing (OLTP) programs. There are also applications within the data center that enable high availability, such as clustering software. Rich media complicates matters further, with Voice over Internet Protocol (VoIP), audio and huge video files each demanding an increased share of network bandwidth. Without proper planning, these applications may suffer from low quality of service or impair the availability of other applications. Regardless of their role in the enterprise, high-availability applications are all vital to the client. The applications need to be running, or the business loses money.
Application failures can arise from power failures, server hardware faults, network hardware faults, configuration errors, application bugs, compatibility or performance issues and other causes. The challenge for VARs is to understand their clients' business needs and identify the potential problem areas that may impair those applications.
"We think about how to provide some tolerance to the things that might happen," said Scott Gorcester, president of Moose Logic, a network solution provider located in Bothell, Wash. The goal is to formulate the changes necessary to address potential weaknesses in the infrastructure, allowing the client to continue working without interruption, or providing the means to bring applications and data back online quickly with minimal business interruption.
This can be a particularly difficult challenge because "resiliency" costs money, so any recommendations or solutions that you offer to a client must balance their business needs against the related costs. For example, high resiliency -- the ability to continue operating without interruption in the face of multiple serious problems or faults -- can be far more expensive than a scenario where faults can be corrected and applications brought back online quickly. Similarly, the speed of restoration can affect costs. "Are we talking about minutes or maybe an hour or two?" Gorcester said. "What is the need? That's where our discussions with customers usually begin."
Importance of network design and high availability
Applications must be able to process data, and that data must be available to other applications or users. When considering availability, VARs must evaluate the network design to locate potential bottlenecks or single points of failure that can interrupt data processing and movement, then add redundancy or make changes to the network topology to mitigate those possible faults.
For example, consider a network connection between an application server and a switch. Normally the two devices would be connected through a single link, but this presents a series of points that can fail and disconnect the server -- rendering the application inaccessible. To improve availability, it might be prudent to add a second NIC to the application server and implement a redundant connection between the new NIC and another switch port (even a port available on a second switch). The trick is to understand the network architecture and the role of the application in the client's business.
"One application's definition of high availability may be different from another's," said Dave Sobel, CEO of Evolve Technologies, a solution provider in Fairfax, Va.
It's important to note that there are no "high-availability network components," only product features and attributes that can aid performance. Application availability across the network is achieved through correct network design choices that leverage relevant technologies. Sobel notes that techniques like connection trunking, server clustering, storage area networks (SANs), server virtualization and storage virtualization are just a few of the technologies that can help to ensure application availability.
Other technological choices may include proliferating 1 Gigabit Ethernet (GigE) as a network backbone, or even directly to servers. "You could expand upon that and begin replicating data to a second data center and geo-clustering the applications so the networked storage links and Ethernet links need to be extended across a metro or further distance," said Bob Laliberte, analyst at the Enterprise Strategy Group, an industry analyst firm in Milford, Mass.
Common availability issues with today's networks
Networks often aren't tailored to accommodate the unique needs of key applications because clients simply don't understand the implications of availability.
"The No. 1 thing I see when working with businesses is that they haven't really defined what their needs are," Sobel said, pointing to numerous vague requirements that suggest the application must always be running or the network can never go down. Even if that type of goal is technically achievable, it's rarely ever affordable -- and it's not necessarily what the client was really looking for. "I think that definition disconnect is the biggest problem, because everything else is just technology," he said.
Applications also tend to accumulate on the network over time, and the collective demands of older applications may limit the network capacity available to newer or more important applications.
Experts like Laliberte see more specific limitations with the availability aspects of network design. "The bigger issue is ensuring that you have the appropriate network for the workload," he said. Bandwidth is typically a gating issue, particularly for transactional applications or programs that exchange large data content such as VoIP and video. For example, Ethernet LAN bandwidth has moved from 10/100 Mbps to 1 GigE, and will eventually move to 10 GigE.
When it comes to availability, redundancy is every bit as important as speed. An enterprise network must be architected to eliminate single points of failure between servers, storage and core application users. This includes the use of redundant network links to support trunking for greater performance and failover capability to compensate for faulty links. Redundant links are utilized in the LAN and SAN, and can also extend to multiple WAN links handled by different service providers.
Availability attributes of the applications themselves
The application itself can have some influence on its availability, but just how much influence is a matter of some debate. Gorcester takes one perspective, pointing out that most programs he installs in client locations are standard off-the-shelf finance, database or other line-of-business applications. These afford few real opportunities to make changes to the code base. Availability of those applications is then a matter of altering or optimizing the network itself. "You can [improve the network to] provide highly available applications without having to modify the application," Gorcester said.
On the other hand, Sobel sees application integrity as a core element of its availability and underscores the importance of proper network implementation as a complement to solid application design. "The application itself drives the [network's] requirements and defines how you can deliver it from a network perspective," Sobel said. For example, the network that delivers Windows 32-bit applications is architected differently than a network that delivers .NET Web applications. Similarly, a network that delivers streaming video or VoIP requires a different architecture than a network that mainly serves files. In addition, patching and maintaining the application can improve its compatibility, performance and stability.
Laliberte has yet a different view, suggesting that VARs look for availability features inherent in the individual applications. For example, many database applications provide some type of replication services. When trouble strikes, the application and its data can be enabled (delivered) from the remote location or restored to its original site.
WAN optimization and high-availability applications
Enterprises are becoming more distributed, routinely including multiple data centers, branch offices and remote users. Consequently, the ability to remotely access applications and their data is an increasingly important aspect of application availability, and WAN optimization and application acceleration products are finding a supporting role in the client's network. WAN optimization typically uses some combination of data compression and TCP/IP traffic manipulation (such as jumbo frames and fewer application handshakes) to pass more data within a given bandwidth.
These technologies save money by avoiding the demand for more bandwidth. "Anytime we can make applications respond more quickly over a connection without increasing recurring expenses like bandwidth, we find those products to be very attractive," Gorcester said. In addition, WAN optimization products allow your clients to consolidate resources by moving duplicate equipment and applications from remote sites back into the data center -- applications can then be deployed to the entire user base through a single highly available network configuration.